我最近设置了一个电子邮件服务器,我使用灰名单来处理垃圾邮件。 灰名单的主要缺点是它可以延迟您的电子邮件。 但是我想到了一个加快速度的方法。 如果主机X连接并希望发送来自[email protected]的电子邮件和example.com的MXlogging,则不要将其列入灰名单,只要立即让它通过即可。
这应该正常防止垃圾邮件,并消除一些主机的延迟,对不对?
有没有这样做,还是我不正确?
我使用的是Postfix和postgrey。
Postgrey不会支持,但是没有任何东西阻止你创build或发现一个策略服务器。 如果您的第一个策略服务器,我们称之为dns-checker.sh,通过邮件传递。 如果失败,Postfix会按照smtpd_recipient_restrictions的顺序转到下一个检查。
对于任何灰名单服务器,我build议将最大年龄设置为63天,即两个整月加一天。 我宁愿延迟时间是30秒。 延迟往往是一个延迟,无论多长时间,许多大型networking邮件服务器将在一分钟内重试,所以总体延迟非常低。 你也可以使用类C作为元组的一部分,而不是默认的特定IP。 我也使用自动白名单域,如果x个邮件被中继,这是相当自由的。 有了这些设置,我很less有延迟问题。
Postfix网站在此URL的策略服务器标题下列出了许多插件。 http://www.postfix.org/addon.html smtpd-policy-template包看起来是最有趣的,因为它基本上是创build自己的策略服务器的模板。 当然,编写逻辑和实际代码仍然取决于你。 🙂
您可以告诉postgrey不要将某些主机( /etc/postgrey/whitelist_clients )列为灰/etc/postgrey/whitelist_clients ,或者您可以在列出(并接受)您的MX的postgrey策略检查之前放入访问列表。 无论什么对你更有意义。
我从来没有使用过Postfix和Postgrey,但是如果你能做到这一点,理论就应该起作用。
我也在我们的邮件服务器上使用灰名单,并使用了几年。 它工作的很好,最初阻止了95%以上的垃圾邮件进来。而且因为我有和你一样的担心,所以我只做下class,就像下午6:00关掉,第二天上午7:00再打开。
我自己使用Postgrey和Postfix,我确实有外部的MX主机,它们的优先级设置,所以他们应该只接收邮件,如果主服务器无法到达。 在某些情况下,这些MX服务器不是由我pipe理,所以我不能假定来自它们的邮件不是垃圾邮件。
Postgrey的工作方式是查看发送IP地址,发件人地址和收件人地址的元组。 对于通过MX发送的邮件,发送IP将始终是MX的邮件。 哪一个是你可以将IP列入白名单,这首先会打败灰名单的目的。
除非您确定从MX发送到您的邮件服务器的邮件不是垃圾邮件,否则我build议不要试图将灰名单过程短路。 如果邮件是正常的,那么只有当看到一个新的元组时才会发生延迟,并且之后邮件将顺利地stream过。
垃圾邮件发送者正在赶上,并且重组列表可能不像以前那样有效。 如果可以,尝试使用一些RBL,我发现它们更有效。 因人而异。
AFAIK,postgrey无法确定远程服务器的IP是否与发件人域的MXlogging的IP保持一致。 其他一些工具可能更适合这个任务,看看postfix的附加页面。
作为一个侧面说明,无论你使用哪种技术,它可能有一个缺点。 RBL可能会偶尔阻止一些合法的邮件(虽然我发现RBL非常罕见,而且通常是值得的),并且灰名单会给你一个延迟。 此外,关于您的计划,发件人框可能不是MXlogging指向的同一台机器,因此如果您主要处理来自大型域的邮件,效率可能不高。 您需要发件人的地址才能查找该域的MXlogging,而且,正如我们所知,这很容易被伪造。 服务器ocasionaly处理多个域的邮件。
更明智的是,postgray实现了客户的自动白名单,这些客户反复显示可以通过灰名单。 所以,除非你真的必须,否则你不应该担心延迟。