我有个问题。使用 sa-learn 来教 spamassassin 了解垃圾邮件和普通邮件是否重要?如果我的邮件服务器中没有垃圾邮件和普通邮件的样本,我不使用它怎么办?
答案1
sa-learn 通常用于存储在机器上的邮件(mbox 或 maildir 格式),并且仅在您分别归档垃圾邮件和正常邮件时才有效。如果您要使用它,最好使用大量垃圾邮件和正常邮件示例,以防止过滤偏差。
有一个很好的文档这里它会经历整个过程和细节,但它确实需要本地存储的邮件(无论何种格式)。
话虽如此,我在一些机器上使用 SA,从未使用 sa-learn,但它仍然表现不错。不过,我确实使用了许多不基于 SA 的其他反垃圾邮件技术……
答案2
我同意 Mark Regensberg 的回答,但更具体地说:据我所知,sa-learn 和 SpamAssassin 的其他贝叶斯元素只影响贝叶斯测试(你可以看到当前完整的 SA 测试列表为了澄清)。
也就是说,无论您是否使用 sa-learn,所有基于规则的测试都会完全有效。只有规则的匹配BAYES_nn
会受到您对贝叶斯引擎的个性化训练(使用sa-learn --ham
和 )的影响--spam
。
话虽如此,其中一些测试的得分相当高 - 根据贝叶斯引擎认为邮件的“垃圾邮件”程度,邮件的评级可能会受到 -1.9 到 +3.8 之间的影响 - 所以我发现对我的引擎进行一些训练很有价值。正如 Mark 所说,为了做到这一点,您需要分别归档正常垃圾邮件和未检测到的垃圾邮件。
在回复你给马克的留言时,减少垃圾邮件效果最好的“其他”技术是灰名单,通过消除“即发即弃”邮件,我收到的垃圾邮件减少了 90% 以上。引入SPF 过滤收到的电子邮件是第二有效的,减少了大约 5% 的电子邮件。
答案3
SpamAssassin 有相当多的技术来查找垃圾邮件。其中之一是正则表达式(正如 MadHatter 的回答所述),但现在它已经不那么有效了。另一个(也是 MadHatter 提到的)是 SPF,尽管我认为它在捕获其他方式无法捕获的垃圾邮件方面的能力微不足道。
SpamAssassin 中最强大的技术是贝叶斯检测和在线查找(域名系统(又称“RBL”)和URI DNSBL以及哈希系统剃刀和皮佐尔另请参阅 SA 维基页面安装 Razor和安装 Pyzor)。
在线查找是迄今为止最简单的;正确配置它们,您就可以开始了。它们会随时了解各种垃圾邮件陷阱网络(蜜罐)中垃圾邮件的最新情况,但它们无法保护您免受雪鞋攻击(速度太快)或鱼叉式网络钓鱼等有针对性的攻击(速度太小)。
贝叶斯检测需要不断维护;它是一个机器学习系统,因此必须定期训练它错过的内容(以及它不恰当地捕捉到的内容)。它得到的关注越多,它就越好。
SpamAssassin 有一个自學系統这将假设所有得分非常高的垃圾邮件都应被学习为垃圾邮件,所有得分非常低的正常邮件也应被学习为正常邮件。问题是它只从容易的东西中学习,并且(特别是对于正常邮件)可能会从错误分类的邮件中学习,这将强化 SpamAssassin 的错误。
任何 SpamAssassin 部署都不应信任未经额外人工培训的自动学习。 它旨在补充手动培训,而不是替代它。您必须使用sa-learn
(或spamassassin --report
,它也会报告给 Pyzor、Razor 和 SpamCop DNSBL)。
您可以详细了解SpamAssassin 维基上的贝叶斯。