# # проверка TXT записи домена отправителя # # NO - не проводить проверку # REJECT - возврата клиенту кода 5xx # DEFER - возврата клиенту кода 451 # WARN - вывод в лог файл предупреждения # GREYLIST:XX - добавить XX баллов к счетчику опционального грейлистинга # QUARANTINE - принять письмо с сохранением в карантин без доставки получателям # REJECT:XX - добавить XX баллов к счетчику опционального reject'а # DELAY:XX - задержка XX секунд перед ответом на RCPT TO # define(`confCHECK_ACCESS_MAIL_DOMAIN_TXT', `NO')# # # черный список TXT записей доменов отправителей находятся в файле CONFDIR/access-mail-domain-txt # в виде: # txt_record : действие : сообщение # # в качестве "действия" могут выступать: # 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 # submit_mysql - занесение записи о хосте в базу MySQL # submit_sqlite - занесение записи о хосте в базу SQLite # submit_rbl - занесение записи о хосте в DNSBL # # если в файле CONFDIR/access-mail-domain-txt будет отсутствовать поле "действие", # то будет выполнено действие по умолчанию из переменно confCHECK_ACCESS_MAIL_DOMAIN_TXT # поле "сообщение" может отсутствовать # # пример: # \N^v=spf.*/2\s\-all$\N : deny : Access denied : Suspicious SPF record "$acl_m_key" # \N^v=spf1.*\+all$\N : greylist=10 : Suspicious default SPF policy # # \N^v=spf.*/2\s\-all$\N : deny : Access denied : Suspicious SPF record "$acl_m_key" # \N^v=spf.*/1\b\N : deny : Access denied : Suspicious SPF record "$acl_m_key" # \N^v=spf((.+?/\d\s){2}|.+/[1-6]\s)\N : deny : Access denied : Suspicious SPF record "$acl_m_key" # # \N^v=spf1.*\+all$\N : warn pause=20 greylist=10 reject=4 : Suspicious default SPF policy # ## ${if ## and{ ## {!eq{$acl_m_sender_host_address_country}{}} ## {match{$acl_m_sender_host_address_country}{\N^(BR|CL|CN|HK|ID|IN|KR|PE|SA|VN)$\N}} ## {match{$sender_address_domain}{\N^([^\.]+\.){2,}ru$\N}} ## } ## {warn reject : Access denied : Message from $acl_m_sender_host_address_country with strange network number in SPF record "$acl_m_key" of sender adress domain $sender_address_domain (subdomain of russian domain)} ## {warn pause=20 greylist=10 reject=8 : Access denied : Strange network number in SPF record "$acl_m_key" (sender address domain: $sender_address_domain${if eq{$acl_m_sender_host_address_country}{}{}{, sender host address country: $acl_m_sender_host_address_country}})} ## } #\N^v=spf1\x20ip4\x3A\d+\.\d+\.0\.1\/16\x20-all$\N : ${if and{{!eq{$acl_m_sender_host_address_country}{}}{match{$acl_m_sender_host_address_country}{\N^(BR|CL|CN|HK|ID|IN|KR|PE|SA|VN)$\N}}{match{$sender_address_domain}{\N^([^\.]+\.){2,}ru$\N}}}{warn reject : Access denied : Message from $acl_m_sender_host_address_country with strange network number in SPF record "$acl_m_key" of sender adress domain $sender_address_domain (subdomain of russian domain)}{warn pause=20 greylist=10 reject=8 : Access denied : Strange network number in SPF record "$acl_m_key" (sender address domain: $sender_address_domain${if eq{$acl_m_sender_host_address_country}{}{}{, sender host address country: $acl_m_sender_host_address_country}})}} #