我们使用虚拟别名映射并配置了 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 中:
那么,您为什么要收到
250 OK
未知目的地的邮件?因为这些行:smtpd_reject_unlisted_recipient
检查目标邮件,但非常具体:由于您
mydestination
不包括您的$mydomain
(仅服务器名称和本地主机)并且您没有任何*_domains
地方,因此没有其他检查“已知”目的地。您只需要添加:
重新加载后缀。(如果我的配置正确并且您的所有邮件都采用“[email protected]”的形式)
如果这不起作用,你可以试试这个:
注意:它将通过命令检查传入和传出消息
RCPT TO
的目标是否确实存在。请谨慎使用,因为它会为每个新目的地建立额外的连接,并且需要一些时间来响应您的服务器处理的每封邮件(测试每个目的地可能需要几秒钟)。这个答案并不完全符合您的要求,但这就是我为自己的用例解决该问题的方式。
丢弃反弹:
在 /etc/postfix/main.cfg 中,我有:
在 /etc/postfix/aliases 中,我有:
然后我运行:
最终结果是退回到 /dev/null。它可能无法捕捉到所有这些,所以 YMMV。请让我知道这是否适合您。