![Postfix - SPF 通过后跳过 RBL 检查](https://linux22.com/image/701561/Postfix%20-%20SPF%20%E9%80%9A%E8%BF%87%E5%90%8E%E8%B7%B3%E8%BF%87%20RBL%20%E6%A3%80%E6%9F%A5.png)
我已开始使用 policyd-spf,并使用以下收件人限制。我希望通过 SPF 检查的发件人跳过任何 RBL 检查。不幸的是,这并没有发生。
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
check_policy_service unix:private/policy-spf
check_sender_access mysql:/etc/postfix/mysql_sender_checks.cf
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client dnsbl.sorbs.net
失败的 SPF 检查是正确的,但是正如您从系统日志中看到的那样 - policyd-spf 说它已通过,但继续进行 RBL 检查:
Mar 29 13:15:51 policyd-spf[6442]: Pass; identity=mailfrom; client-ip=69.171.232.144; helo=mx-out.facebook.com; envelope-from=REDACTED; receiver=REDACTED
Mar 29 13:15:51 postfix/smtpd[5971]: NOQUEUE: reject: RCPT from 69-171-232-144.outmail.facebook.com[69.171.232.144]: 554 5.7.1 Service unavailable; Client host [69.171.232.144] blocked using dnsbl.sorbs.net; Currently Sending Spam See: http://www.sorbs.net/lookup.shtml?69.171.232.144; from=<REDACTED> to=<REDACTED> proto=ESMTP helo=<mx-out.facebook.com>
是否有人熟悉 postfix-policyd-spf-python,如果熟悉,您能解释一下为什么它没有按预期工作吗?
使用:
Debian GNU/Linux 7
Linux XXXXX 3.2.0-4-amd64 #1 SMP Debian 3.2.82-1 x86_64 GNU/Linux
Postfix 2.9.6-2
postfix-policyd-spf-python 1.0.2
答案1
根据日志,该消息已被列表拒绝dnsbl.sorbs.net
。
正如在简介中所述使用 SORBS
作为 SORBS 列表的潜在用户,您需要问自己的最重要的问题是:我是否了解我计划使用的列表的列表标准?
然后,您需要做出一些选择/决定:
- 您希望多积极地阻止垃圾邮件?
- 您是否想信任 SORBS 管理员以及测试脚本?
- 您是否信任 SORBS 管理员用来识别配置错误的主机的脚本?
该列表dnsbl.sorbs.net
是一个聚合区域,包含除 spam.dnsbl.sorbs.net 之外的所有 SORBS 区域。这意味着您的设置在阻止垃圾邮件方面非常积极,即您可能会像已经遇到的那样出现误报。
虽然确实如此(来自Postfix 配置参数,smtpd_recipient_restrictions
)
限制按照指定的顺序应用;第一个匹配的限制获胜。
唯一check_policy_service
的原因就是向指定的策略服务器发送查询,而不是直接reject
或permit
。然后,您python-policyd-spf
可以返回,reject
否则PermError_reject = True
它只会添加Received-SPF
标头并继续处理限制。
你应该读一下使用 SORBS获得可用区域列表。然后,您可以决定哪些区域最适合您的需求,并分别添加它们,例如
smtpd_recipient_restrictions =
. . .
reject_rbl_client relays.dnsbl.sorbs.net,
reject_rbl_client web.dnsbl.sorbs.net,
reject_rbl_client escalations.dnsbl.sorbs.net,
reject_rbl_client block.dnsbl.sorbs.net,
reject_rbl_client zombie.dnsbl.sorbs.net,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client noserver.dnsbl.sorbs.net,
reject_rbl_client rhsbl.sorbs.net,
. . .
或者您可以换dnsbl.sorbs.net
到攻击性较低的聚合区域safe.dnsbl.sorbs.net
。