@ Карта сайта News Автора!

Bog BOS: Clam Anti Virus (ClamAV) и MTA Exim

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL

Последнее изменение файла: 2009.10.29
Скопировано с www.bog.pp.ru: 2024.11.23

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.

Установка в RH9/CentOS4/CentOS5

Установка 0.88.4/0.90.2/0.91.2/0.92/0.93/0.94/0.94.1 из пакетов репозитария dag (запасной источник, запасной источник): clamav, clamd и clamav-db:

Для самостоятельной сборки требуются пакеты zlib, zlib-devel, bzip2, bzip2-devel, gmp, gmp-devel (GNU MP 3, используется для проверки цифровой подписи).

Настройка обновлений

Обновление БД сигнатур производится утилитой freshclam. Параметры задаются в файле /etc/freshclam.conf. Каждый параметр описывается на отдельной строке в формате 'имя значение', регистр важен. Типы данных: строка без пробелов, число, размер (можно использовать модификаторы K и M), булевское значение (yes/no или true/false или 1/0). Строки, начинающиеся с '#', являются комментариями. Параметры:

Ключи утилиты freshclam:

Для автоматического запуска при загрузке можно добавить в /etc/rc.d/rc.local:

/usr/bin/freshclam --daemon [--no-dns]

Если в организации используется множество сканеров clamav, то рекомендуется использовать свой прокси для обновления БД сигнатур.

Сканирование файловой системы

Утилита clamscan позволяет проверять наличие вирусов в указанном каталоге (или файле или со стандартного ввода). Ключи:

Например (приведённые исключения необходимы обязательно!):

clamscan -r --infected --detect-broken --block-encrypted --max-space=199M --max-files=5000 \
    --block-max --tar=/bin/tar --tgz=/bin/tar --log=clamav.`date +%Y%m%d%H%M%S`.log \
    --exclude-dir=/dev --exclude-dir=/net --exclude-dir=/proc --exclude-dir=/.automount \
    --exclude-dir=/tmp /

clamscan проверяет архивы и почтовые ящики до первого вируса. Чтобы узнать в каком конкретном файле (почтовом сообщении) обнаружен вирус и нет ли там ещё вирусов, необходимо распаковать архив или почтовый ящик вручную (mbox2maildir).

Демон clamd

Запуск демона clamd позволяет использовать один процесс (многопоточный) для сканирования получаемой почты, вместо запуска отдельного процесса clamscan на каждое письмо. clamd принимает следующие команды на TCP или UNIX сокете (имя команды может предваряться символом 'n' (0.94) или 'z' (0.95) для уточнения терминатора строки - '\n' или '\0' соответственно):

Обработка сигналов:

Файл настройки - /etc/clamd.conf (задаётся ключом -c или --config-file=). Каждый параметр описывается на отдельной строке в формате 'имя значение', регистр важен. Типы данных: строка без пробелов, число, размер (можно использовать модификаторы K и M), булевское значение (yes/no или true/false или 1/0). Строки, начинающиеся с '#', являются комментариями. Параметры:

В пакет clamd входит скрипт /etc/rc.d/init.d/clamd для запуска демона:

service clamd start
chkconfig --level 345 clamd on

Утилита для тестирования clamdscan (можно тестировать и вручную). Воспринимает те же самые ключи, что и clamscan, но передаёт задание демону clamd, т.е.

Утилита работы с БД sigtool

Предназначена, в основном, для разработчиков и отладки. Ключи:

Использование clamav из exim (не старше 4.50)

Необходим 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

Увеличить очереди и т.п.:

MaxConnectionQueueLength 150
StreamMaxLength 60M
ArchiveMaxFileSize 60M
ArchiveMaxFiles 5000
MaxThreads 150
ReadTimeout 300

Добавить жёсткости:

DetectBrokenExecutables
ScanMail
ScanRAR
ArchiveBlockEncrypted # ?
ArchiveBlockMax

Обеспечить права доступа к /var/run/clamav только для clamav и exim.

Обеспечить запуск clamd при загрузке и запустить пока вручную.

Добавить в exim/configure (тексты и опции malware по вкусу, по умолчанию делается reject на все письма с вирусами):

acl_smtp_data = check_data
av_scanner = clamd:/var/run/clamav/clamd.sock
...
check_data:
  deny message = Virus found ($malware_name)
       malware = *

Отличия версий

От версии 0.94.2 к 0.95 (23 марта 2009):

От версии 0.94.1 к 0.94.2 (27 ноября 2008):

От версии 0.94 к 0.94.1 (3 ноября 2008):

От версии 0.93 к 0.94 (1 сентября 2008):

От версии 0.92 к 0.93 (14 апреля 2008):

От версии 0.91 к 0.92 (13 декабря 2007):

От версии 0.90 к 0.91:

От версии 0.88 к 0.90:

Ссылки

@ Карта сайта News Автора!

Bog BOS: Clam Anti Virus (ClamAV) и MTA Exim

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru