check_client_access和RBL

为了更好地打击垃圾邮件,我已经像这样configuration了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 

这个configuration减less了大量的垃圾邮件,在白名单中,我能够处理一些错误configuration但合法的服务器,以便接受它们。 但是,我想知道如果这个特定的白名单configuration将能够做的工作,如果其他合法的服务器发现自己列入其中一个RBLs列入黑名单。 我错过了什么吗?

如果一个“无辜的”邮件服务器在您的一个configuration的RBL上,而不在您的白名单中,那么这个电子邮件将被丢弃。

如果你想保护自己,你需要转移到RBL 得分,而不是直接阻止 RBL。 一个好方法是使用policyd-weight计分守护进程。 它将被整合到Postfix中并以这种方式工作:

  1. 从现在开始,您可以在policyd-weight中configuration您的RBL,您可以分别为每个RBL分配“hit”和“non-hit”分数(因此负分可以使用白名单RBL)。

  2. 例如:rbl1.example.org:得分3.5,rbl2.foo.org:得分4.最小分数需要阻止:6

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

这个解决scheme还可以保护您免受死亡的RBL 。 如果他们“死”,RBL经常回答所有查询127.0.0.2这意味着“列出”为了引起你的注意。 但是,直到你发现这个错误,许多合法的电子邮件将会丢失。

你也可以尝试使用postfix的permit_dnswl_client指令(如果你使用的是postfix 2.8+),例如。 这是我在我的configuration中使用:

permit_dnswl_client list.dnswl.org

我在我的configuration中使用了几个RBL,但有些更积极,并列出来自networking邮件提供商(例如AOL,Gmail,雅虎)的IP,所以我在RBL之前定义的白名单允许这些IP通过。