Применимость: Linux
Слова для поиска: антивирус, руткит rootkit
Чем защитить систему от взлома? Чем проверить факт взлома защиты?
rkhunter - скрипт для проверки на локальной системе попыток взома и обнаружения известных ему rootkits и malware. Он также производит проверки и выявления изменений в установленных программах, в системных файлах запуска и различные проверки для приложений, которые “слушают” на сетевых интерфейсах сервера.
yum install rkhunter
Для Centos скорее всего потребуется установка дополнительных репозиториев epel, rpmforge
apt-get install rkhunter
Нужно обновить базы уязвимостей:
rkhunter --update
После каждого изменения файла /etc/rkhunter.conf нужно выполнить команду:
rkhunter --propupd
сканирование можно провести с помощью команды:
rkhunter --check
или в режиме вывода только предупреждений:
rkhunter -c --rwo
В идеальном случае эта команда не должна выдать никаких сообщений, но даже на чистой системе вывод на экран консоли скорее всего будет похоже на это:
rkhunter -c --rwo Warning: Checking for prerequisites [ Warning ] The file of stored file properties (rkhunter.dat) does not exist, and should be created. To do this type in 'rkhunter --propupd'. Warning: WARNING! It is the users responsibility to ensure that when the '--propupd' option is used, all the files on their system are known to be genuine, and installed from a reliable source. The rkhunter '--check' option will compare the current file properties against previously stored values, and report if any values differ. However, rkhunter cannot determine what has caused the change, that is for the user to do. Warning: The command '/usr/bin/groups' has been replaced by a script: /usr/bin/groups: Bourne shell script text executable Warning: The command '/usr/bin/ldd' has been replaced by a script: /usr/bin/ldd: Bourne shell script text executable Warning: The command '/usr/bin/whatis' has been replaced by a script: /usr/bin/whatis: Bourne shell script text executable Warning: The command '/sbin/ifdown' has been replaced by a script: /sbin/ifdown: Bourne-Again shell script text executable Warning: The command '/sbin/ifup' has been replaced by a script: /sbin/ifup: Bourne-Again shell script text executable Warning: No output found from the lsmod command or the /proc/modules file: /proc/modules output: lsmod output: Warning: The kernel modules directory '/lib/modules' is missing or empty. Warning: The SSH configuration option 'PermitRootLogin' has not been set. The default value may be 'yes', to allow root access. Warning: Hidden directory found: /dev/.udev Warning: Hidden file found: /usr/share/man/man1/..1.gz: gzip compressed data, from Unix, max compression Warning: Hidden file found: /usr/bin/.fipscheck.hmac: ASCII text Warning: Hidden file found: /usr/sbin/.sshd.hmac: ASCII text Warning: Application 'httpd', version '2.2.3', is out of date, and possibly a security risk. Warning: Application 'openssl', version '0.9.8e', is out of date, and possibly a security risk. Warning: Application 'php', version '5.1.6', is out of date, and possibly a security risk. Warning: Application 'sshd', version '4.3p2', is out of date, and possibly a security risk.
При запуске утилиты rkhunter возможно ложное срабатывание на некоторых системах и требуется настройка параметров в файле /etc/rkhunter.conf
Чтобы убрать предупреждения о файлах замененных скриптами (Warning: The command '/usr/bin/ldd' has been replaced) внесите их в перечень параметра SCRIPTWHITELIST
SCRIPTWHITELIST="/sbin/ifup /sbin/ifdown /usr/bin/groups /usr/bin/ldd /usr/bin/whatis"
Чтобы убрать предупреждение о разрешении подключения по ssh с именем root (Warning: The SSH configuration option… )добавьте параметр:
ALLOW_SSH_ROOT_USER=yes
И добавьте параметр PermitRootLogin yes в /etc/ssh/sshd_config командой.
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
Обычно этот параметр там есть, но он закомментирован.
Иначе будет предупреждение: Warning: The SSH configuration option 'PermitRootLogin' has not been set.
Предупреждения - Warning: Hidden file found: убираются параметрами:
ALLOWHIDDENDIR="/etc/.java" ALLOWHIDDENDIR="/dev/.udev /dev/.udevdb /dev/.udev.tdb" ALLOWHIDDENDIR="/dev/.static" ALLOWHIDDENDIR="/dev/.initramfs" ALLOWHIDDENDIR="/dev/.SRC-unix" ALLOWHIDDENDIR="/dev/.mdadm ALLOWHIDDENFILE="/etc/.java" ALLOWHIDDENFILE="/usr/share/man/man1/..1.gz" ALLOWHIDDENFILE="/usr/bin/.fipscheck.hmac" ALLOWHIDDENFILE="/usr/bin/.ssh.hmac" ALLOWHIDDENFILE="/usr/sbin/.sshd.hmac"
В файле /etc/rkhunter.conf есть и другие примеры.
Чтобы скрипт не ругался на старые версии программ добавьте параметр с разрешенными версиями программ:
APP_WHITELIST="openssl:0.9.8e gpg httpd:2.2.3 php:5.1.6 sshd:4.3p2"
Если вы используете виртуальный сервер под OpenVZ, то rkhunter будет ругаться на отсутствие модулей ядра: Исправляем так - надо отключить лишний тест добавлением его в список DISABLE_TESTS:
DISABLE_TESTS=«avail_modules loaded_modules suspscan hidden_procs deleted_files packet_cap_apps apps»
Вызывающие ложные срабатывания факторы в Debian описаны в файле /usr/share/doc/rkhunter/README.Debian.gz
Для отправки сообщений на почту при обнаружении руткитов в файле нужно раскомментировать и изменить строку:
MAIL-ON-WARNING=mymail@mydomain
Можно поменять команду отправки, чтобы письмо отправлялось средствами sendEmail:
MAIL_CMD=sendEmail -q -o message-charset=utf-8 -s mail.nic.ru:25 -u "[rkhunter] Warnings found for ${HOST_NAME}" -xu server@goldeni.com -xp {ПАРОЛЬ} -f {my@mail.com} -m "Проверьте сервер ${HOST_NAME} на руткиты!" -t
Так как в конфиге указывается пароль к почте, рекомендуется сменить права на файл /etc/rkhunter.conf на 600.
chmod 600 /etc/rkhunter.conf
Для автоматического обновления и сканирования добавьте в /etc/crontab следующие строки:
# Обновляет базу rkhunter раз в неделю в 00:00 0 0 * * 1 root rkhunter --update --cronjob # Сканирует на руткиты каждый день в 00:30 30 0 * * * root rkhunter --check --cronjob
Не забудьте перезапустить cron!
# sudo /etc/init.d/cron restart
Актуальность: 2015/12/15 12:47