LINUX.ORG.RU
ФорумAdmin

Postfix: чем бы досконально проверить валидность «To:»


0

1

Собственно, хотелось бы проверять «To» во-первых на синтаксическую корректность: если что не так, посылать отправителя бабочек ловить, а во-вторых - проверять всех получателей в поле To на предмет того, а есть ли они вообще в домене. Соответственно, даже если RCPT TO правильный был, а To указан через Ж, посылать отправителя на тот же самый хутор, но более вежливо, с уведомлением.
Есть ли какой-нибудь готовый content_filter для этого или нужно самому писать? SpamAssassin'у совершенно точно плевать даже на синтаксически некорретный To (впрочем, кто бы сомневался, что спамасс - говно), я уж не говорю о каких-то там проверках на корректность получателей.
Понятно, что парсер заголовков можно самому на Perl'е накропать, но... неужели ещё никто такого не сделал?

P.S. Каждое второе пропускаемое SpamAssassin'ом спамерское письмо содержит либо To с тупейшими ошибками, либо To:, где половина получателей просто не существует, словно по словарю подбирали, либо вообще и то, и другое. «Я фигею, дорогая редакция...»

★★★★★

Ответ на: комментарий от kernelpanic

Вопрос не о регэкспе, а о синтаксисе поля TO!
И самая главная часть вопроса - есть ли в каком-нибудь Amavis'е проверка на существование всех получателей!

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Пример некорректного To, который просто обожают особо тупые спамеры:
To: «IAmASpammer» <<etomu_nagadit@domain.ru>, <vdushu_nasrat@domain.ru>, ...>>
Понятно, что нужно такое посылать нах, особенно если, получателя vdushu_nasrat@domain.ru, к его счастью, в домене не существует.

DRVTiny ★★★★★
() автор топика

А теперь дружно вспоминаем в каком виде приходят письма со всяких мыллистов. Вы точно хотите их всех послать нахрен?

anonymous
()
Ответ на: комментарий от anonymous

Точно! Если приходят в некорректном виде, значит это какое-то уг, которое и в самом деле идёт нахрен.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Простые правила можно легко добавить в SA, типа проверки на 'IAmASpammer' и неправильный домён. Проверка на коррекнтность в SA есть, правило называется TO_MALFORMED.

mikki
()

Проверки на существование в домене есть, например LDAP:
smtpd_recipient_restrictions
.......
check_recipient_access ldap:ldaprcpt
.......


И конфига самого LDAP:
ldaprcpt_server_host = ldap.domain.ru
ldaprcpt_search_base = DC=domain,DC=ru
ldaprcpt_scope = sub
ldaprcpt_query_filter = (SomeAttribName=smtp:%u@domain.ru)
ldaprcpt_result_attribute = instanceType
ldaprcpt_bind_dn = CN=some_attr_value,OU=some_ou,DC=domain,DC=ru
ldaprcpt_bind_pw = somepasswd
ldaprcpt_debuglevel = 0
ldaprcpt_version = 3

q4x2
()
Ответ на: комментарий от q4x2

А последнее в переводе на русский язык выглядит так? :
ldaprcpt_query_filter = (&(mail=%u@domain.ru)(active=true))
ldaprcpt_result_attribute = mail
Для хранения mail'а логично и атрибут соответствующий использовать...

А ldaprcpt - это произвольно выбранный префикс?
То есть я могу написать:
check_recipient_access ldap:chkAccountPres

И потом:
chkAccountPres = ldap.domain.ru
...
???

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

А последнее в переводе на русский язык выглядит

Вот так:
Уж если ты хочешь обозвать «это» chkAccountPres, тогда опции будут выглядеть:
s/ldaprcpt/chkAccountPres/g
ldaprcpt_server_host = ldap.domain.ru
ldaprcpt_search_base = DC=domain,DC=ru
ldaprcpt_scope = sub
ldaprcpt_query_filter = (SomeAttribName=smtp:%u@domain.ru)
ldaprcpt_result_attribute = instanceType
ldaprcpt_bind_dn = CN=some_attr_value,OU=some_ou,DC=domain,DC=ru
ldaprcpt_bind_pw = somepasswd
ldaprcpt_debuglevel = 0
ldaprcpt_version = 3
То есть:
вместо ldaprcpt_server_host = ldap.domain.ru
будет chkAccountPres_server_host = ldap.domain.ru и так далее.

q4x2
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.