资讯>产品动态>SPF——一种反垃圾邮件解决方案

SPF——一种反垃圾邮件解决方案

全速云2019-01-04阅读量:747点赞数:0

1. SPF是什么?

    SPF是 Sender Policy Framework 的缩写,一种以IP地址认证电子邮件发件人身份的技术。接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。

SPF是跟DNS相关的一项技术,它的内容写在DNS的txt类型的记录里面。mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF的作用跟mx相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。


2. SPF配置

2.1.   SPF 语法

v=spf1 [pre][type]mod

一条 SPF 记录定义了一个或者多个 mechanism,而 mechanism 则定义了哪些 IP 是允许的,哪些 IP 是拒绝的。

每个 mechanism 可以有四种前缀:

符号

含义            

"+"

(通过)

"-"

Fail(拒绝)

"~"

Soft   Fail(软拒绝)

"?"

Neutral(中立)

 

除了以上四种情况,还有 None(无结果)、PermError(永久错误)和 TempError(临时错误)三种其他情况。对于这些情况的解释和服务器通常的处理办法如下:

结果                

含义

服务器处理办法            

Pass

发件 IP 是合法的

接受来信

Fail

发件 IP 是非法的

退信

Soft   Fail

发件 IP 非法,但是不采取强硬措施

接受来信,但是做标记

Neutral

SPF   记录中没有关于发件 IP 是否合法的信息

接受来信

None

服务器没有设定 SPF 记录

接受来信

PermError

发生了严重错误(例如   SPF 记录语法错误)

没有规定

TempError

发生了临时错误(例如   DNS 查询失败)

接受或拒绝


2.2Mechanisms


下面介绍上面提到的 mechanism:

all

表示所有 IP,肯定会命中。因此通常把它放在 SPF 记录的结尾,表示处理剩下的所有情况。例如:

"v=spf1 -all" 拒绝所有(表示这个域名不会发出邮件)

"v=spf1 +all" 接受所有(域名所有者认为 SPF 是没有用的,或者根本不在乎它)

ip4

格式为ip4:

"v=spf1 ip4:192.168.0.1/16 -all"

只允许在 192.168.0.1 ~ 192.168.255.255 范围内的 IP

ip6

格式和ip4的很类似,默认的prefix-length是/128。例如:

"v=spf1 ip6:1080::8:800:200C:417A/96 -all"

只允许在 1080::8:800:0000:0000 ~ 1080::8:800:FFFF:FFFF 范围内的 IP

a mx

这俩的格式是相同的,以a为例,格式为以下四种之一:

a

a/

a:

a:

会命中相应域名的 a 记录(或 mx 记录)中包含的 IP 地址(或地址段)。如果没有提供域名,则使用当前域名。例如:

"v=spf1 mx -all"

允许当前域名的 mx 记录对应的 IP 地址。

"v=spf1 mx mx:deferrals.example.com -all"

允许当前域名和 deferrals.example.com 的 mx 记录对应的 IP 地址。

"v=spf1 a/24 -all"

类似地,这个用法则允许一个地址段。

例如,这是一个比较常见的 SPF 记录,它表示支持当前域名的 a 记录和 mx 记录,同时支持一个给定的 IP 地址;其他地址则拒绝:

v=spf1 a mx ip4:173.194.72.103 -all

include

格式为include:

"v=spf1 include:example.com -all" 即采用和 example.com 完全一样的 SPF 记录

exists

格式为exists:

ptr

格式为ptr或者ptr:

使用ptr机制会带来大量很大开销的 DNS 查询,所以连官方都不推荐使用它。

redirect

格式为redirect=

将用给定域名的 SPF 记录替换当前记录,支持多域名共享SPF记录:

a.example.com   IN   SPF   "v=spf1 redirect=example.com"

b.example.com   IN   SPF   "v=spf1 redirect=example.com"

这样 a.example.com 与 b.exmaple.com 就会使用 example.com 相同的 SPF记录,无需再复制一次。

注意,redirect 使用的是等号,include 使用的是冒号。

exp

格式为exp=


2.3.   如何使用SPF保护我的邮箱?

SPF记录是一种发送者身份验证系统。通过设置SPF记录,可以阻止其他用户伪造你的域名进行发送。

严格来说,SPF 数据应该创建为 SPF 记录。但是鉴于很多 DNS 服务商不支持 SPF 记录,甚至有的邮件服务器也不支持 SPF 记录,因此也可以创建为一条 TXT 记录。SPF与TXT记录有相同的作用,都可以用来做反垃圾邮件设置,如下两条记录作用是一样的:

a.example.com   IN   SPF   "v=spf1 ip4:192.168.0.1/16 -all "

a.example.com   IN   TXT   "v=spf1 ip4:192.168.0.1/16 -all "

 

2.4.   CloudDNSSPF记录配置步骤


如何在CloudDNS上配置SPF?步骤如下:

1)        登录CloudDNS

2)        进入控制台,选择CloudDNS

3)        新增一个域名,如wyhxin.club

4)        点击域名,进入解析记录管理页面

5)        选择新增记录,选择SPF记录类型

6)        填写SPF参数,如主机头

 

SPF

7)        测试结果:dig spf.wyhxin.club SPF

 

3.结语

由此可见,SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。设置正确的 SPF 记录可以提高邮件系统发送外域邮件的成功率,也可以一定程度上防止别人假冒你的域名发邮件。

由此可见,SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。设置正确的 SPF 记录可以提高邮件系统发送外域邮件的成功率,也可以一定程度上防止别人假冒你的域名发邮件。

全球1000+节点
实时网络监控
稳定的云服务
超强后备资源