[exim-conf] оптимизация работы персональных карантинов

Victor Ustugov victor на corvax.kiev.ua
Вс Мар 22 00:11:00 EET 2015


Victor Ustugov wrote:

> реализованы два вариант исключений из доставки в общесистемный карантин
> отвергнутых писем, адресованных получателям из рилеемых доменов, при
> использовании персональных карантинов для получателей из локальных
> доменов при использовании значения `YES' переменной
> confCONTENT_SCANNING_QUARANTINE_RELAYED_REJECTED_MESSAGES:
> 
> 1. перечислить исключаемые адреса в файле
> recipients_no_personal_quarantine в виде адресов, масок или регулярных
> выражений
>
> 2. указать исключаемые адреса в файле access-rcpt с действием noquarantine
> в этом случае при использовании персональных карантинов при нормализации
> действий фильтров значение deny (и заменяемое им значение reject) не
> будут дополняться значением quarantine.

после нескольких дней эксплуатации внесены изменения.

адреса из recipients_no_personal_quarantine теперь не используются при
исключениях из дополнения действия deny (reject) при нормализации списка
действий фильтров при использовании персональных карантинов.

для этого необходимо использовать в явном виде действие noquarantine в
фильтре.

адреса же и recipients_no_personal_quarantine могут использоваться для
того, чтобы доставлять в общесистемный карантин письма, решение о
фильтрации которых принято на этапе приема конверта, при этом письма
адресованы получателям, не имеющим физических ящиков (например, письмо
через virt_aliases или virtusertable вливается
/usr/local/mailman/mail/mailman через STDIN), посему доставка в
персональный карантин не столько ненужна, сколько невозможна.

т. е. производится ровно то, что заложено в название файла
recipients_no_personal_quarantine - в нем перечисляются адреса
получателей, у которых не должно быть именно персональных карантинов.

в таком случае нужно самостоятельно где-то в районе
system_filter_quarantine_content_scaned использовать примерно такую
конструкцию:

ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `
if
	$h_X-Spam-Action: contains "quarantined"
	or not $acl_m_quarantined is ""
then
	if
		foranyaddress $recipients
("${lookup{$thisaddress}wildlsearch{confCONFDIR/recipients_no_personal_quarantine}{yes}{no}}"
is "yes") then
		seen save /dev/null
		finish
	endif
endif
')dnl ifelse_strstr(confCONTENT_SCANNING_QUARANTINE, `PERSONAL', `')


> первый вариант применим как для адресов из рилеемых доменов, так и для
> адресов из локальных доменов. например, адрес является алиасом для
> менеджера рассылок и т. д.
> 
> второй вариант пришлось сегодня применить на транзитном почтовом
> сервере, принимающем всю почту двух доменов и рилеющем ее на Microsoft
> Exchange 2013, который так и не удалось заставить проверять
> существование адресов получателей в Active Directory на этапе RCPT To.
> 
> в этом случае в access-rcpt можно добавить для каждого домена строку:
> 
> *@domain.tld : ${lookup ldapm{user=LDAP_USER pass=LDAP_PASS
> REFERRALS=nofollow
> ldap:///dc=ORG,dc=COUNTRY?sAMAccountName?sub?(&(objectClass=*)(proxyAddresses=smtp:${quote_ldap_dn:$local_part@$domain}))}{ok}{deny
> no
> quarantine : User unknown}}
> 
> 


-- 
Best wishes Victor Ustugov  mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:       http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614          JID: corvax_at_nb на jabber.corvax.kiev.ua
nic-handle: CRV-UANIC



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