多年来我一直使用 Exim 作为 MTA。我制定了三种防止垃圾邮件的策略。首先是黑名单。第二个是延迟邮件投递,第三个是SpamAssassin。
但今年,越来越多的垃圾邮件通过了过滤器,恕我直言,垃圾邮件是由被黑的服务器/帐户发送的。
另一方面,我从订阅了 Sophos 和 WatchGuard 等防火墙的客户那里听说,他们几乎不再有垃圾邮件了。
我还尝试调整配置并从 SpamAssassin 切换到 RSpamd,但我得到的误报越来越多。
我也尝试了 exim 的 Github 站点上描述的方法:https://github.com/Exim/exim/wiki/SpamFiltering
但大部分信息都已经过时了。
有人可以告诉我,2018 年用 Exim 消除垃圾邮件的方法是什么吗?
答案1
Sophos、WatchGuard 或 IronPort 等工具都会从客户端收集统计数据,并构建分布在客户端之间的通用贝叶斯令牌集。贝叶斯过滤是终极武器,但需要持续大量更新。
就统计数据太小而无法进行训练而言,具有少量电子邮件的独立系统是贝叶斯最坏的情况。每天处理的消息量不少于500条就可以达到比较好的效果。
- 首先应对所有消息进行基本 RFC 合规性测试。如果发送主机没有反向 DNS 记录或者它跳过了 HELO 或其他 - 它可以被认定为垃圾邮件
- 其次,我们根据我们自己的黑名单检查发送主机的名称(如下所述)。
这两个阶段捕获的所有消息都会传递给贝叶斯进行学习。任何消息都不应被丢弃或拒绝。如果是火腿就应该送货上门。如果是垃圾邮件,则应该训练我们的贝叶斯过滤器。
- 第三,阶段 1 和阶段 2 未捕获的所有消息均由贝叶斯评估。我更喜欢 Spamassassin,因此这些消息不仅由贝叶斯评估,而且还由大量的 euristics 评估。
成功通过所有三个阶段的每条消息都会发送到用户的邮箱。当然,存在假阳性和假阴性的可能性。但用户可以根据自己的意愿与邮件系统进行交互,将邮件标记为正常邮件/垃圾邮件。每条标记的消息都会被传递以进行贝叶斯学习。
邮政局长应每周或每月检查日志。所有发送主机应按捕获的垃圾邮件数量进行排序。 Top-10 是添加到黑名单的良好候选者。黑名单只是我们所知的纯粹垃圾邮件发送者的主机列表。来自该主机的所有消息都应立即传递以进行贝叶斯学习。
发送到该设置的垃圾邮件越多,过滤掉的效果就越好。邮政局长唯一需要的交互是定期更新黑名单。经过几个月的训练后,此设置将在每 3000-5000 条传入消息中传递不超过 1 个假阴性。