rkhunter – Differences found between sockstat and netstat output

На своих серверах столкнулся с такими ежедневными ложными срабатываниями rkhunter:

Warning: Differences found between sockstat and netstat output:
         Sockstat output (ports in use): 139 2094 2095 21 22 25 3306 445 47763 80
         Netstat output (ports in use): 139 2094 2095 21 22 25 3306 445 80

Естественно, немного надоедает, и я решил в чем тут может быть причина, потому что хакеров у меня на серверах вроде бы нет 🙂

Дело в том, что rkhunter ложно срабатывает на процессы, в названии которых фигурирует их PID. Он считает, что это открытый порт. Чтобы решить проблему, нужно отредактировать файл /usr/local/bin/rkhunter. Найдите строки, содержащие SOCKSTAT_OUTPUT и NETSTAT_OUTPUT, вот эти:

  12928     SOCKSTAT_OUTPUT=`${SOCKSTAT_CMD} ${RKHTMPVAR} | awk '{ print $6 }' |
grep '[:.][0-9][0-9]*$' | sed -e 's/^.*[:.]\([0-9]*\)$/\1/' | sort | uniq`
  12929     NETSTAT_OUTPUT=`${NETSTAT_CMD} -an | awk '{ print $4 }' |
grep '[:.][0-9][0-9]*$' | sed -e 's/^.*[:.]\([0-9]*\)$/\1/' | sort | uniq`

И заменить их на вот такую магическую комбинацию:

  12928     SOCKSTAT_OUTPUT=`${SOCKSTAT_CMD} ${RKHTMPVAR} -l | awk '{print substr($0,37,22)}' |
grep '[:.][0-9][0-9]*\ *$' | sed -e 's/^.*[:.]\([0-9]*\)\ *$/\1/' | sort | uniq`
  12929     NETSTAT_OUTPUT=`${NETSTAT_CMD} -an | grep -E '(^tcp.*LISTEN$)|(^udp.*)' |
awk '{ print $4 }' |grep '[:.][0-9][0-9]*$' | sed -e 's/^.*[:.]\([0-9]*\)$/\1/'
 | sort | uniq`

Вкратце – мы добавили проверки только слушающих портов TCP и UDP, исключив какие-либо ложные срабатывания на номер PID процесса.

Похожие статьи

2 thoughts on “rkhunter – Differences found between sockstat and netstat output”

  1. # sockstat -46 -l | awk ‘{print substr($0,37,22)}’ | grep ‘[:.][0-9][0-9]*\ *$’ | sed -e ‘s/^.*[:.]\([0-9]*\)\ *$/\1/’ | sort | uniq
    111
    123
    21
    22
    25
    53
    772
    880
    953
    955
    root@jason-freebsd:~# netstat -an | grep -E ‘(^tcp.*LISTEN$)|(^udp.*)’ | awk ‘{ print $4 }’ |grep ‘[:.][0-9][0-9]*$’ | sed -e ‘s/^.*[:.]\([0-9]*\)$/\1/’ | sort | uniq
    111
    123
    21
    22
    25
    53
    772
    851
    880
    924
    945
    953
    955
    962
    972

    http://www.mail-archive.com/[email protected]/msg238000.html

    Хм…

Leave a Reply

Your email address will not be published. Required fields are marked *