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

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

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我可以为(或)设置一条 SPF 记录a.x.com,然后对于其他所有内容仅设置一个简单的包含/指向的x.com记录,还是需要以不同的方式完成?

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


笔记:我的问题的第二部分已经得到解答(使用“ v=spf1 include:x.com -all”来包含/指向的x.com记录),但设置什么的关键部分x.com仍然没有得到解答......

答案1

redirect您无法避免必须更改 x.com 以外的域的区域文件,但您可以通过定义托管在一个域上的通用策略并在其他域上使用 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末尾的include不会导致评估停止(include这是一个很大的误称。)当您想要从另一个域“别名”SPF 记录时,应该避免使用include,因为它非常脆弱 - 如果您不小心忘记了尾随的 -all 可能会导致该域上的整个 SPF 无效。

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

答案2

是的,您可以将其中一个域的配置包含在所有其他域的 SPF 记录中。将其他域的 SPF 记录设置为以下内容应该可以解决问题:

v=spf1 include:x.com -all

答案3

您是否尝试过使用以下网络工具:http://www.openspf.org/?这可能会让您更容易处理这个问题……

只需在右上角的框中输入您的域名,然后单击“开始”按钮即可。从这里,您应该能够快速完成设置。

答案4

是的,您需要为每个域单独添加特定的 SPF 记录。

原因是 DNS 中唯一 (有用的) 别名类型记录是记录CNAME。然而,CNAME记录会导致别名发生全部RRset 中的 RRtypes - 没有办法说“CNAMESPF 记录,但不是MX记录

相关内容