Последнее изменение файла: 2009.10.29
Скопировано с www.bog.pp.ru: 2023.10.01
Bog BOS: Clam Anti Virus (ClamAV) и MTA Exim
ClamAV предназначается для антивирусного сканирования на почтовом шлюзе (на лету) или
файловом сервере (есть модуль dazuko для проверки при обращении).
Автоматическое обновление БД через интернет (цифровая подпись и проверка версии по DNS).
Разделяемая библиотека для включения в свои программы.
GPL, летом 2007 года куплена компанией
Sourcefire,
которая осуществляет платную поддержку.
Умение распаковывать архивы (Zip, RAR 2.0, tar, gzip, bzip2, cab, chm и др.).
Состоит из утилиты автоматического обновления БД сигнатур freshclam,
утилиты сканирования файлов по запросу clamscan,
демона clamd (отпадает необходимость запускать процесс
на каждое письмо), интерфейс с exim.
Обновление БД сигнатур производится утилитой freshclam.
Параметры задаются в файле /etc/freshclam.conf. Каждый параметр описывается
на отдельной строке в формате 'имя значение', регистр важен. Типы данных:
строка без пробелов, число, размер (можно использовать модификаторы K и M),
булевское значение (yes/no или true/false или 1/0).
Строки, начинающиеся с '#', являются комментариями.
Параметры:
Example (если этот параметр, установлен, то freshclam не запускается)
--exclude=шаблон-исключений (можно использовать несколько раз)
--exclude-dir=шаблон-исключений
--include=шаблон (проверять только файлы, попадающие под шаблон;
можно использовать несколько раз)
--include-dir=шаблон (проверять только файлы, попадающие под шаблон)
--max-dir-recursion=15 (максимальный уровень вложенности каталогов)
специфические методы обработки
--no-mail (не сканировать почтовые сообщения)
--no-phishing-sigs (с версии 0.90)
--no-algorithmic (с версии 0.90; не использовать некоторые специфические алгоритмы)
--mail-follow-urls (загружать встреченные в почте URL и сканировать их;
не рекомендуется на нагруженном компьютере; не более FOLLOWURLS (5) ссылок в письме;
падает)
--no-pe (не пытаться разархивировать выполняемые файлы - UPX и др.)
--no-elf (с версии 0.90; не обрабатываеть файлы в формате ELF)
--no-ole2 (не обрабатывать файлы в формате Microsoft Office)
--no-html (не использовать специфические методы обработки HTML файлов)
--no-archive (не распаковывать архивы; внешние распаковщики продолжают работать)
--detect-broken (помечать нехорошие выполняемые файлы как вирусы Broken.Executable)
--block-encrypted (помечать зашифрованные архивы как вирусы Encrypted.Zip и т.п.)
--max-files=500 (извлекать из архива только первые файлы)
--max-space=10MB (извлекать из архива только первые файлы)
--max-recursion=8 (не залезать в архив архивов глубже указанного уровня)
--max-ratio=250 (максимальный уровень сжатия)
--max-mail-recursion=64 (с версии 0.90)
--max-dir-recursion=? (с версии 0.90)
--block-max (помечать требующие чрезмерных усилий архивы как вирусы RAR.ExceededFileSize
и т.д. - см. --max-files, --max-space, --max-recursion)
управление информационными сообщениями
--verbose
--no-summary (не выдавать итоговый отчёт)
--infected (сообщать только об обнаруженных вирусах)
--quiet (об обнаруженных вирусах также не сообщается!)
--bell (звенеть при обнаружении вируса; звенит даже при --quiet)
--debug
--log=имя-файла (файл дополняется)
--stdout
действия при обнаружении вирусов
--move=имя-каталога (перемещать инфицированные файлы в указанный каталог;
д.б. права на запись)
--copy=имя-каталога (копировать инфицированные файлы в указанный каталог;
д.б. права на запись)
clamscan проверяет архивы и почтовые ящики до первого вируса.
Чтобы узнать в каком конкретном файле (почтовом сообщении) обнаружен вирус и нет ли
там ещё вирусов, необходимо распаковать архив или почтовый ящик вручную (mbox2maildir).
Запуск демона clamd позволяет использовать один процесс (многопоточный)
для сканирования получаемой почты, вместо запуска отдельного процесса clamscan на
каждое письмо. clamd принимает следующие команды на TCP или UNIX сокете
(имя команды может предваряться символом 'n' (0.94) или 'z' (0.95) для уточнения
терминатора строки - '\n' или '\0' соответственно):
PING (должен ответить PONG)
VERSION (выводит версию программы и БД сигнатур)
RELOAD (перезагрузить БД сигнатур - до версии 0.95 при получении следующей команды,
с версии 0.95 - немедленно)
SHUTDOWN
SCAN имя-файла-или-каталога (рекурсивно с распаковкой архивов)
RAWSCAN имя-файла-или-каталога (рекурсивно без распаковки архивов)
CONTSCAN имя-файла-или-каталога (рекурсивно с распаковкой архивов и продолжением
проверки при нахождении вируса)
MULTISCAN имя-файла-или-каталога (с версии 0.90; рекурсивное сканирование
в несколько потоков)
STREAM (clamd возвращает номер порта, к которому можно присоединиться и послать
проверяемый поток, в версии 0.95 рекомендуется перейти на INSTREAM)
INSTREAM (данные посылаются в том же TCP соединении, с версии 0.95)
SESSION (начать TCP сессию, в которой можно послать несколько команд,
заменена на IDSESSION в 0.95)
IDSESSION (начать TCP сессию, в которой можно послать несколько команд,
асинхронный ответ)
END (завершение сессии)
FILDES (?)
STATS (выдать статистику, с версии 0.95)
Обработка сигналов:
SIGTERM (завершение работ)
SIGHUP (заново открыть журнал)
SIGUSR2 (перезагрузить БД сигнатур)
Файл настройки - /etc/clamd.conf (задаётся ключом -c или --config-file=).
Каждый параметр описывается
на отдельной строке в формате 'имя значение', регистр важен. Типы данных:
строка без пробелов, число, размер (можно использовать модификаторы K и M),
булевское значение (yes/no или true/false или 1/0).
Строки, начинающиеся с '#', являются комментариями.
Параметры:
Example (если этот параметр, установлен, то clamd не запускается)
управление журнализацией и отладкой
LogFile имя-файла
LogFileUnlock (disabled; не использовать системную блокировку файла)
LogFileMaxSize 1M
LogTime (disabled; записывать в журнал время)
LogClean (disabled; записывать в журнал незаражённые файлы)
LogVerbose (disabled)
LogSyslog (disabled; можно одновременно с записью в файл)
MailFollowURLs (disabled; загружать встреченные в почте URL и сканировать их;
не рекомендуется на нагруженном компьютере)
MailMaxRecursion 64 (с версии 0.90 по 0.92)
PhishingSignatures (yes; с версии 0.90)
PhishingScanURL (enabled; загружать встреченные в обманных письмах URL;
Phishing.Heuristic.Email.*; с версии 0.90)
PhishingAlwaysBlockSSLMismatch (disabled; считать "неправильные" SSL в URL
обманом, не заглядывая в антивирусную БД; с версии 0.90)
PhishingAlwaysBlockCloak (disabled; считать "заумные" URL
обманом, не заглядывая в антивирусную БД; с версии 0.90)
ScanArchive (enabled; распаковывать архивы)
ScanRAR (disabled! до версии 0.90)
DetectPUA (disabled; с версии 0.92)
ArchiveMaxFileSize 10M (извлекать из архива только первые файлы; по 0.92)
ArchiveMaxRecursion 8 (не залезать в архив архивов глубже указанного уровня;
по 0.92)
ArchiveMaxFiles 1000 (извлекать из архива только первые файлы; по 0.92))
ArchiveMaxCompressionRatio 250 (максимальный уровень сжатия; по 0.92))
ArchiveLimitMemoryUsage (disabled; использовать медленный вариант bunzip2)
ArchiveBlockEncrypted (disabled;
помечать зашифрованные архивы как вирусы Encrypted.Zip и т.п.)
ArchiveBlockMax (disabled; помечать требующие чрезмерных усилий архивы как вирусы;
по 0.92)
MaxScanSize 100M (максимальный сканируемый размер после разархивации; с 0.93)
MaxFileSize 25M (файлы большего размера до разархивации и после
не сканируются совсем; с 0.93)
MaxRecursion 16 (не залезать в архив архивов глубже указанного уровня; с 0.93)
MaxFiles 10000 (извлекать из архива только первые файлы; с 0.93)
реакция на события
VirusEvent команда (disabled; выполнять указанную команду при обнаружении вируса;
%v в теле команды заменяется на имя вируса)
SelfCheck 1800 (секунд; самопроверка и проверка обновлений БД сигнатур)
ExitOnOOM (disabled; завершаться при нехватке памяти)
управление потоками (см. команду STREAM)
StreamMaxLength 10M (максимальный размер задания)
StreamMinPort 1024 (минимальный номер порта для приёма потока)
StreamMaxPort 2048 (максимальный номер порта для приёма потока)
Clamuko* (управление модулем ядра dazuko - проверка файлов по обращению)
NodalCoreAcceleration no (поддержка аппаратного ускорителя)
В пакет clamd входит скрипт /etc/rc.d/init.d/clamd для запуска
демона:
service clamd start
chkconfig --level 345 clamd on
Утилита для тестирования clamdscan (можно тестировать и вручную).
Воспринимает те же самые ключи, что и clamscan, но передаёт задание демону clamd, т.е.
большинство параметров игнорируется (необходимо править /etc/clamd.conf)
сканируемые файлы должны быть доступны clamd
нельзя использовать внешние распаковщики
--verbose
--quiet
--stdout
--no-summary
--config-file=имя-файла
--log=имя-файла
--multiscan (с версии 0.90; использовать MULTISCAN)
Необходим exim версии не старше 4.50.
Предварительно необходимо установить и настроить freshclam,
опробовать clamscan. При настройке clamd.conf настроить журнализацию через syslog:
LogSyslog
LogFacility LOG_MAIL
Интерфейс clamav через UNIX сокет с правами для exim:
LocalSocket /var/run/clamav/clamd.sock
FixStaleSocket
#TCPSocket
User exim
AllowSupplementaryGroups
добавлена возможность использования Google Safe Browsing ("чёрный" список сайтов от Google)
полностью переписан clamav-milter (теперь обязательно требуется clamd),
ключи и интерфейс не совместимы со старой версией
расширен протокол обмена с clamd
удалена команда SESSION и реализована команда IDSESSION (асинхронная) - несовместимость
пересмотрен API (libclamav) - несовместимость
утилита clamdtop позволяет получить информацию о текущем состоянии clamd (ncurses)
переделано выделение памяти (общий mmap)
унифицированный обработчик ключей для всех программ (смена имён ключей!)
больше не требуется библиотека libgmp (используется встроенная или внешняя libtommath)
От версии 0.94.1 к 0.94.2 (27 ноября 2008):
опция configure --enable-mempool (полное освобождение памяти при обновлении БД сигнатур)
смена API
От версии 0.94 к 0.94.1 (3 ноября 2008):
freshclam отправляет статистику авторам программы (по умолчанию - выключено,
требуется LogTime и LogFile в clamd.conf)
От версии 0.93 к 0.94 (1 сентября 2008):
расширен язык описания шаблонов (логические операторы)
ключ --heuristic-scan-precedence и опция HeuristicScanPrecedence для управления проверки
на фишинг
деассемблер
ключи --exclude-pua и --include-pua, а также опциии ExcludePUA и IncludePUA
для управления загрузкой шаблонов проверки нежелательных приложений
(NetTool, PWTool, Spy, Scanner, RAT)
ключ --detect-structured и опция StructuredDataDetection для сканирования утечки
номеров кредитных карт и номеров социального обеспечения (USA)
IPv6
нормализация JavaScript перед сканированием
улучшение системы тестирования (QA and Unit Testing)