这应该是一个 wiki,不太确定。在我开始之前,执行扫描的外部服务器是一个自定义的 amavis/postfix/fortigate 管道;建议任何更改都在该环境中进行。
我已经为我工作的电子邮件服务器启用了反向查找拒绝功能,以减少管理层收到的垃圾邮件流入。是的,这是管理层的要求,请不要拿尖头发开玩笑。在这方面,它非常有效,将我们的扫描仪的工作量减少了大约 2 到 3 倍。关闭它无异于职业自杀;请不要建议放弃它作为解决方案。
问题相当简单:许多合法发件人(无论是供应商还是客户)将他们的电子邮件服务外包或最低限度地设置。服务提供商希望以尽可能少的、最小的条款来赚钱,所以他们真的不在乎让他们的服务完全符合要求。要么是客户/供应商从未听说过反向查找,也懒得修复他们的 DNS 区域(或者在某些情况下,他们甚至不控制他们的 DNS,这是另一天的话题)。这实际上是一个简单的修复,他们只需要创建一个与连接 IP 地址匹配的反向查找记录。 服务器的主机名或域名与发送者的域不匹配并不重要,重要的是服务器的查找完成了从 IP->名称->IP 的“往返”。
我没有一整天的时间去追踪每一个人并打电话,坦率地说,他们中的一些人不喜欢被电话骚扰。但那里出问题的服务器数量惊人,并且不到一个月,“特殊例外反向查找绕过列表”就会随着一些新的 IP 地址而增长。
所以问题是最好的方式是什么来通知合法发件人他们的电子邮件基本上已经损坏并且需要修复,而不是完全惹恼他们有没有办法自动通知他们,这样他们就能得到他们需要的信息,而不是收到他们永远不会阅读的乏味的拒绝信息?(我保证 99% 的客户和供应商都不懂技术,只会认为“好吧,这是你的电子邮件服务器损坏”)
在聊天中进一步讨论之后,我回头查看了正在使用的配置文件,我想我找到了部分原因。正在使用以下选项:
http://www.postfix.org/postconf.5.html#reject_unknown_client_hostname
根据该页面,此选项有严格的要求,因此我推测它会导致一些误报。
答案1
exim
可以使用 ACL 检测 A 记录的存在和 PTR 记录的缺失,然后可以通过路由器执行任何操作。$sender_host_name
,$host_lookup_failed
并$host_lookup_deferred
完成所有操作。
问题是垃圾邮件发送者经常使用这种配置不当但仍然合法的主机进行提交(ISP 的动态寻址客户端 fe)。因此大多数通知将发送给垃圾邮件发送者。
避免无用流量的最简单方法是接受此类消息,根据 AV/SA/bayes 检查它们,并且仅在它们通过数据校验后才发送通知。
也就是说exim
,只有当$sender_host_name
非空、$host_lookup_failed
= 1 且$spam_score_int
小于阈值时,您才必须发出通知。对于这些消息,内容扫描容忍度可能会显著降低。
不幸的是,我对此不够熟悉,无法postfix
提出等效的解决方案。