最终编辑:我对 DKIM 的看法似乎完全错误,签名域不必与发件人域相同,因此我的问题的整个前提是有缺陷的。非常感谢保罗指出我的错误!
原问题如下:
我曾尝试阅读 SPF 和 DKIM,但我不明白同时使用两者的意义,至少在打击垃圾邮件的背景下(伪造的发件人地址,这可能导致我的电子邮件服务器/域被列入黑名单)。据我所知,只有 DKIM 才能完成 SPF 应该完成的工作。
到目前为止,我的理解如下:
我不明白的是:除非 DKIM 私钥以某种方式被泄露,否则仅 DKIM 验证就足以验证电子邮件是从授权的电子邮件服务器发送的,否则电子邮件服务器将无法用于签署电子邮件的私钥。
我在这里看到了一个非常相似的问题的答案:https : //serverfault.com/a/780248/154775,作者在其中声称 DKIM 无法防止重放攻击。我承认这一点,但我发现这是一个非常极端的案例,我认为迄今为止最大的问题是带有虚假发件人地址的垃圾邮件 - DKIM 应该很容易地防止这种情况发生。
与仅 DKIM 相比,是否存在重放攻击之外的场景,其中 SPF 提供额外保护?
编辑:我用粗体标记了我的问题的核心,以澄清我到底想要什么答案。
我有一个有两个域的服务器。我收到标题中提到的警告:
不要在 mydestination 和 virtual_alias 中列出域 example.com
虽然我收到了上述警告,但它运行良好,没有问题。但我想知道如何解决它。
在这两个地方都拥有域的原因是因为我想实现 catchall - 所有发送到 @domain.tld 的电子邮件都应该转到该域的邮件帐户。
现在,如果我不将该域放在 mydestination 中,服务器将拒绝接受该域的电子邮件,因为它不想成为开放中继。如果我不将 catchall 别名放入虚拟别名表中,则 catchall 不起作用(显然)。
那么正确的解决方法是什么呢?我试图阅读http://www.postfix.org/VIRTUAL_README.html#virtual_alias 上的内容,但我似乎无法让我的设置以任何其他方式工作。
(PS:我使用 webmin/virtualmin 来管理我的网站,当我尝试使用内置配置工具对其进行配置时,它提供了与我手动使用的相同的解决方案。所以似乎连 webmin 都不知道更好这样做的方法......)