如何为服务器上的多个域配置 SPF?(也允许 gmail 作为发件人)

Pet*_*ton 9 domain-name-system email spam spf

SPF(发件人策略框架)似乎是打击垃圾邮件发送者/欺骗的好方法。

然而,尽管阅读了多次解释,我还是不太明白如何正确配置它。


比方说,我有我的服务器在a.x.com哪些主机www.x.comb.x.comc.x.com等。

我也有a.co.uk b.net c.info等等,每个都有各种各样的子域,都托管在x.com

对于所有这些域和子域,我想允许从以下地址发送邮件 a.x.com

我还希望他们都允许从 Gmail 为所有这些域发送邮件。

如何使用 SPF 进行设置?

我可以为x.com(or a.x.com)设置一个 SPF 记录,然后为其他所有内容设置一个简单的包含/指向x.com's 记录的指针,还是需要以不同的方式完成?

任何人都可以为上述示例提供一些 SPF 记录吗?


注意:我的问题的第二部分已得到解答(使用“ v=spf1 include:x.com -all”来包含/指向x.com的记录),但设置内容的关键部分x.com仍未得到解答......

Mih*_*şan 7

您无法避免必须为 x.com 以外的域更改区域文件,但是通过定义托管在一个域上的通用策略并redirect在其他域上使用SPF 关键字,您可以为自己省去很多麻烦。例子:

  • x.com域的区域文件中:
_policy1 IN TXT "v=spf1 a:axcom -all"
_policy2 IN TXT "v=spf1 包括:_spf.google.com a:axcom -all"

_spf.google.com是保存 Gmail SPF 记录的记录。不确定它是否记录在案。理论上你应该,include:gmail.com但这是一个重定向到,_spf.google.com并且至少有一个广泛使用的 qmail SPF 补丁没有正确遵循它(在 2008 年 8 月得到修复,但可能仍然被部署。)这两个策略当然是例子 -在调试时拥有多个不同级别的严格性非常有用,因为您只需更改目标域中的一个短名称,而不是容易出错的复制粘贴。

  • 在其他域的区域文件中:
@ IN TXT "v=spf1 重定向=_policy1.x.com"

或者

@ IN TXT "v=spf1 重定向=_policy2.x.com"

等等。我正在使用redirect,而不是include使 SPF 检查完全替换当前评估的记录与我重定向到的记录。include不这样做 - 例如,-all在an的末尾include不会导致评估停止(这include是一个很大的用词不当。)include当您想要“别名”来自另一个域的 SPF 记录时,您应该避免使用,因为它非常脆弱 -如果您不小心忘记了尾随 -all,您可能会使该域上的整个 SPF 无效。

编辑:但请注意,如果您想允许 Gmail 的服务器作为发件人,则需要保持警惕。Gmail chapcha 已被破解,这意味着可以自动注册帐户,这意味着 Gmail 可以(间接)用作开放中继(我每周收到数十个垃圾邮件机器人注册请求,用于我公司的讨论论坛,全部使用gmail.com 电子邮件地址 - 这些地址是实时的,我允许其中一些地址进行检查。)此外,如果熟悉您域中电子邮件地址的 uwsername 部分,任何拥有 Gmail 帐户的人都可以绕过 SPF 检查.

  • 此外,我不会使用 SPF 记录类型。我建议你坚持使用TXT。SPF 记录类型仅由 BIND 9.4 及更高版本支持,根据 RFC,您*必须* 还维护 TXT 记录的副本,即您必须复制粘贴内容(坏)并且必须保持它们同步(硬)。收益是不存在的,因为在可预见的未来,TXT 将成为主要的 SPF 交付机制,引用 openspf.org。 (2认同)