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.

Связанные инструкции

Официальные источники