ClamAV подходит для проверки загруженных файлов и почтовых вложений. Он не заменяет обновления CMS, изоляцию пользователей и резервные копии. В этом сценарии выполняется однократное сканирование выбранного каталога без удаления обнаружений.
1. Оцените ресурсы и установите пакет
free -h
df -h
sudo apt update
sudo apt install clamav clamav-freshclam
clamscan --version
Загрузка сигнатур требует памяти; на маленьком VPS сканирование может конкурировать с базой данных и PHP. Выберите спокойный период. Не запускайте одновременно несколько clamscan: каждый процесс загружает собственный движок и базу.
Демон clamd для этого примера не нужен. У него другой сценарий работы, а открывать его TCP-сокет в интернет нельзя.
2. Проверьте обновление сигнатур
systemctl status clamav-freshclam --no-pager
sudo journalctl -u clamav-freshclam -n 30 --no-pager
После установки дождитесь успешной первоначальной загрузки баз. Если служба работает, не запускайте параллельно второй freshclam: можно получить конфликт блокировки журнала или базы.
Для ручного обновления сначала остановите именно службу обновления, выполните команду, затем обязательно верните её запуск, даже если загрузка не удалась:
sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam
При ошибках CDN соблюдайте указанный интервал повторной попытки. Не устраивайте частые циклы загрузки и не отключайте проверку сертификатов.
3. Проверьте конкретный каталог
Замените путь примером своего каталога с загрузками. Убедитесь, что он существует и учётная запись имеет право читать файлы. Начните без sudo; повышение прав требуется только для обоснованного доступа.
clamscan --recursive --infected /srv/example/uploads
printf "Exit code: %s\n" "$?"
Код 0 означает отсутствие обнаружений в рамках выполненной проверки, 1 — найденные угрозы, 2 — ошибку. Читать нужно не только код, но и итог: сколько файлов проверено и какие пропущены. Отсутствие обнаружений не является доказательством полной чистоты сервера.
4. Разберите обнаружение
Не добавляйте --remove к первому запуску. Сохраните путь, имя сигнатуры и контекст загрузки, ограничьте доступ к подозрительному объекту согласованным способом. Возможны ложные срабатывания; удаление рабочего файла может нарушить сайт.
Для больших архивов и файлов действуют ограничения движка. Увеличение лимитов без оценки памяти способно перегрузить VPS. Не сканируйте /proc, /sys и весь корневой каталог только потому, что инструкция не указала область проверки.
Завершение и повторные проверки
Проверьте, что обновление сигнатур снова работает. При добавлении расписания ограничьте область и не допускайте пересечения запусков. Резервные копии и контроль обновлений приложения остаются обязательными независимо от результата ClamAV.