Руткиты — это вредоносные программы, которые скрывают своё присутствие в системе на уровне ядра или файловой системы. Регулярное сканирование с помощью rkhunter и chkrootkit позволяет обнаружить компрометацию сервера.
Установка и настройка rkhunter
apt install rkhunter -y
# Обновить базу данных хешей
rkhunter --update
rkhunter --propupd # Сохранить текущие свойства файлов как эталон
# Запустить полное сканирование
rkhunter --check --sk --rwo # --sk = пропустить нажатия клавиш, --rwo = только предупреждения
Важные настройки /etc/rkhunter.conf
MAIL-ON-WARNING=admin@example.com
MAIL_CMD=mail -s "[rkhunter] Warning on $(hostname)"
CRON_DAILY_RUN=yes
# Исключить ложные срабатывания
SCRIPTWHITELIST=/usr/sbin/adduser
ALLOWHIDDENFILE=/etc/.gitconfig
PKGMGR=DPKG # Использовать dpkg для проверки пакетов
Установка и использование chkrootkit
apt install chkrootkit -y
chkrootkit
# Вывод: INFECTED означает потенциальную угрозу
# Вывод: not infected — чисто
Автоматическое сканирование по расписанию
# /etc/cron.daily/rkhunter-check
#!/bin/bash
/usr/bin/rkhunter --cronjob --update --quiet 2>&1 | mail -s "rkhunter Daily Report - $(hostname)" admin@example.com
chmod +x /etc/cron.daily/rkhunter-check
Что делать при обнаружении угрозы
- Изолировать сервер — отключить от сети (не выключать!)
- Сделать образ диска для forensics-анализа
- Проверить запущенные процессы:
ps aux,netstat -tulnp - Проверить cron и автозапуск:
crontab -l,systemctl list-units - Восстановить из чистого бэкапа на новый сервер
Лучшая практика: Запускайте
rkhunter --propupd сразу после установки чистой системы и после каждого обновления пакетов. Это создаёт актуальный эталон для сравнения при следующем сканировании.
Ложные срабатывания rkhunter — частое явление. Каждое предупреждение нужно исследовать, прежде чем делать выводы о компрометации. Начните с проверки через
dpkg -V пакет.