[exim-conf] multiple antivirus daemons and defer_ok

Victor Ustugov victor на corvax.kiev.ua
Ср Сен 22 16:18:32 EEST 2004


Victor Ustugov 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.

реализовал, провел серию небольших тестов. пока связка ведет себя хорошо

были использованы следующие параметры для site/conf:
ANTIVIRUS(`ClamAV', `QUARANTINE DISCARD', 
`clamd:/var/run/clamav/clamd.sock', `defer_next')
ANTIVIRUS(`DrWeb_remote', `QUARANTINE DISCARD', `drweb:10.0.0.7 3000', 
`defer_ok')
ANTIVIRUS(`DrWeb', `QUARANTINE REJECT', 
`drweb:/var/drweb/run/drwebd.socket', `')

в итоге был сгенерирован следующий фрагмент для configure:

acl_check_data:

         warn    set acl_c0      = clean

         warn    \
                 set acl_m0      = clamd:/var/run/clamav/clamd.sock
                 acl             = acl_check_data_av

     # Пометка зараженного письма для помещения в карантин
         warn    \
                 condition       = ${if eq{$acl_c0}{infected}{yes}{no}}
                 set acl_c0      = quarantine
                 message         = X-Virus: ClamAV found a virus: 
$malware_name
                 log_message     = ClamAV found a virus: $malware_name

         accept  condition       = ${if eq{$acl_c0}{quarantine}{yes}{no}}

     # Пометка зараженного письма для помещения в карантин
         warn    condition       = ${if eq{$acl_c0}{defer}{yes}{no}}
                 set acl_m0      = drweb:10.0.0.7 3000
                 demime          = *
                 malware         = */defer_ok
                 set acl_c0      = quarantine
                 message         = X-Virus: DrWeb_remote found a virus: 
$malware_name
                 log_message     = DrWeb_remote found a virus: $malware_name

         accept  condition       = ${if eq{$acl_c0}{quarantine}{yes}{no}}

         # Фиктивный отказ от приема зараженного писема с пометкой 
письма для помещения в карантин
         warn    \
                 set acl_m0      = drweb:/var/drweb/run/drwebd.socket
                 demime          = *
                 malware         = *
                 set acl_c0      = quarantine
                 message         = X-Virus: DrWeb found a virus: 
$malware_name
                 log_message     = DrWeb found a virus: $malware_name
                 control         = fakereject
                 fakereject_message = DrWeb found a virus: $malware_name

         accept  condition       = ${if eq{$acl_c0}{quarantine}{yes}{no}}

acl_check_data_av:
         warn    set acl_c0      = defer
         accept  ! malware       = *
                 set acl_c0      = clean
         warn    set acl_c0      = infected
         accept

второй антивирус используется только при defer'е при работе первого 
антивируса.
при defer'е при работе со вторым антивирусом проверка продолжается 
третьим антивирусом.
при defer'е при работе с третьим антивирусом exim возвращает defer клиенту.

welcome to test

p. s. повторюсь, что если в качестве удаленного антивируса будет 
использвоаться clamd, то нужно пересобрать exim с патчем:
http://bsd.falbi.kiev.ua/exim-patches/exiscan-acl-4.42-27-malware-clamd/patch-src::malware-clamd.patch

если кто-то потестит всю эту связку с удаленным clamd, буду очень благодарен

-- 
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