Postfix REJECT (not BOUNCE) 未知虛擬別名
我們使用虛擬別名映射並配置了 spamassassin,為多個託管域執行一個小型 postfix(和 dovecot)郵件伺服器。
最近很明顯,我們正在產生一些反向散射;垃圾郵件進入不存在的電子郵件地址,並被退回給偽造的發件人。就我們的郵件伺服器的聲譽而言,這顯然是一個問題,也意味著我們正在代表垃圾郵件發送者發送垃圾郵件。
然後我想做的是更改後綴行為,以便在 SMTP 事務期間拒絕郵件,而不是生成退回電子郵件表單 MAILER-DAEMON。
我嘗試添加 local_recipient_maps ( http://www.postfix.org/LOCAL_RECIPIENT_README.html ),但這沒有任何區別。我認為這是因為我正在使用 virtual_alias_maps(其他虛擬郵箱解決方案似乎也不適用於這裡)。
postconf -n 生成:
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 html_directory = no inet_interfaces = all inet_protocols = all local_recipient_maps = proxy:unix:passwd.byname $alias_maps mail_owner = postfix mail_spool_directory = /var/spool/mail mailbox_size_limit = 0 mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man message_size_limit = 0 mydestination = $myhostname, localhost.$mydomain, localhost mydomain = verrotech.com myhostname = mail.verrotech.com newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES sample_directory = /usr/share/doc/postfix-2.10.1/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/letsencrypt/live/mail.domain.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.domain.com/privkey.pem smtpd_tls_security_level = may unknown_local_recipient_reject_code = 550 virtual_alias_maps = hash:/etc/postfix/virtual
謝謝你。
經過一番研究,你的問題讓我意識到我的郵件伺服器也有同樣的問題,所以首先,thanx。
其次,您應該注意,預設情況下,postfix 會阻止這種流量。在手冊smtpd_reject_unlisted_recipient 中:
smtpd_reject_unlisted_recipient (預設:是)
請求 Postfix SMTP 伺服器拒絕未知收件人地址的郵件,即使沒有指定明確的 reject_unlisted_recipient 訪問限制。這可以防止 Postfix 隊列被無法投遞的 MAILER-DAEMON 消息填滿。
那麼,您為什麼要收到
250 OK
未知目的地的郵件?因為這些行:我的目的地 = $ myhostname, localhost. $ mydomain, localhost
virtual_alias_maps = hash:/etc/postfix/virtual
smtpd_reject_unlisted_recipient
檢查目標郵件,但非常具體:當一個地址匹配一個虛擬(5)別名或一個規範(5)映射時,它總是被認為是“已知的”。
The recipient domain matches $mydestination, $inet_interfaces or $proxy_interfaces, but the recipient is not listed in $local_recipient_maps, and $local_recipient_maps is not null. The recipient domain matches $virtual_alias_domains but the recipient is not listed in $virtual_alias_maps. The recipient domain matches $virtual_mailbox_domains but the recipient is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps is not null. The recipient domain matches $relay_domains but the recipient is not listed in $relay_recipient_maps, and $relay_recipient_maps is not null.
由於您
mydestination
不包括您的$mydomain
(僅伺服器名稱和本地主機)並且您沒有任何*_domains
地方,因此沒有其他檢查“已知”目的地。您只需要添加:
virtual_alias_domains = $mydomain
重新載入後綴。(如果我的配置正確並且您的所有郵件都採用“user@domain.com”的形式)
如果這不起作用,你可以試試這個:
smtpd_recipient_restrictions = permit_mynetworks、reject_unauth_destination、reject_unverified_recipient
注意:它將通過命令檢查傳入和傳出消息
RCPT TO
的目標是否確實存在。**請謹慎使用,**因為它會為每個新目的地建立一個額外的連接,並且需要一些時間來響應您的伺服器處理的每封郵件(測試每個目的地可能需要幾秒鐘)。