发件人策略框架(SPF) 记录是 DMARC协议的重要组成部分,它规定了一种防止伪造发件人地址的方法。
SPF 记录的设置很复杂,如果配置不当,就会出现实施问题。而且,SPF 记录语法使用了一些特定的术语,在第一次遇到时可能会让人困惑。因此,在这篇博文中,我们看看 SPF 记录的语法,以及你在配置它们时需要考虑的问题。
主要收获
- SPF 通过授权特定邮件服务器代表您发送电子邮件,防止电子邮件被欺骗。
- SPF 记录使用指令、限定符和机制来定义授权发件人和对检查失败的处理。
- 收件人的服务器通过 DNS 查找来检查 SPF 记录,以验证发件人的授权。
- SPF 结果分为 "通过"、"中立 "或 "失败",以确定电子邮件是否合法。
- SPF修改器(如 "exp "和 "redirect")可为电子邮件验证和处理提供额外的自定义功能。
SPF记录的语法
SPF 记录的语法包括几个元素--指令、限定词和机制。
指令是 SPF 记录语法的第一部分。它们指示如何解释记录的其余部分。SPF 记录中可以出现三个指令:v=spf1、a 和 mx。v 指令表示这条记录是一条 SPFv1 记录;a 指令表示这条记录是一条 SPFv2 式的认证失败报告;mx 指令指定了一个域的邮件交换服务器列表。
限定符指定了你想把 SPF 记录放在 DNS 区域的什么地方:exim4、enduser 或 _spf。这些限定词告诉邮件接收者,当他们在检查你的 SPF 记录时,应该在哪里寻找这些记录。
机制用于指示如何处理SPF 检查失败的电子邮件地址。您可以从以下几种机制中选择:全部、无、软失败、中和或拒绝。
- 所有机制将接受来自已通过你的SPF检查的发件人的所有电子邮件。
- 没有将拒绝所有通过你的SPF检查的发件人。
- softfail将接受来自未通过SPF检查的发件人的电子邮件,但将其标记为可疑的。
- 中立说明你既不拒绝也不接受从你的域中发出的信息--这基本上是对信息是否应该被接受或拒绝的一种 "无意见 "的姿态。
- 拒绝将拒绝未通过SPF检查的邮件。
使用 PowerDMARC 简化 SPF 记录语法!
<h2>SPF Record Syntax Qualifiers
SPF记录语法中的 "限定词 "有助于表明SPF记录的范围。这主要是用来表明一个特定的IP地址是否被授权代表你的域名发送电子邮件。
资格赛 | 结果代码 | 解释 |
+ | 通过 | 是唯一没有负面含义的限定词。它表明该域名的安全记录不包含任何错误或警告,并被认为是安全的。 |
- | 失败 | 表示该域名的安全记录包含错误或警告,使其不能被视为安全。
|
~ | 软故障 | 表示域名的安全记录包含错误或警告,这并不妨碍它被认为是安全的,但可能表明DNS解析的问题或与DNS信任锚有关的其他问题。 |
? | 中性 | 表示该域名没有SPF记录,或者它的记录在语法上是正确的,但是在与你的信任IP地址列表中的一个(或多个)发送服务器进行检查时,没有匹配任何发送服务器。 |
使用 PowerDMARC 简化 SPF!
SPF记录语法机制
机制在 SPF 记录的语法中被用来告诉接收服务器应该使用什么样的认证机制。有两种类型的机制。
- 发件人可以指定一套特定的机制。
- 或者它可以指定所有机制都被允许。
机制 | 宗旨 | 指令适用于以下情况 | 实施 |
a | 定义了域名的DNS A记录为授权。如果这个指令没有被指定,那么就使用当前的域名。
|
可以在查询包含发件人IP地址的域名中的A或AAAA记录时应用。 | a
a/<prefix-length> a:<domain> a:<domain>/<prefix-length> |
所有 | all指令总是匹配的,它定义了所有其他来源的策略。 | 这个机制应该永远适用,而且这个机制永远是匹配的。 | 所有 |
存在 | 检查A记录对一个给定的域名是否有效。它的工作原理是查看该域名上的所有A记录,看看其中是否有与你的SPF记录中的标准相符的记录。 | 当所述域名上有任何A记录或根据RFC7208的其他标准被授权时,适用。 | exists:<domain> |
包括 | 这个机制的目的是指定域名并搜索匹配,以及在域名没有有效的 SPF 记录时返回一个永久错误。 | SPF 记录中的 "包含 "机制可以用来在一个域名的记录中包含其他 SPF 记录。如果一个域名没有 SPF 记录,但另一个域名有,而且这个域名的 IP 地址与发件人的 IP 地址相匹配,那么,"包括 "机制将导致具有匹配 IP 地址的域名被用于授权目的。
|
include:<domain> |
ip4 | 你可以用 "ip4 "指令指定一个IPv4范围,以及一个表示该范围长度的前缀。如果没有指定前缀,则假定为/32。 | 如果这些条件中的任何一个为真,"ip4 "机制将适用。
- 指定的IPv4地址与你的SPF记录中的一个IP地址相匹配。
- 指定的IPv4子网包含发件人的IP地址。 |
ip4:<ip4-address>
ip4:<ip4-network>/<prefix-length> |
ip6 | 你可以用 "ip4 "指令指定一个IPv6范围,以及一个表示该范围长度的前缀。如果没有指定前缀,则假定为/128。 | 如果这些条件中的任何一个为真,"ip6 "机制将适用。
- 指定的IPv6地址与你的SPF记录中的一个IP地址相匹配。
- 指定的IPv6 子网包含发件人的 IP 地址。 |
ip6:<ip6-address>
ip6:<ip6-network>/<prefix-length> |
mx | SPF记录中定义的 "mx "机制,将域名系统(DNS)的邮件交换器(MX)记录定义为授权。 | DNS MX记录决定了哪个服务器负责代表该域名接受电子邮件。DNS MX记录包含一个IP地址和每个服务器的优先级值,可用于接受邮件。
当一个域名的MX记录包含一个与发件人的IP地址相匹配的IP地址,那么这表明这个发件人被授权代表这个域名发送电子邮件。 |
mx
mx/<prefix-length> mx:<domain> mx:<domain>/<prefix-length> |
ǞǞǞ | ptr机制使用发送IP地址的反向主机名或子域来定义目标域名。 | 仅适用于查询或指定的域至少有一条 MX 记录,且该 MX 记录包含一条PTR 记录,其中包含发件人 IP 地址的 FQDN。 | ǞǞǞ
ptr:<domain> |
SPF记录语法修改器
在 SPF 记录的语法中,修饰语可以用来改变 SPF 记录的默认行为。修饰语可以用来指定规则的例外情况,也可以用来向接收者提供额外的信息。
修改器 | 宗旨 | 实施 |
曝光 | exp "修饰符是一个值,它指定了一个解释,说明为什么信息被拒绝。它的目的是帮助发件人避免某些类型的问题,并可以用来通知他们关于他们的信息不被接收服务器接受的具体原因。 | exp=<domain> |
重定向 | 重定向修饰符是一个字符串,它取代了 SPF 记录中的整个域名。这个修饰符的目的是将所有发送到该域名的邮件重定向到另一个服务器。这对于有多个MX记录的域名或已经重新分配给另一家公司但仍在使用相同的电子邮件地址的域名可能很有用。 | redirect=<domain> |
什么是SPF记录?
SPF记录是一种DNS记录,用于识别哪些服务器被允许代表你的域名发送电子邮件。它通过列出已被授权为你的域名发送电子邮件的服务器来做到这一点;如果任何其他服务器试图代表你的域名发送电子邮件,它将被拒绝为未经授权的发件人。
SPF 记录的目的是防止恶意用户发送发件人字段中包含您的域名的伪造电子邮件。如果攻击者通过欺骗或伪造你的域名,从你的服务器发送大量垃圾邮件,就会发生这种情况。
SPF是如何工作的?
1.创建一个 SPF 记录的语法
你在你的DNS服务器中创建一个SPF记录语法,指定哪些IP地址被允许从你的域名发送电子邮件。这意味着,如果有人试图从你的域名发送欺骗性的电子邮件,他们的信息将会失败,因为他们的邮件服务器的IP地址不会被列为批准的服务器之一。
例如,如果你希望只有Gmail账户能够从你的域名发送邮件,而不是Outlook账户,那么你可以在你的SPF记录中添加以下一行。
v=spf1 a mx include:_spf.google.com ~all
这告诉服务器,从IP地址以_spf.google.com结尾的任何主机发出的任何信息都应该被认为是有效的(m),而所有其他信息都应该被丢弃(a)。
你可以使用我们的 SPF记录生成器工具,现在就开始创建一个免费的记录!
2.DNS查询
当电子邮件发件人试图发送邮件时,收件人服务器会对发送域进行DNS查询,看看是否有SPF记录,这被称为 "认证"。 SPF错误.
如果没有 SPF 记录,那么认证就会失败,邮件就不会被传递。如果有一条 SPF 记录,那么 SPF 服务器会在 TXT 记录中检查 SPF 记录中指定的主机名的 IP 地址。
如果没有指定IP地址,那么它将无法认证。否则,它将按照TXT记录中出现的顺序,对指定的每个IP地址进行A查询。
返回 NXDOMAIN 或 NOERROR 结果代码的 IP 地址将被视为 SPF 服务器授权的,其主机名将被添加到该域的授权发送主机列表中。
3.认证结果
邮件服务器要么将邮件发送给收件人,要么根据SPF记录中指定的规则将其标记为拒绝接收。
认证结果可以有三种形式。通过,中立,或失败。
通过意味着邮件服务器接受该邮件是合法的并允许它被投递。中立意味着在DNS中根本没有该域名的记录或无效的记录,所以无法知道这是否是来自该域名的合法邮件。失败的意思是,这条信息的某些方面不够真实,无法被传递。
例如,一个IP地址为'234.2.1.2'的邮件服务器从'[email protected]'发送一封邮件。入站服务器将咨询域名服务(DNS),以确定该IP地址是否被授权代表'apple.com'域名发送电子邮件。如果是,该邮件将被送达;否则,它将被丢弃或标记为垃圾邮件,即根据SPF记录中指定的机制进行分类。
结束语
SPF 记录是域名 DNS 记录的重要组成部分。它告诉其他邮件服务器如何验证声称来自您的邮件,这意味着您必须正确配置 SPF 记录。不过,请确保将 SPF 与 DMARC 配对,以加强对电子邮件泄露和欺骗的保护。
追踪 SPF记录查询工具可以帮助你做到这一点。这个查询工具会让你快速了解你当前的 SPF 记录是什么样子的,包括它是否缺少任何必要的字段。生成器会让你从头开始创建一个 SPF 记录的语法,包括所有必要的字段,这样它就可以马上被添加到你的 DNS 记录中。
- PowerDMARC 与 Loons 集团合作加强卡塔尔的电子邮件安全- 2025 年 3 月 13 日
- 电子邮件网络钓鱼和在线匿名:您能在暗网上完全躲避攻击者吗?- 2025 年 3 月 10 日
- 什么是 DNS 劫持?检测、预防和缓解- 2025 年 3 月 7 日