如何使用SPF记录来防止欺骗和提高电子邮件的可靠性

来自菜鸟教程
跳转至:导航、​搜索

介绍

精心定制的 SPF 记录将减少您的域名被欺诈性欺骗的可能性,并防止您的邮件在到达收件人之前被标记为垃圾邮件。 电子邮件欺骗是使用伪造的发件人地址创建电子邮件消息; 因为许多邮件服务器不执行身份验证,所以很容易做到这一点。 垃圾邮件和网络钓鱼电子邮件通常使用此类欺骗来误导收件人有关邮件来源的信息。 然而,多年来已经制定了许多解决欺骗的措施:SPFSender IDDKIMDMARC。 发件人策略框架 (SPF) 是一种电子邮件验证系统,旨在通过检测电子邮件欺骗来防止垃圾邮件。 今天,几乎所有的滥用电子邮件都带有虚假的发件人地址。 地址被滥用的受害者通常会承受后果,因为他们的声誉会受到损害,他们不得不浪费时间来整理被误导的退回邮件,或者(更糟糕的是)他们的 IP 地址被列入黑名单。

SPF 是一个开放标准,指定了一种防止发件人地址伪造的技术方法。 SPF 允许管理员通过在域名系统 (DNS) 中创建特定的 SPF 记录(或 TXT 记录)来指定允许哪些主机代表给定域发送邮件。 邮件交换器使用 DNS 记录来检查来自给定域的邮件是否由该域管理员批准的主机发送。

好处

将 SPF 记录添加到您的 DNS 区域文件是阻止垃圾邮件发送者欺骗您的域的最佳方法。 此外,SPF 记录将减少被标记为垃圾邮件或被收件人邮件服务器退回的合法电子邮件的数量。 不幸的是,SPF 记录不是 100% e 有效的,因为并非所有邮件提供商都会检查它。 但是,很多人会这样做,因此您应该注意到收到的反弹数量显着减少。

示例 SPF 记录

SPF 记录作为 TXT 记录添加到您的域的 DNS 区域文件,它标识您的域的授权 SMTP 服务器。

TXT @ "v=spf1 a include:_spf.google.com ~all"

如果您正在使用 DigitalOcean DNS Manager,请确保使用引号将 SPF 记录括起来。 下表提供了示例 SPF 记录的各种组件的说明:

组件 描述
TXT DNS 区域记录类型; SPF 记录写为 TXT 记录
@ 在 DNS 文件中,“@”符号是用于表示“当前域”的占位符
v=spf1 使用 SPF 版本 1 将 TXT 记录标识为 SPF 记录
a 授权域的 A 记录中标识的主机发送电子邮件
包括: 授权代表域从 google.com 发送邮件
~所有 表示这个列表包罗万象,不允许其他服务器发邮件

SPF 记录的组成部分

SPF 记录由 SPF 版本号和由 (i) 机制、(ii) 限定符和(有时)(iii) 修饰符组成的字符串组成。 SPF 客户端忽略不以版本字符串 "v=spf1 ..." 开头的 TXT 记录。

SPF 记录可以定义零个或多个 机制。 机制可用于描述指定为域的授权出站邮件程序的主机集。 以下列表是 SPF 记录中包含的常见机制:

all | ip4 | ip6 | a | mx | ptr | exists | include

机制可以以四个 限定符 之一作为前缀:

预选赛 描述
+ Pass = 通过测试的地址; 接受消息。 示例:“v=spf1 +all”
- (Hard) Fail = 地址未通过测试; 退回任何不符合要求的电子邮件。 示例:“v=spf1 -all”
~ Soft Fail = 地址未通过测试,但结果不确定; 接受并标记任何不合规的邮件。 示例:“v=spf1 ~all”
? 中性 = 地址未通过或未通过测试; 做任何事情(可能接受邮件)。 示例:“v=spf1 ?all”

如果不包括限定符,则隐含 + 限定符。

SPF 记录还可以定义 2 个 修饰符 中的 1 个; 或者,根本没有修饰符。 但是,每个修饰符只能出现一次。

redirect | exp

SPF 记录在两遍过程中进行评估:首先,评估所有机制和限定符。 然后,评估所有修饰符:

  1. 从左到右评估机制;
  2. 修饰符在第二遍进行评估,可以出现在记录中的任何位置。

机制

机制 描述
全部 匹配所有本地和远程 IP,并位于 SPF 记录的末尾。 示例:“v=spf1 +all”
ip4 指定单个 IPv4 地址或可接受的 IPv4 地址范围。 如果不包含前缀长度,则假定掩码为 /32。 示例:“v=spf1 ip4:192.168.0.1/16 -all”
ip6 在 ip4 中发现了相同的概念,但显然是使用 IPv6 地址。 如果没有给出前缀长度,则假定为 /128(挑出单个主机地址)。 示例:“v=spf1 ip6:1080::8:800:200C:417A/96 -all”
a 指定 DNS A 记录中的所有 IP。 示例:“v=spf1 a:domain.com -all”
MX 指定每个主机的 MX 记录的所有 A 记录。 示例:“v=spf1 mx mx:domain.com -all”
指针 指定每个主机的 PTR 记录的所有 A 记录。 示例:“v=spf1 ptr:domain.com -all”
存在 指定一个或多个通常作为 SPF 定义例外的域。 对提供的域执行 A 查询; 如果找到结果,则发生匹配。 示例:“v=spf1 存在:domain.com -all”
包括 指定作为授权域的其他域。 示例:“v=spf1 包括:outlook.microsoft.com -all”

“全部”机制3>

all 机制通常出现在 SPF 记录的末尾; 它以限定符为前缀,例如

例子 描述
“v=spf1 mx -all” 允许域的 MX 主机为域发送邮件,并禁止所有其他主机。
“v=spf1-全部” 该域根本不发送邮件。
“v=spf1 +全部” 这个 SPF 没有用,因为它不限制被授权发送电子邮件的主机。

修饰符

修饰符是可选的,修饰符每条记录只能出现一次。 未知的修饰符被忽略。

redirect”修饰符将查询发送到另一个域。

redirect=example.com

也就是说,example.com 的 SPF 记录替换了当前域的 SPF 记录。 重定向修饰符对于希望将相同记录应用于多个域的人很有用。 例如:

ny.yourdomain.com 的区域文件中的示例条目: TXT@“v=spf1 重定向=_spf.yourdomain.com”
sf.yourdomain.com 的区域文件中的示例条目: TXT@“v=spf1 重定向=_spf.yourdomain.com”
am.yourdomain.com 的区域文件中的示例条目: TXT@“v=spf1 重定向=_spf.yourdomain.com”
_spf.yourdomain.com 的区域文件中的示例条目: TXT@“v=spf1 mx:yourdomain.com -all”

为清楚起见,建议将任何“重定向”修饰符显示为记录中的最后一个词。

"exp" 修饰符在 SPF 记录中设置解释。

exp=[macro-string]

如果 SPF 查询产生 FAIL 结果,则查询解释,解释字符串向不合格用户提供更多信息。 解释通常放在 SPF 日志中。 示例:exp=spf 错误。 SPF 发布者可以指定发件人看到的解释字符串。 这样,ISP 可以将不合格用户引导至提供进一步说明的网页。

把它们放在一起

尽管您不需要 DNS 服务器上的 SPF 记录来根据其他 DNS 服务器上发布的 SPF 策略评估传入电子邮件,但最佳做法是在您的 DNS 服务器上设置 SPF 记录。 设置 SPF 记录可让其他电子邮件服务器使用 SPF 过滤(如果邮件服务器上提供该功能)来防止来自可能与您的域关联的欺骗或伪造电子邮件地址的传入电子邮件。 随着 SPF 记录的实施更广泛,SPF 过滤将在识别欺骗性电子邮件方面变得更加有效。

与往常一样,如果您在设置 SPF 记录方面需要帮助,请通过在下方提出您的问题向 DigitalOcean 社区寻求帮助。

文章提交者:Pablo Carranza