Victor Ustugov wrote:
> приветствую
>> фильтрация по A и MX записям домена отправителя есть.
>> давненько уже надо было прикрутить фильтрацию по TXT записям домена
> отправителя.
>> пока единственным применением такому фильтру может служить фильтрация по
> SPF записям домена отправителя для случаев сильно хитроизогнутых
> товарищей, которые прописывают в SPF записях несколько сетей с маской 2
> бита, покрывая таким образом все адресное пространство.
>> это еще в июне обсуждалось в русскоязычном exim-users:
>http://mailground.net/pipermail/exim-users/2010-June/000065.html>> и хотя SPF записи всех доменов, упомянутых в том треде, уже
> перенастроены, хочется иметь механизм фильтрации писем от них, не
> вписывая регулярные выражения прямо в конфигурационный файл exim'а.
>> т. о. по образу и подобию механизмов confCHECK_MAIL_DOMAIN_A и
> confCHECK_MAIL_DOMAIN_MX был создан механизм проверки TXT записей.
т. к. SPF записи могут быть опубликованы не только в виде TXT записей,
но в виде собственно записей типа SPF (bind поддерживает такие записи с
версии 9.4), показалось целесообразным сделать фильтр и по именно SPF
записям доменов отправителей
> для включения механизма используется переменная confCHECK_MAIL_DOMAIN_TXT
для включения механизма проверки синтаксиса SPF записей используется
переменная confCHECK_MAIL_DOMAIN_SPF
> список возможных значений традиционный:
> NO - не проводить проверку
> REJECT - возврата клиенту кода 5xx
> DEFER - возврата клиенту кода 451
> WARN - вывод в лог файл предупреждения
> GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга
> QUARANTINE - принять письмо с сохранением в карантин без доставки
> получателям
> REJECT:XX - добавить XX баллов к счетчику опционального reject'а
> DELAY:XX - задержка XX секунд перед ответом на RCPT TO
список возможных значений confCHECK_MAIL_DOMAIN_SPF такой же, как и у
confCHECK_MAIL_DOMAIN_TXT
> черный список TXT записей доменов отправителей находятся в файле
> CONFDIR/access-mail-domain-txt в виде:
> txt_record : действие : сообщение SMTP клиенту : сообщение в лог файл
>> в качестве "действия" могут выступать:
> ok - принимать сообщения
> warn - выдача предупреждения в лог файл и добавление в
> заголовки сообщения в поле X-Warn-Mail-TXT, текст
> сообщения об ошибке может быть указан через
> двоеточие
> deny или reject - отказ в приеме сообщения
> drop - отказ в приеме сообщения с обрывом соединения
> discard - прием письма без доставки получателю
> defer - возврат клиенту временной ошибки 4xx
> quarantine - принять письмо с сохранением в карантин без
> доставки получателям
> greylist:xx - добавление xx баллов к счетчику опционального
> greylisting'а
> greylisting:xx - синоним greylist:xx
> reject:yy - добавление yy баллов к счетчику опционального
> reject'а
> deny:yy - синоним reject:yy
> delay:zz - задержка на zz секунд перед продолжением
> обработки сообщения
> pause:zz - синоним delay:zz
список действий, которые можно указывать в файле
CONFDIR/access-mail-domain-spf такой же, как и для
CONFDIR/access-mail-domain-txt
> поля "сообщение SMTP клиенту" и "сообщение в лог файл" могут отсутствовать.
>> если в файле CONFDIR/access-mail-domain-txt будет отсутствовать и поле
> "действие", то будет выполнено действие по умолчанию из переменной
> confCHECK_MAIL_DOMAIN_TXT
>> пример:
>> \N^v=spf.*/2\s\-all$\N : deny : Access denied : Suspicious SPF record
> "$acl_m_key"
все тоже самое касается проверки SPF записей с помощью
confCHECK_MAIL_DOMAIN_SPF и файла данных CONFDIR/access-mail-domain-spf
теперь об отличиях.
в отличии от записей типа TXT dnsdb до сих пор не поддерживает записи
типа SPF, хотя в exim-dev об этом писали более года назад:
http://www.mail-archive.com/exim-dev@exim.org/msg02995.html
патч получился более чем скромный:
http://mta.org.ua/exim-4.69-conf/patches/exim-4.72-dnsdb-spf/patch-src::dnsdb-spf.patch
сегодня этот патч уже безусловно включен механизм сборки порта exim под
FreeBSD:
http://mta.org.ua/exim-4.69-conf/ports-freebsd/exim-4.72/
в ближайшие дни патч будет безусловно включен в механизмы сборок для
поддерживаемых версий Linux систем, BSD систем и Solaris/OpenSolaris.
бинарные пакеты для RedHat/CentOS/Fedora с наложенным патчем будут
выложены на http://mta.org.ua/updates/
для остальных системным бинарные пакеты нужно будет собрать самостоятельно.
еще раз упомяну - поддержка SPF записей реализована в bind 9.4 и выше.
так что тем, у кого bind более старый, нельзя использовать
confCHECK_MAIL_DOMAIN_SPF
при этом безусловное наложение патча patch-src::dnsdb-spf.patch ничему
не повредит. размер исполняемого файла практически не увеличивается при
этом, а добавленный тип записей просто не будет использоваться.
--
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