收件人限制前的 Postfix 白名单

gru*_*ech 6 email postfix spam rbl

好吧。一些背景。我们有一个反垃圾邮件集群,每天处理大约 2-3 百万封电子邮件,拦截来自最终用户的 99% 的垃圾邮件。

底层 SMTP 服务器是 Postfix 2.2.10。下面附上邮件被运送到 SpamAssassin/ClamAV/ 等之前的“前线防御”。

...basic config....    
smtpd_recipient_restrictions =
            reject_unauth_destination,
            reject_rbl_client b.barracudacentral.org,
            reject_rbl_client cbl.abuseat.org,
            reject_rbl_client bl.mailspike.net,
            check_policy_service unix:postgrey/socket
...more basic config....
Run Code Online (Sandbox Code Playgroud)

如您所见,来自不同公司的标准 RBL 服务以及 Postgrey 服务。

问题是,我有一个客户(数千人中)对我们阻止了他们的重要电子邮件感到非常沮丧。它是通过俄罗斯的免费邮件发送的,他目前在我们的三个 RBL 服务器中的两个中被阻止。我向他们解释了情况,但他们坚持我们不会阻止他们的任何电子邮件。

所以我需要一种方法来将进入 domain.com 的任何电子邮件列入白名单,但是我需要它在任何收件人限制之前发生,他们根本不想要 RBL 或 postgrey 阻止。

我自己做了一些研究,http://www.howtoforge.com/how-to-whitelist-hosts-ip-addresses-in-postfix起初似乎是一个很好的指南,几乎解决了我的问题,但是我希望它接受基于 TO 地址,而不是原始服务器。

sol*_*ald 6

如果您根据RCPT TO地址进行处理,您将向此人发送垃圾邮件,因为它会禁用任何进一步的垃圾邮件检查。

您唯一的选择是使用check_sender_access.

smtpd_recipient_restrictions =
            check_client_access hash:/etc/postfix/access_sender
            reject_unauth_destination,
            reject_rbl_client b.barracudacentral.org,
            reject_rbl_client cbl.abuseat.org,
            reject_rbl_client bl.mailspike.net,
            check_policy_service unix:postgrey/socket
Run Code Online (Sandbox Code Playgroud)

像这样:

fromuser@domain.com      OK
domain.com               OK
fromuser@                OK
Run Code Online (Sandbox Code Playgroud)

postmap access_sender创建后不要忘记。

  • @solefald,您说“check_sender_access”,然后使用“check_client_access”。也许你想澄清一下。您可能还想澄清为什么将“check_sender_access”作为“smtpd_recipient_restrictions”而不是“smtpd_sender_restrictions” (9认同)
  • 不。它只会检查此特定域是否在其中。如果没有,它将继续执行其他规则。出于同样的原因,我只有 6 个完整的东西——只是为了让一个喜欢垃圾邮件的客户每天都能得到伟哥的修复:) (2认同)

归档时间:

查看次数:

18505 次

最近记录:

15 年,8 月 前