[exim-conf] multiple antivirus daemons and defer_ok

Victor Ustugov victor на corvax.kiev.ua
Вт Сен 21 15:49:28 EEST 2004


Alex Miller wrote:

>> возникла идея отработать ситуацию, когда будут использоваться более 
>> одного антивируса одного типа.
>>
>> пример схемы, работающей ныне на большинстве хостов, использующих мой 
>> паровоз конфигов:
>>
>>         deny    set acl_m0      = clamd:/var/run/clamav/clamd
>>                 malware         = */defer_ok
>>                 message         = ClamAV found a virus: $malware_name
>>
>>         deny    set acl_m0      = drweb:/usr/local/drweb/run/drwebd.sock
>>                 malware         = *
>>                 message         = DrWeb found a virus: $malware_name
>>
>> так вот, если при этом clamd не ответит, а у drwebd в базе не будет 
>> данного вируса, то зараженное письмо будет доставлено.
>>
>> есть идея после первого deny вставить еще deny:
>>
>>         deny    set acl_m0      = clamd:host.with.clamd 3310
>>                 malware         = */defer_ok
>>                 message         = ClamAV found a virus: $malware_name
>>
>> задача состоит в том, чтобы выполнять этот deny только тогда, когда 
>> результатом первого deny будет defer.
>>
>> кому-то будет интересна такая схема?
>> или больше одного clamd ни у кого в сети нет?
> 
> Безусловно интересно! Причём можно было-бы держать clamav и clamav-devel 
> на разных машинах или на одной машине но с разными 
> конфигами/базами/etc...

я вчера ночью дома отработал вылавливание defer'а от антивируса
базировался я на письме из exim-users:
http://www.exim.org/mail-archives/exim-users/Week-of-Mon-20040913/msg00223.html
идея очень хорошая, чуть подрихтовав ее можно успешно использовать

но _до_ реализации дублирующих антивирусных демонов я решил изменить 
немного поведение существующих проверок.

дополнен список возможных значений действий при настройке работы с 
антивирусными демонами:

QUARANTINE	- вывод в лог файл предупреждения и помещение
		зараженного письма в карантин
DISCARD		- удаление зараженного письма
DROP		- синоним DISCARD
REJECT		- отказ в приеме зараженного письма (возврат клиенту
		кода 5xx)
WARN		- устаревшее значение, эквивалентно `QUARANTINE DISCARD'

значение QUARANTINE можно указывать вместе с DISCARD, DROP или REJECT, 
разделяя их пробелом.

для обеспечения работоспособности комбинации значений `QUARANTINE 
REJECT' используется конструкция fakereject, то необходимо использовать 
патч patch-src::reject_message:
http://bsd.falbi.kiev.ua/exim-patches/exiscan-acl-4.41-24-fakereject/patch-src::reject_message

сами антивирусные демоны настраиваются как и раньше:
http://www.mta.org.ua/pipermail/exim-conf/2004-August/000083.html

тестил пока я новый antivirus.m4 поверхностно. если кто пожелает 
поучавствовать - welcome.

кстати, тем, кто давно не обновлялся - необходимо выполнить gmake sync 
два раза, т. к. при выполнении первого sync обновится Makefile, в 
котором будет уже настроено обновление подкаталога hacks, в котором и 
расположен antivirus.m4

и еще - если ранее использовалось действие REJECT, а сейчас планируется 
использовать действие QUARANTINE, то нужно:

1. пересобирать не только gmake configure, а и системный фильтр (gmake 
system_filter или gmake all). это необходимо для того, чтобы системный 
фильтр был пересобран с механизмом сохранения зараженных писем в 
карантине без доставки пользователям. в противном случае зараженные 
письма будут помечаться, но при этом доставляться пользователям.

2. пересобрать скрипты для планировщика задач:
gmake periodic install-periodic
при этом будет пересобран и установлен скрипт удаления старых зараженных 
писем из карантина.
пользователям линукса предварительно нужно в site/conf изменить путь к 
файлам планировщика:
define(`confPERIODIC', `/etc/cron.daily')
значение по умолчанию этой переменной расчитано на работу в FreeBSD:
define(`confPERIODIC', `/usr/local/etc/periodic/daily')

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694      CRV2-RIPE, CRV-UANIC




Подробная информация о списке рассылки exim-conf