我遇到了新配置的邮件服务器的问题,其中来自本地域的欺骗性垃圾邮件实际上已被邮件服务器接受,邮件未按原样传送,spamassassin将其标记为垃圾邮件然后发送电子邮件“Undelivered Mail Return to Sender”给欺骗的本地用户。
我知道有一种方法可以在配置中解决这个问题,但我不知道在哪里,我希望有人可以指出我正确的方向。
要明确的是,邮件服务器不会中继,这只是本地用户问题。 我希望postfix拒绝来自本地用户的任何内部未发送的电子邮件。它会阻止这个问题。
这是一封电子邮件,向您展示发生了什么。我已将域名更改为example.com.au。
###############################################
###############################################
这是主机example.com.au上的邮件系统。
很抱歉,必须通知您,您的信息无法发送 交付给一个或多个收件人。它附在下面。
如需进一步帮助,请发邮件给邮政局长
如果您这样做,请包含此问题报告。你可以
从附加的返回消息中删除您自己的文本
邮件系统
:主机127.0.0.1 [127.0.0.1]说:554 5.7.0拒绝,id = 11887-07 - 垃圾邮件(回复DATA命令结束)
?
报告 - MTA:DNS; example.com.au
X-Postfix-Queue-ID:661DC5D1DE
X-Postfix-Sender:rfc822; dan@example.com.au
抵达日期:2009年5月5日星期二06:21:38 +1000(EST)
最终收件人:rfc822; dan@example.com.au
原始收件人:RFC822; dan@example.com.au
行动:失败状态:5.7.0
远程MTA:dns; 127.0.0.1
诊断代码:smtp; 554 5.7.0拒绝,id = 11887-07 - 垃圾邮件?
来自:Berenice Penez
日期:星期一,4
2009年5月22:21:41 +0200
致:主题:论坛上是你吗?
质量可靠,无延迟 交货!超级网上商店为 疾病治疗 http://www.xopfekec.cn/
Postfix main.cf(重要部分,未完成)
readme_directory = / usr / share / doc / postfix
mydomain_fallback = localhost
message_size_limit = 0
mailbox_size_limit = 0
myhostname = example.com.au
mailbox_transport = cyrus
mydomain = example.com.au
inet_interfaces =全部
enable_server_options =是
mydestination = $ myhostname,localhost。$ mydomain,localhost,example.com.au
smtpd_sasl_auth_enable =是
smtpd_use_pw_server =是
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination,reject_unknown_recipient_domain,reject_unknown_sender_domain,reject_invalid_hostname
smtpd_pw_server_security_options = plain,login
content_filter = smtp-amavis:[127.0.0.1]:10024
mynetworks = 127.0.0.0/8,10.0.1.0/24
smtpd_client_restrictions = permit_sasl_authenticated,reject_rbl_client dnsbl.sorbs.net
答案 0 :(得分:2)
几点不同:
这应该在serverfault.com上,但由于我没有参加测试,我会在这里回答。
postconf -n 的输出优于包含您认为main.cf中相关行的内容。如果您有参数覆盖或其他自定义,还包括master.cf中的相关行。
不要接受那样的反弹邮件。如果您在Postfix中使用SpamAssassin作为队列后过滤器(通常的运行方式),则需要标记并传递(并使用客户端规则进行过滤)或隔离邮件而不通知发件人。从你的问题看,你可能是一个反向散射源。停下来。请参阅示例http://www.postfix.org/BACKSCATTER_README.html。请考虑使用amavisd-new将SpamAssassin集成到Postfix中,并提供各种有用的功能。
考虑将所有限制合并到smtpd_recipient_restrictions中。管理线性限制流通常比处理smtpd_ {客户端,helo,发件人,收件人} _restrictions之间的交互更容易。
要防止Postfix接收来自外部的邮件,请添加一个sender_access地图,拒绝声称来自您的域的邮件:
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_sender_access hash:$config_directory/reject_mydomains reject_unknown_recipient_domain, reject_unknown_sender_domain, reject_invalid_hostname
在reject_mydomains
中example.com.au REJECT you are not me
对于来自发件人的邮件可能容易出现误报,这些邮件具有合法(?)理由使用您的域名作为信封发件人(电子贺卡,邀请函,可能是某些外包服务,如调查或诸如此类)。在您的sender_access地图返回OK或适当的限制类之前,您可以使用client_access地图将您不是我的规则列入白名单(请参阅http://www.postfix.org/RESTRICTION_CLASS_README.html)。
您可以使用类似的HELO检查来清除客户端使用您自己的主机名/ IP或已知的坏HELO字符串进行清除
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_helo_access hash:$config_directory/helo_checks check_sender_access hash:$config_directory/reject_mydomains reject_unknown_recipient_domain, reject_unknown_sender_domain, reject_invalid_hostname
和helo_checks:
example.com.au REJECT BAD-HELO you are not example.com.au mailserver.example.com.au REJECT BAD-HELO you are not me localhost REJECT BAD-HELO you are not me localhost.localdomain REJECT BAD-HELO you are not me # where 1.2.3.4 is the IP of your server 1.2.3.4 REJECT BAD-HELO you are not me 127.0.0.1 REJECT BAD-HELO you are not me
最后,订阅一个良好的声誉服务(如RBL)是一个非常好的主意。大多数用途的最佳RBL是zen.spamhaus.org。它可以免费用于轻载到中等载荷,如果你的使用量足以超过它们的免费/付费门槛,那么成本是值得的。要在Postfix中配置,请添加
reject_rbl_client zen.spamhaus.org
到你的smtpd_recipient_restrictions。在廉价的本地检查之后执行此操作以节省DNS查询负载和延迟,但是在使用reject_unverified_recipient之类的昂贵的本地检查之前(您没有使用那个并且可能在您的问题描述中不需要它)。