Проверка Linux-сервера на вирусы и руткиты: ClamAV и rkhunter
Проверить Linux-сервер на угрозы можно двумя инструментами: ClamAV ищет вредоносные файлы по сигнатурам, а rkhunter — руткиты, подменённые системные бинарники и подозрительные настройки. Ниже — установка обоих, запуск сканирования и разбор результатов.
Когда проверять
Сканируйте сервер, если заметили аномальную нагрузку, исходящий спам, неизвестные процессы или после взлома. Регулярная проверка по расписанию — хорошая профилактика для публично доступных VPS.
Часть 1. ClamAV — антивирус
Установка
apt update
apt install -y clamav clamav-daemon
Обновление баз
Остановите демон обновлений, обновите вручную, затем запустите:
systemctl stop clamav-freshclam
freshclam
systemctl start clamav-freshclam
Сканирование
Проверить домашние каталоги и веб-корень рекурсивно, показывая только заражённые файлы:
clamscan -r -i /home /var/www
Полезные флаги:
-r— рекурсивно;-i— только заражённые;--remove— удалять найденное (осторожно!);--move=/root/quarantine— переносить в карантин.
Безопаснее переносить в карантин, а не удалять:
mkdir -p /root/quarantine
clamscan -r -i --move=/root/quarantine /var/www
Быстрое сканирование всей системы
clamscan -r -i --exclude-dir="^/sys" --exclude-dir="^/proc" /
Каталоги /proc и /sys виртуальные — их исключаем.
Часть 2. rkhunter — поиск руткитов
Установка
apt install -y rkhunter
Обновление и базовый снимок
rkhunter --update
rkhunter --propupd
--propupd сохраняет эталонные контрольные суммы системных файлов. Выполняйте её только на заведомо чистой системе.
Запуск проверки
rkhunter --check --skip-keypress
rkhunter проверит системные бинарники, известные руткиты, права файлов, скрытые процессы и порты. Итог — в /var/log/rkhunter.log.
Посмотреть только предупреждения:
grep -i warning /var/log/rkhunter.log
Разбор предупреждений
Не каждое предупреждение — заражение. Частые ложные срабатывания: обновлённые пакеты (изменились суммы), скрытые файлы вроде /dev/.udev. После легитимного обновления системы снова выполните rkhunter --propupd, чтобы обновить эталон.
Дополнительно: chkrootkit
Второй сканер руткитов для перекрёстной проверки:
apt install -y chkrootkit
chkrootkit
Автоматизация через cron
Еженедельная проверка с отправкой отчёта на почту. Создайте /etc/cron.weekly/security-scan:
#!/bin/bash
freshclam
clamscan -r -i /var/www /home >> /var/log/clamscan.log
rkhunter --update
rkhunter --check --skip-keypress --report-warnings-only
Сделайте исполняемым:
chmod +x /etc/cron.weekly/security-scan
Что делать при обнаружении
- Изолируйте сервер — ограничьте исходящий трафик через firewall.
- Не удаляйте улики сразу, сделайте снимок/бэкап.
- Проверьте активные процессы (
ps aux), соединения (ss -tulpn), задания cron. - При серьёзном заражении надёжнее переустановить систему из чистого образа и восстановить данные из проверенной резервной копии.
Проверка целостности пакетов
Заражение часто подменяет системные бинарники. На Debian/Ubuntu проверьте контрольные суммы установленных пакетов:
apt install -y debsums
debsums -s
Вывод покажет файлы, чьи суммы не совпадают с эталоном пакета. На RPM-системах аналог — rpm -Va.
Аудит открытых портов и процессов
Вредонос обычно оставляет слушающие порты или скрытые процессы. Проверьте вручную:
ss -tulpn
ps auxf
Подозрительные исходящие соединения:
ss -tp state established
Сверьте задания планировщика, где часто прячется автозапуск:
crontab -l
ls -la /etc/cron.* /etc/cron.d
cat /etc/crontab
Проверка автозагрузки и пользователей
Новые или неизвестные пользователи с UID 0 — тревожный признак:
awk -F: '($3 == 0) {print}' /etc/passwd
Список включённых сервисов systemd:
systemctl list-unit-files --state=enabled
Ищите юниты со странными именами и путями запуска в /tmp или /dev/shm.
Регулярность важнее разовой проверки
Одна проверка ловит только то, что уже проникло. Настоящая защита — это регулярность: еженедельное сканирование по cron (пример выше), актуальные обновления системы (apt update && apt upgrade), firewall, отключённый вход по паролю в SSH и свежие резервные копии на отдельном хранилище.
Частые вопросы
ClamAV или rkhunter — что выбрать? Оба: ClamAV ищет вредоносные файлы, rkhunter — руткиты и подмены. Они дополняют друг друга.
Много ложных срабатываний rkhunter — это нормально?
Да, после обновлений пакетов. Обновляйте эталон командой rkhunter --propupd на чистой системе.
Нагружает ли сканирование сервер? Полное сканирование диска нагружает CPU и I/O. Запускайте по расписанию в непиковые часы.
Можно ли доверять --remove у ClamAV?
Осторожно: возможны ложные срабатывания. Лучше --move в карантин и ручная проверка.
Гарантирует ли это чистоту сервера? Нет инструмент не даёт 100% гарантии. Держите резервные копии и обновляйте систему — это основа безопасности.
Безопасность начинается с правильной инфраструктуры. Возьмите VPS для VPN и безопасности или аренду VPS. Регулярный аудит и защиту настроит Администрирование серверов.
