[exim-conf] пара небольших доработок в конфигураторе

Victor Ustugov victor на corvax.kiev.ua
Сб Ноя 20 19:24:08 EET 2010


приветствую

сегодня задался вопросом фильтрации "Золотых коллекций радиоспектаклей",
"Уникальных коллекций детских песенок", "Лучших психологических
тренингов и медитаций" и прочих еще до приема письма, т. е. обойтись в
этом случае без контент сканера.

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

vikamanceva на aqxeeles.ru
alexponamarev на aseriopoles.ru
iramitrofanova на awerynos.ru
viktorsemenov на awerynos.ru
olgavasina на bereopelos.ru
ninamarkova на broklinpole.ru
stepansokolov на broklinpole.ru
oleglygovoi на buyvolas.ru
alicevolkova на comrawer.ru
oksanaivanova на comrawer.ru
allafedorova на coperfilus.ru
verazvonareva на coperfilus.ru
rokotovam на coperfilus.ru
alenapotapova на crobapele.ru
romanpavlov на defezeder.ru
andreyplatonov на domoswery.ru
isaevalexey на domoswery.ru
mikenaumenko на domoswery.ru
platonnaumov на domoswery.ru
artur на eroposef.ru

часть этих доменов уже не существует.

у остальных характерный набор MX записей.
у каждого домена две MX записи с одинаковым приоритетом.
имя хоста одной из MX записей состоит из "mail" и названия домена, имя
хоста другой MX записи состоит из IP адреса из сети 195.2.252.0/24 и
названия домена.

пример:

# host -t mx domoswery.ru
domoswery.ru mail is handled by 1 195.2.252.124.domoswery.ru.
domoswery.ru mail is handled by 1 mail.domoswery.ru.

ничего полезного с других адресов вышеуказанных доменов не приходит.

но фильтровать всю сеть 195.2.252.0/24 не хотелось (слишком тривиально).

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

в качестве основы для решения задачи использован
acls/check_mail_domain_mx.m4

пришлось реализовать expand'инг результатов лукапа в
access-mail-domain-mx, а также переделать сортировку MX записей по
приоритетам средствами perl/sortmx.pl

после этого стало возможным в access-mail-domain-mx вписывать записи
примерно следующего содержания:

\N^195\.2\.252\.\d+(\.[^\.]+)+(\.[a-z]{2,6})$\N : ${if
match{$acl_m_key}{\N^195\.2\.252\.\d+\.\N$sender_address_domain}{deny :
Access denied : Suspicious MX record $acl_m_key}{warn pause=20
greylist=10 : Suspicious MX record $acl_m_key}}

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

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

значение $acl_m_key при этом равно аргументу поиска, т. е. в данном
случае имени хоста MX записи. значение $acl_m_key используется для
вывода имени хоста MX записи в лог файл exim'а, при добавлении поля
заголовка в письмо или в ответе SMTP клиенту.


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