[exim-conf] NEW ACL

Victor Ustugov victor на corvax.kiev.ua
Пн Янв 31 10:44:10 EET 2011


Vitalij Dz wrote:
> Привет Виктор!

привет

> Не мог бы ты добавить мой ACL в сборку ?
> 
> Выглядит примерно так:
> 
> deny    set acl_m0 = ${sg {${sg {${sg {$h_Received:}{\n([ \t])}{ } }} \
>        {.*?\N\[(?!10\.|127\.|172\.16\.|192\.168\.|195\.149\.96\.)\
>        ((\d+)\.(\d+)\.(\d+)\.(\d+))\]\N+} {\$1|} }} \
>        {([0-9.|]*).*} {\$1} }
>        log_message = $dnslist_value $dnslist_text
>        message = Sender $dnslist_text
>        dnslists = bl.spamcop.net/<|acl_m0 : \
>                blackholes.five-ten-sg.com/<|acl_m0
> 
> Что это делает я думаю объяснять нет необходимости.
> По возможности привести в более приемлемый вид.
> Вставляю я это перед check_message_id.

есть два варианта:

1. быстрый: я просто дам возможность включать в m4/configure.m4 свои
инкруды в предопределенные места. тогда можно будет включить этот acl в
том же виже, в котором он приведен выше.

2. долгий: сделать аналог конструкции DNS_BL для адресов из Received.

хотя идеологически с точки зрения целостности конфигуратора более
правильным является второй вариант, я склоняюсь к первому, т. к. я
специально в свое время выносил достаточно много фрагментов конфига, в
которых производилась работа с контентом (фильтр по полям Subject,
Organization, Content-Type и т. д.). ибо с моей точки зрения логичнее
проводить данные проверки средствами контент сканера, а не MTA.

если же рассматривать вариант использования инклудов, то нужно просто
согласовать их количество и места включения.

что касается данного конкретного случая, то я так понял, что устроит
включение инклуда в acl_check_data сразу после проверки письма антивирусами?

как тестовый вариант - я только что вставил в вышеуказанное место в
m4/configure.m4 следующую строку:

sinclude(confSITE_DIR`/configure.acl_smtp_data.m4')

т. о. можно тот acl из начала письма просто сохранить в файле
site/configure.acl_smtp_data.m4

стОит иметь ввиду, что текст файла будет интерпретирован как код для m4.
это чревато ограничениями использования в содержимом файла прямого и
обратного апострофа. в данном случае их нет в тексте acl, так что и
проблемы нет.

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

пример:
changequote([[, ]])

в конце файла нужно будет вернуть определие кавычек в исходное состоятие
комадной changequote без аргументов.

пример использования changequote можно посмотреть в нескольких файлах
конфигуратора:
http://mta.org.ua/exim-4.70-conf/m4/check.sh.m4
http://mta.org.ua/exim-4.70-conf/m4/fix.sh.m4


выбор подкаталога site обусловлен тем, что даный фрагмент конфига будет
актуален именно для данной системы.

выбор имени файла configure.acl_smtp_data.m4 обусловлен тем, что в
конфигураторе уже могут использоваться файлы configure.general и
configure.smtp_transport_options из подкаталога site.

также в следующей версии конфигуратора файлы site/retry_rules и
site/rewrite_rules будут переименованы в site/configure.retry_rules и
site/configure.rewrite_rules соответственно. разница лишь в том, что они
включаются в m4/configure.m4 безусловно, а
site/configure.acl_smtp_data.m4 будет включен в m4/configure.m4 только
если сам файл site/configure.acl_smtp_data.m4 будет существовать.

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

p. s. изменения в m4/configure.m4 я вносил для версии конфигуратора 4.70.

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




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