ClamAV: проверка файлов с сайта и почты и чего он не заменит
ClamAV это антивирусный движок с открытым кодом, который проверяет загрузки с сайта и вложения почты на вашем сервере. Разбираю схему с карантином, лимиты, обновление баз, уязвимости 2026 года и пилот с файлом EICAR. Отдельно о том, чего ClamAV не заменит.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
Подключить проверку файлов к сайту и почтеРезюме с формы «прикрепите файл»
На сайте есть форма с полем «прикрепите файл». Кандидаты шлют резюме, клиенты договоры и сканы, и всё падает в почту менеджеру или в папку на диске. Файл открывает тот, кто первым увидел уведомление, и защита зависит от антивируса на этом компьютере. Дешевле проверить файл на сервере, до того как он дошёл до людей. Платформу, где такая проверка встроена, я разбирал в статье про ClovaLink. Здесь речь о самом движке.
Что это за проект и что я проверил
Проверял 24.10.2026 по репозиторию и документации, сам ClamAV не запускал. Репозиторий Cisco-Talos/clamav: около 7,4 тысячи звёзд, не архивирован, последние слияния в main датированы 22 октября 2026. Лицензия GPL-2.0, текст в файле COPYING.txt. В README оговорено, что библиотека UnRAR лежит под собственной лицензией, несовместимой с GPLv2, поэтому она подгружается отдельно при запуске. Без неё ClamAV работает, но RAR не читает.
На странице загрузок стабильной значится 1.5.4, LTS это 1.4.6, файлы датированы 7 августа 2026. По политике поддержки ветка 1.4 получает критические исправления до 15 августа 2027, а базы сигнатур для неё отдаются до 15 августа 2028. Ветка 1.0 закрыта 28 ноября 2025, базы для неё отдаются до 28 ноября 2026. Версиям 0.105 и старше обновления блокируют. Пакет из дистрибутива может отставать от этих версий.
Режимы, память и обновление баз
clamscan загружает базу при каждом запуске, для потока загрузок это медленно. Демон clamd держит базу в памяти и слушает сокет, clamdscan это клиент к нему. Сайт и почта работают с демоном: команда INSTREAM передаёт файл по сокету кусками, путь на диске не нужен. TCP-трафик к clamd по документации не аутентифицируется, порт 3310 наружу не открывают, лучше unix-сокет. Проверка на лету (clamonacc, fanotify) есть только на Linux.
Память. Документация Docker-образа называет минимум 3 ГБ и рекомендует 4: загрузка баз занимает больше 1,2 ГБ, а перезагрузка может дойти до 2,4 ГБ. Образ clamav/clamav, базу кладут на том в /var/lib/clamav, тег берут версионный, например 1.4.
Базы скачивает freshclam с database.clamav.net, по образцу конфига 12 раз в сутки. По FAQ, ответ 429 означает лимит, и общие хостинги вроде AWS, Google Cloud, Oracle и Azure попадают под него чаще. Ответы 403 и 503 означают блокировку или устаревшую версию. Поддерживаются только freshclam и cvdupdate, curl и wget отклоняют. Если серверов несколько, поднимают свой зеркальный сервер на cvdupdate (Apache 2.0) и указывают его в PrivateMirror. Как база открывается из России, не проверял, уточняйте. Свои сигнатуры пишут в файлах .hdb (по хешу), .ndb и .ldb.
Схема для формы, почты и Nextcloud
Для сайта схема такая. Файл приходит в карантинную папку вне веб-корня под случайным именем. clamd отвечает OK или FOUND. Чистый файл переезжает в рабочее хранилище, зараженный остаётся в карантине, в журнал пишутся время, имя, размер, ответ и адрес отправителя, менеджеру уходит оповещение. Пока ответа нет, сотруднику файл не отдают. Из PHP или Node это сокет и протокол INSTREAM. Плагины для WordPress и обёртки для S3 я не проверял.
Почта. В Rspamd модуль antivirus с type clamav и servers на 127.0.0.1:3310 или сокет, вложения проверяются по частям (scan_mime_parts), метки CLAM_VIRUS, CLAM_VIRUS_ENCRYPTED и CLAM_VIRUS_MACRO. В Postfix ставят clamav-milter: OnInfected по умолчанию Quarantine (письмо уходит на hold), можно Reject, а его MaxFileSize не должен превышать StreamMaxLength. В Exim это av_scanner с clamd и условие malware в acl_smtp_data. У Nextcloud есть приложение Antivirus for files с режимом демона, лимит потока там по умолчанию 25 МиБ.
Что важно учесть
Лимиты. В образце clamd.conf: StreamMaxLength и MaxFileSize по 100 МБ, MaxScanSize 400 МБ, MaxScanTime 120 секунд, вложенность 17. Файл сверх лимита по умолчанию пропускается, поэтому включите AlertExceedsMax и решите, отклонять такое или отправлять на ручную проверку. Лимиты до гигабайта не поднимайте: уязвимость CVE-2025-20260 (разбор PDF, возможно выполнение кода, исправлена в 1.4.3 и 1.0.9) требовала лимитов от 1024 и 1025 МБ.
Зашифрованные архивы и макросы. AlertEncrypted и AlertOLE2Macros выключены по умолчанию. Архив с паролем движок не откроет, внутри он ничего не увидит. Для формы: просить прислать без пароля или проверять такие файлы вручную. Ложные срабатывания бывают, поэтому документация не советует автоудаление, держите карантин.
Сам сканер тоже мишень. В июле 2026 релизы 1.5.3 и 1.4.5 закрыли по семь CVE в разборе файлов, среди них CVE-2026-20213 (порча памяти в PE). В августе 1.5.4 закрыл ещё восемь (1.4.6 шесть), например CVE-2026-20337 в ZIP: отказ в обслуживании на версиях 1.5.0 до 1.5.3. Запускайте clamd отдельным пользователем, лучше в контейнере, и обновляйтесь сразу.
ClamAV сверяет файлы с сигнатурами и эвристиками, поведение программ на компьютерах он не отслеживает. Поэтому EDR (я писал про это в разборе вредоноса с нейросетями), обновления систем, права доступа и проверенные бэкапы остаются отдельными задачами. С паролями начинайте раньше, как в статье про менеджер паролей, а за журналами сервера следит Wazuh.
Что можно сделать уже сейчас
Чек-лист из семи пунктов:
- Версия не ниже 1.5.4 или 1.4.6.
- Сервер от 4 ГБ памяти, clamd под отдельным пользователем, сокет не наружу.
- freshclam работает, дату баз проверяйте командой VERSION у clamd.
- Карантинная папка вне веб-корня, случайные имена файлов.
- Лимиты размера, AlertExceedsMax, AlertEncrypted и правило для архивов с паролем.
- Журнал проверок и оповещение менеджеру.
- Раз в квартал тест EICAR и обновление версии.
Пилот на форме. EICAR придуман для проверки антивирусов: 68 байт, вирусного кода нет, скачивается с eicar.org. Прикрепите его к форме и убедитесь, что файл не дошёл до сотрудника, запись появилась в журнале и пришло оповещение. Повторите с версией внутри zip. Антивирус на вашем компьютере может удалить файл при скачивании, это нормально. Развернуть проверку под ваш сайт и почту могу в рамках услуги по кибербезопасности.
Частые вопросы
Нужен ли ClamAV, если у сотрудников стоят антивирусы?
Они закрывают разные места. Антивирус на компьютере видит файл у сотрудника, ClamAV проверяет его на входе.
Работает ли ClamAV на Windows?
В репозитории есть MSI и portable ZIP для Windows. Проверка на лету в документации описана только для Linux.
Хватит ли сервера на 2 ГБ памяти?
Документация образа называет минимум 3 ГБ. На 2 ГБ не проверял.
Коротко о главном
ClamAV под GPL-2.0 даёт малому бизнесу проверку загрузок и почты на своём сервере. Схема простая: карантин, clamd, перенос или отказ, журнал и оповещение. Ему нужны память, свежие базы и обновления версий.
Если хотите, чтобы я подключил проверку к форме на сайте и к почте и провёл пилот с EICAR, напишите мне в Telegram кодовое слово «СИГНАТУРЫ».
Ещё open-source для бизнеса
Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.
Что я делаю для бизнеса
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


