Перейти к основному содержимому
Вернуться в категорию

Сканирование на вредоносное ПО и руткиты: rkhunter и ClamAV

Защитите Linux-сервер от вредоносного ПО и руткитов. Установка rkhunter и ClamAV, настройка сканирования, интерпретация результатов, планирование сканирований и реагирование на инциденты.

Время чтения: 14 мин Безопасность
вредоносное ПОруткитrkhunterclamavбезопасностьантивирусlinuxбезопасность сервера

Содержание

Сканирование на вредоносное ПО и руткиты: rkhunter и ClamAV

Хотя Linux-серверы атакуются реже, чем Windows-системы, они не застрахованы от атак вредоносного ПО и руткитов. Регулярное сканирование безопасности критически важно, особенно для серверов, доступных из интернета. В этом руководстве вы создадите комплексную инфраструктуру сканирования безопасности с использованием rkhunter и ClamAV.

Что такое rkhunter?

rkhunter (Rootkit Hunter) — это инструмент безопасности с открытым исходным кодом для обнаружения руткитов, бэкдоров и локальных эксплойтов в Linux-системах. Он проверяет хэш-значения, права доступа и известные сигнатуры руткитов системных файлов.

Установка rkhunter

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install rkhunter -y

# CentOS/AlmaLinux/Rocky Linux
sudo dnf install rkhunter -y
# или из репозитория EPEL:
sudo dnf install epel-release -y
sudo dnf install rkhunter -y

Обновление базы данных rkhunter

hljs bash
# Обновить базу данных сигнатур
sudo rkhunter --update

# Записать начальные хэш-значения системных файлов
# Выполните это на чистой системе!
sudo rkhunter --propupd

Запускайте --propupd только когда уверены, что система чистая. Эта команда сохраняет текущие хэши файлов как эталонные значения.

Запуск сканирования rkhunter

hljs bash
# Полное сканирование системы
sudo rkhunter --check

# Неинтерактивный режим (для cron)
sudo rkhunter --check --skip-keypress

# Показывать только предупреждения
sudo rkhunter --check --rwo

# Подробный вывод
sudo rkhunter --check --verbose-logging

# Просмотр файла журнала
sudo cat /var/log/rkhunter.log

Конфигурация rkhunter

hljs bash
sudo nano /etc/rkhunter.conf
hljs ini
# /etc/rkhunter.conf важные настройки

# Уведомление по электронной почте
MAIL-ON-WARNING=admin@example.com
MAIL_CMD=mail -s "[rkhunter] Предупреждение - $(hostname)"

# Ежедневное обновление
AUTO_X_DETECT=1
UPDATE_MIRRORS=1
MIRRORS_MODE=0

# Белый список - известные безопасные файлы
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/which

# Проверка скрытых директорий
ALLOW_HIDDEN_SYS_FILELIST=0

# Проверка SSH root-входа
ALLOW_SSH_ROOT_USER=no
ALLOW_SSH_PROT_V1=0

Интерпретация результатов rkhunter

Вывод rkhunter показывает три состояния:

  • OK (Зелёный): Файл или настройка безопасны
  • Warning (Жёлтый): Подозрительное состояние, требуется ручная проверка
  • Not found (Белый): Инструмент или файл отсутствует в системе
hljs bash
# Фильтровать только предупреждения
sudo grep -i warning /var/log/rkhunter.log

# Просмотр сводного отчёта
sudo tail -50 /var/log/rkhunter.log

Некоторые предупреждения могут быть ложными срабатываниями. Пользовательские скомпилированные инструменты или изменённые системные файлы могут вызывать предупреждения. Проверяйте каждое предупреждение вручную.

Что такое ClamAV?

ClamAV — антивирусный движок с открытым исходным кодом. Широко используется на Linux-серверах для сканирования файлов, проверки вложений электронной почты и сканирования веб-контента.

Установка ClamAV

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install clamav clamav-daemon -y

# CentOS/AlmaLinux
sudo dnf install clamav clamd clamav-update -y

Обновление вирусной базы данных

hljs bash
# Остановить службу ClamAV (для обновления)
sudo systemctl stop clamav-freshclam

# Обновить базу данных вручную
sudo freshclam

# Перезапустить службу
sudo systemctl start clamav-freshclam
sudo systemctl enable clamav-freshclam

Сканирование с ClamAV

hljs bash
# Сканирование одной директории
sudo clamscan -r /home

# Полное сканирование системы (может быть медленным)
sudo clamscan -r / --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev"

# Показывать только заражённые файлы
sudo clamscan -r /var/www --infected

# Переместить заражённые файлы в карантин
sudo clamscan -r /home --infected --move=/quarantine

# Сохранить результаты сканирования в файл
sudo clamscan -r / --log=/var/log/clamav-scan.log --exclude-dir="^/sys" --exclude-dir="^/proc"

Настройка запланированных сканирований

Автоматизированное сканирование с Cron

hljs bash
# Создать файл cron
sudo nano /etc/cron.d/security-scan
hljs bash
# /etc/cron.d/security-scan

# Сканирование rkhunter каждую ночь в 02:00
0 2 * * * root /usr/bin/rkhunter --check --skip-keypress --report-warnings-only 2>&1 | mail -s "[rkhunter] $(hostname) Ежедневный отчёт" admin@example.com

# Полное сканирование ClamAV каждое воскресенье в 03:00
0 3 * * 0 root /usr/bin/clamscan -r / --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev" --infected --log=/var/log/clamav-weekly.log

# Ежедневное обновление базы данных ClamAV
0 1 * * * root /usr/bin/freshclam --quiet

Реагирование на инциденты

Если при сканировании обнаружена угроза:

1. Изолировать систему

hljs bash
# Проверить сетевые соединения
sudo ss -tlnp

# Найти подозрительные соединения
sudo ss -anp | grep ESTABLISHED

# При необходимости ограничить сетевой доступ
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow ssh  # Сохранить SSH-доступ

2. Собрать доказательства

hljs bash
# Сохранить запущенные процессы
ps aux > /tmp/processes_$(date +%Y%m%d).txt

# Найти недавно изменённые файлы
find / -mtime -1 -type f 2>/dev/null | grep -v proc | grep -v sys

3. Очистка и восстановление

hljs bash
# Поместить подозрительные файлы в карантин
mkdir -p /quarantine
mv /path/to/suspicious/file /quarantine/

# Проверить системные файлы
sudo debsums -c  # Debian/Ubuntu
sudo rpm -Va     # CentOS/RHEL

При обнаружении серьёзного заражения руткитом самым безопасным решением является переустановка сервера с нуля. Поскольку руткиты могут изменять системные инструменты, очистка не всегда надёжна.

Заключение

Регулярное сканирование на вредоносное ПО и руткиты является фундаментальным компонентом безопасности сервера. Совместное использование rkhunter и ClamAV создаёт комплексный уровень защиты. Запланированные сканирования и уведомления по электронной почте позволяют обнаруживать угрозы безопасности на ранних стадиях.