如何设置DNS的SPF记录
Introduction
SPF的完整意思为 "Sender Policy Framework"。翻译过来就是发送方策略框架,是一项跟 DNS 相关的技术,它的内容写在 DNS 的 txt 类型记录里面,关于更详细的信息请参考 RFC4408: http://www.ietf.org/rfc/rfc4408.txt
SPF 的原理是使用电子邮件的头部信息中的 'Return Path' 或 'Mail From' 这两个邮件头里的域名来结合真正提供这个邮件的服务商 DNS 里面的记录去验证发送邮件服务器是否是冒充行为。
SPF 的官方网站是: http://www.openspf.org/
How it works
当信件发送到一个 MTA 后,这个 MTA 会检查邮件的邮件头,然后进行 DNS 查询,如果认为这个域的 IP 地址不是所定义的那就证明他是一个假冒的,这时候就会把邮件退回去。
How to check SPF record
如何查询某个域名是否开启SPF,可以使用以下命令:
# dig -t txt 域名(不加www)
只需要去查询 TXT 类型的 DNS 记录即可。
SPF variables
v=spf1 / 表示 spf1 的版本
- Fail, 表示没有其他任何匹配发生
~ 代表软失败,通常用于测试中
? 代表忽略
IP4 代表IPv4进行验证
IP6 代表IPv6进行验证
all 代表结束
举例说明:
* 163 的 SPF 记录:
163.com. 18000 IN TXT "v=spf1 ip4:220.181.12.0/22 ip4:202.108.5.64/26 ip4:202.108.5.128/25 -all"
如果不符合以上发信地址,但是发件人却是 'xxx@163.com',那么这样的邮件一定是假冒的。邮件应该一律退回。
sohu.com 的 SPF 记录:
sohu.com. 600 IN
TXT "v=spf1 ip4:61.135.130.0/23 ip4:61.135.132.0/23
ip4:61.135.134.0/23 ip4:61.135.145.0/23 ip4:61.135.150.0/23
ip4:220.181.26.0/24 ip4:222.28.152.128/25 ip4:218.206.87.0/25
ip4:221.236.12.128 ip4:203.184.141.0/24 ip4:61.152.234.0/24 ~all"