Коллеги, доброго дня.% name -r
11.3-RELEASE-p3
% pkg info | grep postfix-3
postfix-3.3.1_1,1 Secure alternative to widely-used Sendmail
На мой почтовый сервер приходят письма от аутентифицированного пользователя с пустым обратным адресом и получателем несуществующего почтового домена. В результате, в очереди скапливается огромное число писем и доставить их не представляется возможным.
Адрес отправителя проверяется на существование в базе данных(chksender),а затем на соответствие адреса и логина(reject_authenticated_sender_login_mismatch). Проблема в том, что MAIL FROM пустой и эти проверки не работают(smtpd_sender_login_maps), нельзя сформировать запрос к БД (saslsendercheck_query_filter), %s - это адрес отправителя
smtpd_sender_restrictions =
permit_mynetworks,
reject_non_fqdn_sender,
check_sender_access hash:$config_directory/db/check_sender_access.hash,
reject_authenticated_sender_login_mismatch,
reject_unknown_sender_domain
% cat db/check_sender_access.hash
mydomain.local chksender
…
<> reject_unknown_recipient_domain
smtpd_sender_login_maps = regexp:$config_directory/db/smtpd_sender_login_maps.regexp, ldap:saslsendercheck
saslsendercheck_query_filter = (&(objectClass=qmailUser)(|(mail=%s)(mailAlternateAddress=%s)))
saslsendercheck_result_attribute = uid, rfc822sender
Я должен принимать почту с пустым MAIL FROM, но я ?не обязан? это делать для несуществующего домена или с отсутствующей MX записью. В конец check_sender_access.hash я добавил «<> reject_unknown_recipient_domain».
reject_unknown_recipient_domain - Reject the request when Postfix is not final destination for the recipient domain, and the RCPT TO domain has 1) no DNS MX and no DNS A record or 2) a malformed MX record such as a record with a zero-length MX hostname
Т.е. идея следующая, если MAIL FROM не задан, домена получателя нет, mx отсуствует, то письма можно не получать — отбрасывать их. По логам ниже видно, что МХ не находит, но находит A запись и проверка благополучно заканчивается без ошибки. Почему, ведь «no DNS MX and no DNS A record »?
Sep 12 12:23:22 aid postfix/smtpd[80419]: generic_checks: name=permit_mynetworks status=0
Sep 12 12:23:22 aid postfix/smtpd[80419]: generic_checks: name=reject_non_fqdn_sender
Sep 12 12:23:22 aid postfix/smtpd[80419]: generic_checks: name=reject_non_fqdn_sender status=0
Sep 12 12:23:22 aid postfix/smtpd[80419]: generic_checks: name=check_sender_access
Sep 12 12:23:22 aid postfix/smtpd[80419]: check_access: <>
Sep 12 12:23:22 aid postfix/smtpd[80419]: maps_find: hash:/usr/local/etc/postfix/db/check_sender_access.hash: hash:/usr/local/etc/postfix/db/check_sender_access.hash(0,lock|fold_fix|utf8_request):
<> = reject_unknown_recipient_domain
Sep 12 12:23:22 aid postfix/smtpd[80419]: check_table_result: hash:/usr/local/etc/postfix/db/check_sender_access.hash reject_unknown_recipient_domain <>
Sep 12 12:23:22 aid postfix/smtpd[80419]: >>> START Sender address RESTRICTIONS <<<
Sep 12 12:23:22 aid postfix/smtpd[80419]: generic_checks: name=reject_unknown_recipient_domain
Sep 12 12:23:22 aid postfix/smtpd[80419]: reject_unknown_address: sender@lk.mydomain.local
Sep 12 12:23:22 aid postfix/smtpd[80419]: ctable_locate: leave existing entry key ?sender@lk.mydomain.local
Sep 12 12:23:22 aid postfix/smtpd[80419]: reject_unknown_mailhost: lk.mydomain.local
Sep 12 12:23:22 aid postfix/smtpd[80419]: lookup lk.mydomain.local type MX flags
Sep 12 12:23:22 aid postfix/smtpd[80419]: dns_query: lk.mydomain.local (MX): Host found but no data record of requested type
Sep 12 12:23:22 aid postfix/smtpd[80419]: lookup lk.mydomain.local type A flags
Sep 12 12:23:22 aid postfix/smtpd[80419]: dns_query: lk.mydomain.local (A): OK
Sep 12 12:23:22 aid postfix/smtpd[80419]: dns_query: reply len=130 ancount=1 nscount=2
Sep 12 12:23:22 aid postfix/smtpd[80419]: dns_get_answer: type A for lk.mydomain.local
Sep 12 12:23:22 aid postfix/smtpd[80419]: generic_checks: name=reject_unknown_recipient_domain status=0
Sep 12 12:23:22 aid postfix/smtpd[80419]: >>> END Sender address RESTRICTIONS <<<
Вопросы:
1. В принципе, как можно выйти из создавшейся ситуации?
2. Как отбросить почту аутентифицированного пользователя с пустым адресом отправителя и правильно ли это?
3. reject_unknown_recipient_domain должен проверять MX, но не делает. Почему?
Заранее благодарен за ответы.