Victor Ustugov wrote:
>>>> кому-нибудь нужно отменять удаление проверяемых файлов из
>>>> /var/spool/exim/scan при DEFER'е от антивирусного демона?
>>>> это может пригодиться для последующих разборок с причинами DEFER'а.
>>>>>> Это ты по мотивам обсуждения no_mbox_unspool в exiscan-users?
>>> теперь придется все переписывать с учетом механизма вылавливания
>> DEFER'а, который использован при обработке defer_next.
>> переписал
>> теперь при использовании конструкции ANTIVIRUS для описания настроек
> антивирусов можно использовать в качестве значения четверного параметра
> строки defer_no_mbox_unspool
>> это значение можно использовать как одновременно с defer_ok или
> defer_next, так и самостоятельно. несколько значений могут быть указаны
> через пробел.
>> пример:
>> ANTIVIRUS(`ClamAV', `QUARANTINE REJECT', `clamd:/var/run/clamav/clamd',
> `defer_ok defer_no_mbox_unspool')
> ANTIVIRUS(`DrWeb', `QUARANTINE REJECT',
> `drweb:/usr/local/drweb/run/drwebd.sock', `defer_no_mbox_unspool')
>> ANTIVIRUS(`ClamAV', `QUARANTINE REJECT', `clamd:/var/run/clamav/clamd',
> `defer_next defer_no_mbox_unspool')
> ANTIVIRUS(`ClamAV_TCP', `QUARANTINE REJECT', `drweb:localhost 3310',
> `defer_ok defer_no_mbox_unspool')
> ANTIVIRUS(`DrWeb', `QUARANTINE REJECT',
> `drweb:/usr/local/drweb/run/drwebd.sock', `defer_no_mbox_unspool')
>> также реализована обработка DEFER'а от антивируса, если не был указан
> defer_ok. сообщение SMTP клиенту возвращается более внятное.
>> осталось оттестить все это тщательнее во всех позах
для тех, кто не юзает весь паровоз, вот пример настроек:
ANTIVIRUS(
`ClamAV',
`QUARANTINE REJECT',
`clamd:/var/run/clamav/clamd',
`defer_next defer_no_mbox_unspool'
)
ANTIVIRUS(
`Clamav_tcp',
`REJECT',
`clamd:10.0.0.30 3310',
`defer_ok defer_no_mbox_unspool'
)
ANTIVIRUS(
`DrWeb',
`QUARANTINE DISCARD',
`drweb:/usr/local/drweb/run/drwebd.sock',
`defer_next defer_no_mbox_unspool'
)
ANTIVIRUS(
`DrWeb_tcp',
`DISCARD',
`drweb:10.0.0.30 3000',
`defer_no_mbox_unspool'
)
пример сгенерированного конфига в аттаче.
так же там пример системного фильтра для сохранения письма в карантине и
отсылки оповещений, а также шаблон письма оповещения (в виде
multipart/report сообщения).
пример сгенерирован с использованием четырех антивирусов, чтобы отразить
в configure все варианты REJECT/DISCARD/QUARANTINE.
если надо отправлять оповещения не всем получателям, а делать исключения
(что логично), то для этого надо использовать не переменную $recipients,
а в acl_check_rcpt проверять перед каждым accept каждого получателя на
необходимость отсылки ему квитанции, если в acl_check_data будет принято
решение об этом. накапливается список таких получателей в $acl_m7.
как пример, я заменил фрагмент
accept hosts = :
accept hosts = +relay_from_hosts
accept authenticated = *
accept hosts = +relay_white_list
domains = +local_domains : +relay_to_domains
set acl_m9 = while_list_relayes
на фрагмент
warn set acl_m0 =
warn hosts = :
set acl_m0 = accept
warn hosts = +relay_from_hosts
set acl_m0 = accept
warn authenticated = *
set acl_m0 = accept
warn hosts = +relay_white_list
domains = +local_domains : +relay_to_domains
set acl_m9 = while_list_relayes
set acl_m0 = accept
warn condition = ${if eq{$acl_m0}{accept}{yes}{no}}
! recipients =
@@wildlsearch;CONFDIR/skip_avir_notify_rcpt
set acl_m7 = ${if\
eq{$acl_m7}{}\
{<$local_part@$domain>}\
{$acl_m7, <$local_part@$domain>}}
accept condition = ${if eq{$acl_m0}{accept}{yes}{no}}
перед остальными accept внутри acl_check_rcpt тоже нужно добавить
текущего получателя в $acl_m7
при этом исключения для отсылки оповещений указываются в файле
skip_avir_notify_rcpt в виде:
domain1: user1.1 : user1.2
domain2: user2.1 : user2.2 : !*
* : *
самая простая схема, это перечислить все локальные домены со значением
!*, а в конце запретить отсылку квитанций получателям из всех остальных
доменов:
local.domain.1 : !*
local.domain.2 : !*
local.domain.3 : !*
* : *
--
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
----------- следущая часть -----------
An embedded and charset-unspecified text was scrubbed...
Name: configure
URL: <http://mta.org.ua/pipermail/exim-conf/attachments/20040927/dceb27bf/attachment.ksh>
----------- следущая часть -----------
An embedded and charset-unspecified text was scrubbed...
Name: system_filter
URL: <http://mta.org.ua/pipermail/exim-conf/attachments/20040927/dceb27bf/attachment-0001.ksh>
----------- следущая часть -----------
An embedded and charset-unspecified text was scrubbed...
Name: antivir_notification.txt
URL: <http://mta.org.ua/pipermail/exim-conf/attachments/20040927/dceb27bf/attachment.txt>