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

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

但是,尽pipe多次阅读了解释,但我不太了解如何正确configuration它。

比方说,我有我的服务器在axcom主机www.x.combxcomcxcom等。

我也有a.co.uk b.net c.info等等,每个都有各自的子域名,全部都在x.com托pipe

对于所有这些域和子域,我想允许从axcom发送邮件

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

我如何设置SPF?

我可以为x.com (或axcom )设置一个SPFlogging,然后对于其他所有内容只需要一个简单的包含/指向x.comlogging的指针,还是需要以不同的方式完成?

任何人都可以为上面的例子提供一些SPFlogging?

注意:我的问题的第二部分已经被回答(使用“ v=spf1 include:x.com -all ”来包含/指向x.com的logging),但是在x.com上设置的关键部分仍然没有答案…

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

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

_spf.google.com是持有Gmail SPFlogging的logging。 不确定是否logging在案。 理论上你应该include:gmail.com但是这是一个redirect到_spf.google.com ,至less有一个广泛使用的qmail SPF补丁没有正确的遵循(在2008年8月得到修复,但仍可能被部署。 )当然,这两个策略是例子 – 在debugging时,具有不同严格级别的多个策略是非常有用的,因为您只需在目标域中更改短名称而不是错误复制副本。

  • 在其他域的区域文件中:
 @ IN TXT“v = spf1 redirect = _policy1.x.com”

要么

 @ IN TXT“v = spf1 redirect = _policy2.x.com”

等我使用redirect ,而不是include ,导致SPF检查完全replace当前评估logging与我redirect到。 include不这样做 – 例如,一个-all include-all的结尾不会导致评估停止( include是一个大错名)。你应该避免使用include当你想“别名”从另一个域的SPFlogging,因为它非常脆弱 – 如果你不小心忘记了尾随,你可能会使整个域名的SPF无效。

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

是的,您可以将来自其中一个域的configuration包含在所有其他域的SPFlogging中。 将其他域的SPFlogging设置为以下内容应该可以做到这一点:

 v=spf1 include:x.com -all 

你有没有尝试在http://www.openspf.org/使用networking工具? 这可能会让你更容易处理这个问题。

只需在右上angular的框中input您的域名,然后点击开始button。 从那里,你应该能够匆忙地安排事情。

标准RFC 4408提供了一些与你想要的非常接近的例子。 以下是x.com的zonefile的摘录:

 @ IN TXT“v = spf1 a:axcom -all”
       IN SPF“v = spf1 a:axcom -all”

 www IN TXT“v = spf1 a:axcom -all”
       IN SPF“v = spf1 a:axcom -all”

笔记:

  • 我没有添加Gmail电子邮件服务器,因为我不知道他们,请问Gmail的人
  • “a”是“地址”(它不是 DNS Alogging,它包括IPv6)
  • 我根据RFC添加了SPFlogging,尽pipe几乎所有的实现都只使用TXTlogging

是的,您需要将特定的SPFlogging分别添加到每个域。

原因是DNS中唯一的(有用的)别名typeslogging是CNAMElogging。 但是, CNAMElogging会导致RRset中的所有 RRtypes发生别名 – 没有办法说“ CNAME SPFlogging但不是MXlogging