ClamAV — это бесплатный антивирус для Linux, который позволяет проверять сервер на наличие вредоносных файлов, веб-шеллов, заражённых скриптов и другого подозрительного содержимого.
Хотя Linux-серверы заражаются значительно реже обычных компьютеров, сайты на WordPress, Joomla, Drupal и других CMS регулярно становятся целью злоумышленников. Поэтому периодическая проверка файлов антивирусом является хорошей практикой для любого администратора.
В этой инструкции рассмотрим установку ClamAV на Ubuntu и Debian, обновление вирусных баз и запуск проверки сервера.
Для чего нужен ClamAV
ClamAV помогает обнаруживать:
- вредоносные PHP-скрипты;
- веб-шеллы;
- вирусы в загружаемых файлах;
- заражённые архивы;
- подозрительные исполняемые файлы;
- известные сигнатуры вредоносного ПО.
Важно понимать, что ClamAV не является полноценной защитой от взлома. Он помогает находить уже загруженные вредоносные файлы, но не предотвращает атаки.
Для комплексной защиты рекомендуется дополнительно использовать:
- Firewall;
- Fail2Ban;
- актуальные версии CMS;
- регулярные обновления сервера;
- надёжные пароли и SSH-ключи.
Обновление системы
Перед установкой рекомендуется обновить список пакетов:
apt update
При необходимости обновите установленные пакеты:
apt upgrade -y
Установка ClamAV
Установите антивирус и службу обновления баз:
apt install clamav clamav-daemon -y
После завершения установки проверьте версию:
clamscan --version
Пример результата:
ClamAV 1.x.x
Обновление вирусных баз
Перед первым использованием необходимо обновить базы сигнатур.
Остановите службу обновления:
systemctl stop clamav-freshclam
Запустите обновление:
freshclam
После завершения снова включите службу:
systemctl start clamav-freshclam
Проверить статус можно командой:
systemctl status clamav-freshclam
Проверка отдельного файла
Для проверки одного файла используйте:
clamscan /path/to/file
Пример:
clamscan /home/site/public_html/index.php
Если угроз не обнаружено, вы увидите сообщение:
OK
Проверка каталога
Проверить папку:
clamscan -r /var/www
Параметр:
-r
означает рекурсивную проверку всех вложенных каталогов.
Показывать только заражённые файлы
Чтобы выводить только найденные угрозы:
clamscan -r --infected /var/www
Так результат будет значительно удобнее для анализа.
Автоматическое удаление заражённых файлов
Использовать автоматическое удаление следует очень осторожно.
Пример:
clamscan -r --remove /var/www
Перед использованием рекомендуется обязательно создать резервную копию данных.
В некоторых случаях антивирус может ошибочно определить легитимный файл как вредоносный.
Перемещение угроз в карантин
Более безопасный вариант — перемещение файлов в отдельную папку.
Создайте каталог:
mkdir /quarantine
Запустите проверку:
clamscan -r --move=/quarantine /var/www
Все подозрительные файлы будут перемещены в карантин для дальнейшего анализа.
Проверка всего сервера
Для полной проверки сервера:
clamscan -r /
Однако на крупных серверах такая проверка может занимать много времени.
Чаще всего достаточно проверять:
/var/www
/home
или каталоги сайтов.
Использование clamdscan
На серверах с большим количеством файлов рекомендуется использовать демон ClamAV.
Запустите службу:
systemctl enable clamav-daemon
systemctl start clamav-daemon
Проверить статус:
systemctl status clamav-daemon
Сканирование через демон:
clamdscan /var/www
Обычно этот способ работает быстрее, чем обычный clamscan.
Настройка автоматического обновления баз
После установки служба FreshClam обычно обновляет базы автоматически.
Проверить работу службы:
systemctl status clamav-freshclam
Включить автозапуск:
systemctl enable clamav-freshclam
Автоматическая ежедневная проверка
Для регулярного сканирования можно использовать Cron.
Откройте планировщик:
crontab -e
Добавьте задачу:
0 3 * * * clamscan -r --infected /var/www >> /var/log/clamscan.log
В данном примере проверка будет выполняться ежедневно в 03:00.
Просмотр журнала проверки
Если результаты сохраняются в лог-файл:
cat /var/log/clamscan.log
или:
tail -f /var/log/clamscan.log
Частые ошибки
FreshClam не обновляет базы
Проверьте наличие доступа в интернет:
ping google.com
Также убедитесь, что служба обновления запущена:
systemctl status clamav-freshclam
Проверка занимает слишком много времени
Для больших серверов используйте:
clamdscan
или проверяйте только каталоги сайтов.
Высокая нагрузка на сервер
Полная проверка может заметно нагружать процессор и диск.
Рекомендуется запускать сканирование в часы минимальной активности сайта.
Найдены заражённые файлы
Не удаляйте их сразу без анализа.
Сначала переместите файлы в карантин и проверьте их происхождение.
Рекомендации
Для большинства VPS и выделенных серверов достаточно:
- установить ClamAV и FreshClam;
- регулярно обновлять базы сигнатур;
- проверять каталоги сайтов хотя бы раз в неделю;
- использовать карантин вместо автоматического удаления;
- хранить актуальные резервные копии.
ClamAV не заменяет полноценную систему безопасности, однако позволяет своевременно обнаруживать вредоносные файлы и помогает поддерживать сервер в безопасном состоянии.