浏览文章

文章信息

邮箱SPF设置(Sender Policy Framework)|如何设置邮箱SPF? 13634

邮箱SPF是什么?

Sender Policy Framework)缩写,发件者邮箱身份认证协议框架。

邮箱SPF作用?

防止别人伪造发件者发送邮件。

例如:如果没有SPF,我就可以伪造阿里发送邮件,钓鱼网站用的很多。


1、SPF查找以及规则定制工具

https://www.kitterman.com/spf/validate.html?

2、SPF如何配置?

域名DNS上添加TXT记录。

记录值的规则:

非常简单,在DNS里面添加TXT记录即可。访问http://www.kitterman.com/spf/validate.html在里面输入你的域名,点击 Get SPF Record,然后会自动得到你域名的一些相关信息。

a 你域名的A记录,一般选择yes,因为他有可能发出邮件。
mx 一般也是yes,MX服务器会有退信等。
ptr 选择no,官方建议的。

a: 有没有其他的二级域名?

比如:mail.abc.com和www不在一台server上,则填入mail.abc.com,否则清空。

mx: 一般不会再有其他的mx记录了。

ip4: 你还有没有其他的ip发信?可能你的smtp服务器是独立出来的,那么就填入你的IP地址或者网段。
include: 如果有可能通过一个isp来发信,这个有自己的SPF记录,则填入这个isp的域名,

比如:hichina.com -all: 意思是除了上面的,其他的都不认可。当然是yes了。

好了,点击Continue…..,自动生成了一条SPF记录,比如abc.com的是v=spf1 a mx -all,并且在下面告诉你如何在你的bind里面添加一条abc.com. IN TXT “v=spf1 a mx -all”加入你的bind,然后ndc reload即可。

检查一下:dig -t txt extmail.org

如果您的域名是由万网的dns服务器进行解析的,万网的网页上没有设置TXT记录的地方,但是如果你的DNS主server是在Hichina的,可以在diy.hichina.com上设置。设置完毕后您即可以通过使用spf策略进行垃圾邮件验证了。

SPF 的 TXT 记录

SPF 记录包含在一个 TXT 记录之中,格式如:v=spf1 [[pre] type [ext] ] … [mod]

每个参数的含义入下表所示

参数描述
v=spf1SPF 的版本。如果使用 Sender ID 的话,这个字段就应该是 v=spf2
pre定义匹配时的返回值。
可能的返回值包括: 
返回值描述 + 缺省值。在测试完成的时候表示通过。 - 表示测试失败。这个值通常是 -all,表示没有其他任何匹配发生。~ 表示软失败,通常表示测试没有完成。? 表示不置可否。这个值也通常在测试没有完成的时候使用。
type定义使用的确认测试的类型。
可能的值包括:

候选值描述 include 包含一个给定的域名的测试 以 include:domain 的形式书写。 all终止测试序列。 比如,如果选项是 -all,那么到达这条记录也就意味着测试失败了。但是如果无法确定,可以使用"?all"来表示,这样,测试将被接受。 ip4使用 IPv4 进行验证。 这个可以以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建议使用这个参数,以减少域名服务器的负荷。 ip6使用 IPv6 进行验证。a使用一个域名进行验证。 这将引起对域名服务器进行一次 A RR 查询。 可以按照 a:domain, a:domain/cidr 或 a/cidr 的形式来使用。 mx使用 DNS MX RR 进行验证。 MX RR 定义了收信的 MTA,这可能和发信的 MTA 是不同的,这种情况基于 mx 的测试将会失败。 可以用 mx:domain, mx:domain/cidr 或 mx/cidr 这些形式进行 mx 验证。 ptr使用域名服务器的 PTR RR 进行验证。 这时,SPF 使用 PTR RR 和反向图进行查询。如果返回的主机名位于同一个域名之内,就验证通过了。 这个参数的写法是 ptr:domain exist验证域名的存在性。 可以写成 exist:domain 的形式。
ext定义对 type 的可选扩展。如果没有这个字段,那么仅使用单个记录进行问询。
mod这是最后的类型指示,作为记录的一个修正值。
修正值 描述 redirect 重定向查询,使用给出的域名的 SPF 记录。 以 redirect=domain 的方式使用。exp这条记录必须是最后一条,允许给出一条定制的失败消息。 IN TXT "v=spf1 mx -all exp=getlost.example.com"getlost IN TXT "You are not authorized to send mail for the domain"


 

阿里邮箱SPF添加参考:

在域名解析平台添加一条TXT记录,
主机记录 @,记录值为: “v=spf1 include:spf.mxhichina.com -all”

spf-txt

 

参考文献

SPF 官方网站。

SPF 官方 FAQ。

SPF 官方向导。

openspf.org 对于 SenderID 的立场

转向 SASL 时对用户提出警示

HOWTO - 定义 SPF 记录


原创