我最近设置了一个电子邮件服务器,并使用灰名单来处理垃圾邮件。灰名单的主要缺点是它会延迟您的电子邮件。不过我想到了一种加快速度的方法。如果主机 X 连接并想从[电子邮件保护]以及 example.com 的 MX 记录,那么就不要将其列入灰名单,而是立即让它通过。
这应该可以以正常方式防止垃圾邮件并消除某些主机的延迟,对吗?
有什么办法可以做到这一点,或者我错了?
我正在使用 Postfix 和 postgrey。
答案1
Postgrey 不支持该功能,但是没有什么可以阻止您创建或找到可以执行该操作的策略服务器。如果您的第一个策略服务器(我们称之为 dns-checker.sh)通过,则邮件将被投递。如果失败,Postfix 将按照 smtpd_recipient_restrictions 下的顺序继续进行下一个检查。
对于任何灰名单服务器,我建议将最大期限设置为 63 天,即两个整月加一天。我更喜欢延迟时间为 30 秒。无论延迟多长时间,延迟都往往是延迟,许多大型 Web 邮件服务器将在一分钟内重试,因此您的整体延迟非常低。您还需要使用 C 类作为元组的一部分,而不是应为默认值的特定 IP。如果转发了 x 封邮件,我还使用自动将域列入白名单,这相当宽松。使用这些设置,我很少遇到长时间延迟的问题。
Postfix 网站在该 URL 的策略服务器标题下列出了许多附加组件。http://www.postfix.org/addon.htmlsmtpd-policy-template 包看起来最有趣,因为它基本上是创建您自己的策略服务器的模板。当然,编写逻辑和实际代码仍然取决于您。:-)
答案2
您可以告诉 postgrey 不要将某些主机列入灰名单 ( /etc/postgrey/whitelist_clients
),或者您可以在 postgrey 策略检查之前放入一个访问列表,该列表列出(并接受)您的 MX。无论哪种方式对您来说更有意义。
答案3
我从未使用过 Postfix 和 postgre,但如果你能实现它,该理论应该可行。
我也在我们的邮件服务器上使用灰名单,并且已经使用了几年。它效果很好,最初可以阻止 95% 以上的垃圾邮件进入。因为我和你有同样的担忧,所以我只在下班后使用它,比如在下午 6:00 关闭它,然后在第二天早上 7:00 重新打开它。
答案4
垃圾邮件发送者正在迎头赶上,灰名单可能不再像以前那么有效。如果可以,请尝试使用一些 RBL,我发现它们更有效。YMMV。
据我所知,postgrey 无法确定远程服务器的 IP 是否与发件人域的 MX 记录的 IP 对应。其他一些工具可能更适合这项任务,请查看 postfix 的附加页面。
附带说明一下,无论你使用哪种技术,都可能存在缺点。RBL 可能会偶尔阻止一些合法邮件(尽管我发现对于好的 RBL 来说这种情况很少见,而且通常值得一试),而灰名单会给你带来延迟。此外,关于你的计划,发件人邮箱可能不是 MX 记录指向的同一台机器,因此如果你主要处理来自大域的邮件,它可能效率不高。你需要发件人的地址才能查找域的 MX 记录,而且我们知道,这很容易伪造。服务器有时会处理多个域的邮件。
好的一面是,postgray 实现了对反复显示能够通过灰名单的客户端的自动白名单化。因此,除非您真的需要,否则您不应该太担心延迟。