Защита системы с помощью Rkhunter
rkhunter - скрипт, предназначенный для командной оболочки (таких как bash и т.д.), который выполняет различные проверки на локальной системе для обнаружения известных ему rootkits и malware.
Он также проводит проверки и выявление изменений в установленных программах, в системных файлах запуска и различные проверки для приложений, которые “слушают” на сетевых интерфейсах сервера. По сути - антишпион (антивирус - как будет угодно) для Linux. И, в целях улучшения безопасности, его использовать стоит.
Содержание
Установка rkhunter
Простая, как 5 копеек, т.к. присутствует в хранилищах большинства дистрибутивов.
Для CentOS
yum install rkhunter
Для Ubuntu, Linux Mint и иже с ними
sudo apt-get install rkhunter
Настройка rkhunter
Для начала зайдите в конф. файл
nano /etc/rkhunter.conf
и поставьте ваш почтовый адрес, чтобы предупреждения сыпались на почту и мешали спокойно спать. То есть исправьте строку:
MAIL-ON-WARNING="root"
в файле /etc/rkhunter.conf. Вместо root укажите свой адрес.
Далее, нужно сделать “слепок” того, что есть сейчас. Это делается буквально с помощью команды:
rkhunter --propupd
Далее давайте обновим базу:
rkhunter --update
Проверка с помощью rkhunter
Итак, система настроена и обновлена, теперь давайте попробуем прогнать первый раз проверку:
rkhunter -c --update --noappend-log --vl
Придется немного посидеть перед монитором, т.к. система несколько раз предложит нажать ENTER. При этом можно будет сразу обратить внимание на варнинги (ошибки или как угодно их назовите). Их мы перечислим после. Но сначала:
Добавление rkhunter в cron
Например, нам надо сканировать систему раз в сутки в 23.00. Зададим такую команду:
0 23 * * * /usr/bin/rkhunter --update; /usr/bin/rkhunter -c --createlogfile --cronjob
Сначала будет проходить обновление, потом - проверка. Будьте внимательны относительно пути к rkhunter! Данный пример приведен для CentOS 5.5.
Warnings! Ошибки, выдаваемые rkhunter
При сканировании могут на ранних этапах появится ошибки, которых на самом деле нет. Например:
- Checking if SSH root access is allowed [ Warning ]
Более чем странная ошибка, если root в SSH запрещен. Для начала все-таки проверьте доступ пользователя ROOT по SSH. Можно с помощью команды
less /etc/ssh/sshd_config | grep Root
Должно появится: PermitRootLogin no. Если стоит yes - запрещаем входить root на сервер (что правильно!) и рестартуем SSHD
/etc/init.d/sshd restart
Если же всё-таки стоит ”no” - лечится просто заменой ”yes” на ”no” в конфиге /etc/rkhunter.conf в параметре ALLOW_SSH_ROOT_USER`
- Checking for passwd file changes [ Warning ] или Checking for group file changes [ Warning ]
В данном случае вы, скорее всего, забыли сделать первоначальный “слепок” командой rkhunter –propupd
Если возникают какие-либо еще ошибки - прошу в студию.. :)
Если у вас появились какие-либо еще ошибки и вы их решили - напишите мне о них, я добавлю с указанием авторства. Почта есть на главной странице, данные IRC там же.