邮件和中继服务器的 SPF 设置

邮件和中继服务器的 SPF 设置

因此,我对邮件服务器还很陌生,并寻求帮助以便在这种环境中正确设置 SPF:

  • 邮件服务器(IP 11.11.11.11、example.com、random.com、test.com)

  • 中继服务器(IP 22.22.22.22,srv2.example.com)

我的邮件服务器 (example.com) 上托管了多个域,它们都使用中继服务器 (srv2.example.com) 进行通信。我在 DNS 区域文件中为 example.com 设置了以下条目:

  • @ IN MX 10 srv2
  • @ IN TXT“v = spf1 + mx + aa:22.22.22.22 a:ip6:2001:0db8:85a3:0000:0000:8a2e:0370:7334 包括:srv2.example.com -all”

这将是我的邮件服务器 (example.com) 上托管的另一个域的区域文件:

  • @ IN TXT“v = spf1 + mx + aa:ip4:22.22.22.22 a:ip6:2001:0db8:85a3:0000:0000:8a2e:0370:7334 -all”

进行测试并向 googlemail 发送一封邮件,结果得到以下回复:

spf=pass (google.com:域名[电子邮件保护]指定 22.22.22.22 为允许的发件人)[电子邮件保护]

但我的设置仍然不正确,因为当我在其他地方测试邮件时我得到以下结果:

SPF 检查详情:结果:已验证中性 ID: [电子邮件保护]DNS 记录:

发件人 ID 检查详情:结果:已验证中性 ID: [电子邮件保护]DNS 记录:

我问自己的第一个问题是:为什么如果我设置了 ~all 或 -all,响应会是中性的?如果我深入挖掘并使用这个网站http://spf.myisp.ch检查我的 SPF 条目时,我得到了以下信息:

主机 ,虽然被引用,但没有定义 SPF 条目。这违反了 RFC4408。

我现在想到的是“,”可能指的是 srv2.example.com,这意味着我的中继服务器本身没有 SPF 条目。

遗憾的是,我对 SPF 和中继有很多疑问http://www.openspf.org它似乎是获取更多信息的好地方,但目前似乎已经离线一段时间了。

答案1

要么是ip4:要么是a:;这是语法错误。此外,如果它们解析到已经用和方法列出的相同 IP 地址,则a:ip4:没有必要添加和a。这简化为:mxip4ip6

example.com. IN TXT "v=spf1 +ip4:192.0.2.2 +ip6:2001:db8::2 -all"

IP 地址属于将邮件发送到外部邮件系统的服务器。我不太明白你的意思邮件服务器中继服务器,因为IN MX应该指向用于的服务器接收邮件,与 SPF 关系不大。可能比你实际应该拥有的

example.com. MX 0 example.com.

对于其他域,您可以复制并使用相同的 SPF 记录,或者参考上面的记录example.com以使其更易于维护:

@ IN TXT "v=spf1 include:example.com -all"

答案2

您可能想表达与当前 SPF 记录不同的内容。在这种情况下,验证者可以自由选择适当的操作:

本文档及其前身均未规定如何正确处理语法无效的情况<domain-spec>-RFC 7208 第 4.8 节

因此,不同的 SPF 验证器产生不同的结果并不一定是错误的。

删除a:ip4:条目,改用如下内容:

@ IN TXT "v=spf1 +mx +a ip4:192.0.2.2 ip6:2001:db8::2 -all"
@ IN TXT "v=spf1 +mx +a include:srv2.example.com -all"
@ IN TXT "v=spf1 +mx +a a:srv2.example.com -all"

a:domain/cidr机制旨在与可解析域名一起使用,并适用于 IPv4 和 IPv6 - 添加它ipv4:实际上会破坏它:

“A”

如果是 的 IP 地址之一,则此机制匹配。为清楚起见,这意味着“a”机制也匹配 AAAA 记录。-RFC 7208 第 5.3 节

答案3

好的,我读完了答案并想感谢你。上述解决方案仍然导致以下错误消息:

主机 ,虽然被引用,但没有定义 SPF 条目。这违反了 RFC4408。

我继续尝试,发现这个解决方案可能有效:

Example.com DNS 区域文件:

  • @ IN MX 10 srv2
  • @ IN TXT“v = spf1 + mx + a -全部”

Test.com、Random.com DNS 区域文件:

  • @IN MX 10 srv2.example.com。
  • @IN TXT“v=spf1 包括:example.com-all”

使用此配置,我在大多数 SPF 测试网站上都获得了肯定的结果,有些网站仍然显示中性结果,但我认为这是因为 DNS 条目未完全更新。我希望有人对此解决方案发表评论,也许可以解释为什么 ip4:192.0.2.2 ip6:2001:db8::2 的附加条目导致“主机 ,虽然被引用,但没有定义 SPF 条目。这违反了 RFC4408”。

由于 SPF 问题,邮件主机实际上阻止了来自我的一个域的邮件(554 由于发送 MTA 信誉不佳,您对此邮件系统的访问已被拒绝),我想知道这台邮件服务器需要多长时间才能再次允许通信。尽管存在 SPF 问题,但邮件和中继服务器都很好,dmarc 和 dkim 已配置,并且 ip 未被列入黑名单。使用当前设置,我还在检查外发邮件是否为垃圾邮件。

相关内容