对于我的邮件服务器,我想要为 spamassin DKIM 和 SPF 检查添加一些自定义规则和分数。
目前我使用以下自定义设置:
score DKIM_SIGNED 0
score DKIM_VALID -1
score SPF_NONE 1
score SPF_PASS -1
问题:
如果邮件没有 spf,则存在标签,但如果邮件未经过 dkim 签名,则不存在设置。我如何使用或实现
score DKIM_UNSIGNED 1
任何帮助都将受到赞赏。
答案1
您可以这样做:
ifplugin Mail::SpamAssassin::Plugin::DKIM
score DKIM_SIGNED -0.01
meta DKIM_UNSIGNED !DKIM_SIGNED
score DKIM_UNSIGNED 1
endif
(为规则分配零分将禁用其评估,因此!DKIM_SIGNED
始终为真。解决方案是给它一个简单的分数。它还使用条件来确保插件被加载,否则!DKIM_SIGNED
将始终为真。)
⚠ 然而,我既不建议这样做,也不建议调整 DKIM/SPF 权重。
很多垃圾邮件发送者和肮脏的营销人员实施 SPF 和 DKIM。然后还有通过免费邮件提供商(如 GMail、Yahoo、Hotmail/Outlook 等)发起的所有攻击。这些基础设施全部拥有正确的 DKIM 和 SPF 签名。您将给予他们所有较大的正常权重 (-2),从而使 SpamAssassin 更难判定他们有罪。
同样,许多合法邮件未能使用(或正确实施)SPF 或 DKIM。
您可以查看以下内容:考虑 2022-01-12 的公共 SpamAssassin 规则 QA 日志。由于这些日志并非在所有测试中都运行 DKIM 插件,因此让我们看看__DKIM_EXISTS(有一个 DKIM 签名标头)而不是 DKIM_SIGNED(有一个格式正确的 DKIM 签名标头)或 DKIM_VALID(它匹配)。__DKIM_EXISTS 与 DKIM_SIGNED 几乎相同。
22.5% 的垃圾邮件和 71.4% 的正常邮件具有 DKIM,这意味着 87.5% 的垃圾邮件和 38.6% 的正常邮件缺乏 DKIM。
你真的想要从四分之一的垃圾邮件中移除 2 分,并从三分之一的火腿中增加 1 分吗?
相反,我建议明确支持已知安全的域名:
whitelist_from_dkim *@safe.example.com *@serverfault.com
whitelist_from_spf *@safe.example.com *@serverfault.com
这仅允许来自列出的域的有效 DKIM 签名和 SPF 授权邮件。您还可以使用def_whitelist_from_dkim
和def_whitelist_from_spf
来处理较轻的 ham 重量。
您还可以考虑通过以下方式自动执行此操作发送应答,但前提是确保你正确使用 IP域名系统(看DNS阻止列表)我认为 DNSBL 和贝叶斯内容检查是总体上打击垃圾邮件的两种最佳武器。