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

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

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

Время чтения: 14 мин Безопасность
вредоносное ПОруткитrkhunterclamavбезопасностьантивирусlinuxбезопасность сервера
Автор
REXE Teknoloji Network & Security Team
Редактор
REXE Teknoloji Technical Editorial
Первая публикация
Последнее обновление

Сканирование на вредоносное ПО и руткиты: 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 создаёт комплексный уровень защиты. Запланированные сканирования и уведомления по электронной почте позволяют обнаруживать угрозы безопасности на ранних стадиях.

Часто задаваемые вопросы

rkhunter выдаёт предупреждения при каждом запуске, это нормально?

Некоторые предупреждения могут быть ложными срабатываниями. Хэши файлов изменяются особенно после обновлений системы. После обновления запустите 'sudo rkhunter --propupd' для обновления эталонных значений. Проверяйте каждое предупреждение вручную.

Сколько времени занимает полное сканирование системы ClamAV?

В зависимости от размера диска и количества файлов это может занять от нескольких часов до целого дня. Для ежедневных сканирований сосредоточьтесь на критических директориях: /home, /var/www и /tmp. Планируйте полные сканирования системы еженедельно.

В чём разница между rkhunter и ClamAV?

rkhunter проверяет системные файлы и конфигурации для обнаружения руткитов и бэкдоров. ClamAV — антивирусный движок на основе сигнатур, сканирующий содержимое файлов. Они дополняют друг друга, рекомендуется использовать оба.

Влияет ли сканирование на производительность сервера?

Да, особенно полное сканирование системы ClamAV увеличивает использование CPU и дискового I/O. Планируйте сканирования в нерабочее время. Можно снизить приоритет командой 'nice': 'sudo nice -n 19 clamscan -r /'

Что делать при обнаружении заражённого файла?

Сначала поместите файл в карантин (не удаляйте). Исследуйте, что это за файл — возможно, это ложное срабатывание. При реальной угрозе изолируйте систему, соберите доказательства и при необходимости переустановите сервер.

Связанные статьи

Настройка Fail2Ban: Защита SSH от брутфорс-атак

Защитите сервер от SSH брутфорс-атак с помощью Fail2Ban. Установка, настройка jail.local, джейлы для Nginx/Apache, белый список IP, мониторинг блокировок и email-уведомления.

13 мин
fail2banбрутфорсбезопасность ssh

Сетевая безопасность Zero Trust: руководство по базовой настройке

Принципы сетевой безопасности Zero Trust и практическая реализация: никогда не доверяй всегда проверяй, микросегментация, доступ на основе идентификации и реализация с существующими инструментами Linux.

14 мин
zero trustсетевая безопасностьмикросегментация
Сетевой трафикВходящий GbpsИсходящий Gbps