На хабре не раз было упомянуто приложение под названием rkhunter. Хотелось бы остановиться на нем по подробней.
Rkhunter — это сканер различных видов локальных (потенциальных) уязвимостей (бэкдоров, эксплоитов и руткитов) со своей регулярно обновляемой базой.
Он написан на bash и perl, поэтому будет работать под любой серверной ОС на базе unix без каких-либо проблем.
Для установки можно воспользоваться официальными репозитариями той ОС, на которой требуется провести сканирование, либо скачав архив с официального сайта http://rkhunter.sourceforge.net/
Установка
- Centos: yum install rkhunter
- Debian/Ubuntu: apt-get install rkhunter
- FreeBSD: make all install clean -C /usr/ports/security/rkhunter или pkg install rkhunter
Первый запуск и подготовка
Первый запуск требуется для проверки системы на предмет совместимости и корректности установки самого rkhunter.
Проверим для начала актуальность установленной версии
rkhunter --versioncheck
Появится такая информация, по которой можно судить об актуальности версии
[ Rootkit Hunter version 1.4.2 ]
Checking rkhunter version…
This version: 1.4.2
Latest version: 1.4.2
Для поддержания актуальности инструмента для поиска уязвимостей на сервере следует запускать rkhunter с ключом --update
rkhunter --update
[ Rootkit Hunter version 1.4.2 ]
Checking rkhunter data files…
Checking file mirrors.dat [ No update ]
Checking file programs_bad.dat [ No update ]
Checking file backdoorports.dat [ No update ]
Checking file suspscan.dat [ Updated ]
Checking file i18n/cn [ No update ]
Checking file i18n/de [ Updated ]
Checking file i18n/en [ No update ]
Checking file i18n/tr [ Updated ]
Checking file i18n/tr.utf8 [ Updated ]
Checking file i18n/zh [ Updated ]
Checking file i18n/zh.utf8 [ Updated ]
Вторым шагом будет создание снимка состояния установленной системы для rkhunter командой:
rkhunter --propupd
[ Rootkit Hunter version 1.4.2 ]
File created: searched for 171 files, found 139
Итак, база обновлена и теперь мы готовы сделать первый запуск rkhunter для сканирования.
rkhunter -c --enable all --disable none
Будет проведено тестирование системы и вывод различных сообщений по каждому из пункта проверок. После каждого этапа нужно будет нажать Enter для продолжения. В самом конце появится итоговая информация проверки системы:
System checks summary
=====================
File properties checks…
Files checked: 139
Suspect files: 23
Rootkit checks…
Rootkits checked: 381
Possible rootkits: 0
Applications checks…
Applications checked: 3
Suspect applications: 0
The system checks took: 2 minutes and 39 seconds
All results have been written to the log file: /var/log/rkhunter/rkhunter.log
One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter/rkhunter.log)
Обратите внимание на то, что rkhunter ведет лог-файл и в нем можно увидеть и те данные, которые отображались на экране в ходе проверки.
Первый запуск и проверка произведена, теперь перейдем к более тонкой настройке этого замечательного инструмента.
Настройка rkhunter
Файл конфигурации rkhunter может находиться в /etc/rkhunter.conf или /usr/local/etc/rkhunter.conf в зависимости от ОС и дистрибутива.
В первую очередь настроим оповещение на адрес электронной почты в параметре
MAIL-ON-WARNING=«почтовый@ящик»
В случае ложного срабатывания на файлы типа /bin/which можно воспользоваться параметром SCRIPTWHITELIST и добавить в него файлы, которые не требуется проверять/сигнализировать о проблеме. Добавлять следует по одному в параметр на строчке:
SCRIPTWHITELIST="/usr/sbin/adduser"
SCRIPTWHITELIST="/bin/which
Если Вы пользуетесь для доступа по ssh пользователем root и не намерены его отключать, то можно эту проверку отключить:
ALLOW_SSH_ROOT_USER=yes
После редактирования конфигурационного файла сохраните его и проверьте на наличие проблем, запустив rkhunter с ключом -C:
rkhunter -C
Запустим rkhunter для проверки системы, но добавим ключ -rwo, чтобы выводились только предупреждения:
rkhunter -c --enable all --disable none --rwo
Автоматический запуск сканирования
Настройку планировщика можно провести как из консоли, так и в панели управления ISPmanager.
В консоли требуется выполнить команду crontab -e и добавить строчку для ежедневного сканирования:
@daily /usr/bin/rkhunter --cronjob --update --quiet
В ISPmanager4 планировщик расположен в пункте меню “Инструменты” -> “Планировщик (cron)”
В ISPmanager5 это пункт меню “Планировщик” в разделе “Система”
В качестве заключения хочу напомнить. Не забывайте запускать rkhunter --propupd после каждого изменения конфигурационных файлов или обновления ОС. Этим вы избежите ложных срабатываний.
Автор: vadim_s_sabinich