rkhunter

rkhunter — это программа для поиска руткитов в debian

rootkit — это набор программ призванный спрятать некую негативную деятельность или присутствие взломщика в системе. Если на сервере происходит некая посторонняя деятельность (рассылка спама, на сайтах появляются файлы, которые вы не создавали, повышенная нагрузка, которую не понятно что создает), особенно после того, как сервер взламывали тем или иным способом, то стоит попробовать поискать код. Это можно сделать с помощью антивируса или специального ПО для обнаружения руткитов. Для этого и служит rkhunter.

Установка rkhunter

Устанавливаем:

# aptitude install rkhunter

Либо можно установить вручную скачав архив с официального сайта:

cd ~
wget http://sourceforge.net/projects/rkhunter/files/rkhunter/1.4.0/rkhunter-1.4.0.tar.gz
tar xfz rkhunter-1.4.0.tar.gz
cd rkhunter-1.4.0
sh installer.sh --layout default --install

Вывод последней команды:

Checking system for:
Rootkit Hunter installer files: found
A web file download command: wget found
Starting installation:
Checking installation directory "/usr/local": it exists and is writable.
Checking installation directories:
Directory /usr/local/share/doc/rkhunter-1.4.0: creating: OK
Directory /usr/local/share/man/man8: creating: OK
Directory /etc: exists and is writable.
Directory /usr/local/bin: exists and is writable.
Directory /usr/local/lib: exists and is writable.
Directory /var/lib: exists and is writable.
Directory /usr/local/lib/rkhunter/scripts: creating: OK
Directory /var/lib/rkhunter/db: creating: OK
Directory /var/lib/rkhunter/tmp: creating: OK
Directory /var/lib/rkhunter/db/i18n: creating: OK
Installing check_modules.pl: OK
Installing filehashsha.pl: OK
Installing stat.pl: OK
Installing readlink.sh: OK
Installing backdoorports.dat: OK
Installing mirrors.dat: OK
Installing programs_bad.dat: OK
Installing suspscan.dat: OK
Installing rkhunter.8: OK
Installing ACKNOWLEDGMENTS: OK
Installing CHANGELOG: OK
Installing FAQ: OK
Installing LICENSE: OK
Installing README: OK
Installing language support files: OK
Installing rkhunter: OK
Installing rkhunter.conf: OK
Installation complete

Настройка rkhunter

Конфигурационные файлы:

/etc/default/rkhunter - можно настроить периодические задачи (обновление, проверка, отчеты),
/etc/rkhunter.conf - основной конфигурационный файл

Параметры, которые можно задать в /etc/default/rkhunter (параметры могут принимать значения true или false):

CRON_DAILY_RUN="" - по умолчанию значение true. Позволяет ежесуточно запускать проверку.
CRON_DB_UPDATE="" - по умолчанию значение true. Позволяет включить еженедельные обновления баз.
DB_UPDATE_EMAIL="false" - отправлять ли отчеты об еженедельном обновлении баз. По умолчанию - false.
REPORT_EMAIL="root" - адрес электронной почты, куда отправлять отчеты. По умолчанию - root.
APT_AUTOGEN="false" - позволяет включить автоматическое обновление баз.
NICE="0" - позволяет управлять приоритетом процесса.
RUN_CHECK_ON_BATTERY="false" - следует ли проводить автоматические проверки в случае работы компьютера от батареи.

В /etc/rkhunter.conf можно поправить следующие настройки:

PKGMGR=DPKG - судя по документации, в Debian данный параметр особого эффекта не дает, так что можно оставить по умолчанию.
DISABLE_TESTS="apps" - отключает проверку актуальности версий софта, с этим прекрасно справляются разработчики Debian.
SUSPSCAN_DIRS="/tmp /var/tmp" - указываем в какой директории искать подозрительные файлы.
OS_VERSION_FILE="/etc/debian_version" - где искать файл с версией ОС.
USE_LOCKING=1 - позволяет использовать блокировку для защиты от ошибок в случае если запущено несколько процессов rkhunter в Debian. Может пригодиться, если вы запускаете rkhunter автоматически с помощью cron.
DISABLE_UNHIDE=2 - отключает использование утилиты unhide.rb написанной на ruby.

Чтобы rkhunter начал автоматически проверять систему ежесуточно (у меня проверка начинается в 6:25) достаточно в файле /etc/default/rkhunter установить значение параметра CRON_DAILY_RUN равным true. В данном случае будет использоваться следующая команда:

/usr/bin/rkhunter --cronjob --report-warnings-only --appendlog