приветствую
сегодня задался вопросом фильтрации "Золотых коллекций радиоспектаклей",
"Уникальных коллекций детских песенок", "Лучших психологических
тренингов и медитаций" и прочих еще до приема письма, т. е. обойтись в
этом случае без контент сканера.
из отстойника сделал выборку адресов отправителей таких писем:
vikamanceva на aqxeeles.rualexponamarev на aseriopoles.ruiramitrofanova на awerynos.ruviktorsemenov на awerynos.ruolgavasina на bereopelos.runinamarkova на broklinpole.rustepansokolov на broklinpole.ruoleglygovoi на buyvolas.rualicevolkova на comrawer.ruoksanaivanova на comrawer.ruallafedorova на coperfilus.ruverazvonareva на coperfilus.rurokotovam на coperfilus.rualenapotapova на crobapele.ruromanpavlov на defezeder.ruandreyplatonov на domoswery.ruisaevalexey на domoswery.rumikenaumenko на domoswery.ruplatonnaumov на domoswery.ruartur на 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