Postfix - SPF 通过后跳过 RBL 检查

Postfix - SPF 通过后跳过 RBL 检查

我已开始使用 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 列表的潜在用户,您需要问自己的最重要的问题是:我是否了解我计划使用的列表的列表标准?

然后,您需要做出一些选择/决定:

  1. 您希望多积极地阻止垃圾邮件?
  2. 您是否想信任 SORBS 管理员以及测试脚本?
  3. 您是否信任 SORBS 管理员用来识别配置错误的主机的脚本?

该列表dnsbl.sorbs.net是一个聚合区域,包含除 spam.dnsbl.sorbs.net 之外的所有 SORBS 区域。这意味着您的设置在阻止垃圾邮件方面非常积极,即您可能会像已经遇到的那样出现误报。

虽然确实如此(来自Postfix 配置参数smtpd_recipient_restrictions

限制按照指定的顺序应用;第一个匹配的限制获胜。

唯一check_policy_service的原因就是向指定的策略服务器发送查询,而不是直接rejectpermit。然后,您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

相关内容