check_client_access 和 RBL

check_client_access 和 RBL

为了更好地打击垃圾邮件,我对 Postfix 进行了如下配置:

smtpd_client_restrictions =

    check_client_access hash:/etc/postfix/client_whitelist
    reject_unknown_client

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_sender_domain,
    reject_unknown_recipient_domain,
    reject_unauth_destination,
    reject_unauth_pipelining,
    reject_invalid_hostname,
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client l2.apews.org,
    permit

此配置减少了大量垃圾邮件,并且借助白名单,我能够处理一些配置错误但合法的服务器,以便接受它们。但是,我想知道如果其他一些合法服务器发现自己被列入这些 RBL 之一的黑名单,这个特定的白名单配置是否能够完成这项工作。我遗漏了什么吗?

答案1

如果“无辜”邮件服务器位于您配置的 RBL 之一中但不在您的白名单中,则该电子邮件将被丢弃。

如果你想保护自己免受这种情况的影响,你需要转向 RBL得分而不是直接的 RBL阻塞. 一个好方法是使用策略权重评分守护进程。它将集成到 Postfix 中,工作方式如下:

  1. 从现在开始,您可以在 policyd-weight 中配置您的 RBL,您可以在其中为每个 RBL 单独分配“命中”和“未命中”分数(因此,使用负分,您甚至可以使用白名单 RBL)。

  2. 示例:rbl1.example.org:得分 3.5,rbl2.foo.org:得分 4。阻止所需的最低分数:6

  3. 现在,如果某个 IP 在 rbl2.foo.org 中列出但未在 rbl1.example.org 中列出,则不会因为未达到所需的最低分数 6 而被拒绝。

此解决方案还可以保护您免受死亡 RBL。如果它们“死亡”,RBL 通常会用127.0.0.2“列出”来回答所有查询,以引起您的注意。但是,除非您检测到该错误,否则许多合法电子邮件将会丢失。

答案2

您还可以尝试使用 postfix 的permit_dnswl_client指令(如果您使用的是 postfix 2.8+),例如这是我在配置中使用的指令:

permit_dnswl_client 列表.dnswl.org

我在我的配置中使用了几个 RBL,但有些更激进,列出了来自网络邮件提供商(例如 AOL、gmail、yahoo)的 IP,因此我在 RBL 之前定义的白名单允许这些 IP 通过。

相关内容