岗位

学习和实施SPF的概念对于技术驱动的企业来说非常重要。它可以保护他们免受网络钓鱼、垃圾邮件的潜在风险。 BEC攻击等等。SPF或发件人策略框架的工作原理是使用一个 SPF记录,其中包括 SPF 语法。

这篇博客大致谈到了SPF语法表、SPF机制、SPF限定符和SPF修改器--所有这些都是利用技术协议对电子邮件认证的概念进行有力掌握的必要条件。 

Benginners的SPF语法 

SPF记录是一个DNS记录,包括一个允许使用你的官方域名发送电子邮件的所有IP地址的列表。当列表之外的服务器使用该域名发送电子邮件时,它将被视为未经授权。因此,它的条目会被接收者的邮箱拒绝。这就保护了你的公司名称不被卷入黑客发起的恶意活动中。 

公司应该创建并 检查SPF记录以避开通过使用他们自己的域名进行的网络钓鱼攻击。超过 2.55亿次网络钓鱼攻击仅在2022年上半年就记录了超过2.55亿次的网络钓鱼攻击!想象一下,实施SPF并学习SPF语法已经变得多么关键。

SPF记录有指导收件人的服务器检查和验证从你的域名收到的邮件的指示。它还告诉人们如何处理那些未能通过验证的邮件。一个特定的组件代表所有的指令。  

让我们用一个SPF记录的例子来分解每个元素.这就是 SPF 语法的样子。

v=spf1 ip4:123.1.5.0 ip4:100.5.2.1 include:exampledomain.com ~all

每个元素的功能如下。

  • v=spf1 向接收服务器指明了一个 SPF 记录。所有的 SPF 记录必须这样开头。
  • 这个 SPF 语法的下一部分告诉了允许使用你的域名发送邮件的 IP 地址。在上面的例子中,我们有ip4:123.1.5.0和ip4:100.5.2.1
  • 上述例子中的'include:exampledomain.com'部分指定了允许使用该域名发送邮件的第三方。include'标签表示收件人服务器要验证所包含的域名(exampledomain.com)的SPF记录是否也被授权。你可以在一个 SPF 记录中添加多个域名;但是,这些域名必须是有效的。
  • 所有 元素指示接收服务器,如果邮件是从 SPF 记录中指定的列表之外的任何域或 IP 地址发出的,则将其标记为 SPF 不通过。

高级SPF语法

SPF 语法表是用一个 DNS TXT 记录定义的,其中有一串文字。它总是以'v='元素开始,指定所使用的SPF版本,到目前为止只有一个版本。

所有的SPF记录都有其特定的条款,作为哪些主机被允许使用官方域名共享信息的规则,它也可能显示一些额外的信息。 

在高级 SPF 语法中 中,我们将分解出 以下三个部分:SPF 机制、SPF 鉴定人和 SPF 修改人。

SPF机制

  1. 所有:它总是匹配,并且是在 SPF 记录末尾添加的最后一个机制。它对不匹配的 IP 显示默认的结果,如'-all'。
  2. A:它表示一个域名有AAAA或 A记录作为匹配,因为它可以整理出发件人的地址。如果这个DNS SPF记录的语法没有被指定,则使用当前的域名。
  3. ip4:如果发件人与 SPF 记录中给定的 ipv4 地址范围相连接,则匹配为正。你可以用一个前缀来指定范围的长度。 当没有前缀时,就使用 /32。
  4. ip6:当发件人与指定的ipv6地址范围结盟时,匹配是积极的。它是用ip4指令和一个表示范围长度的前缀添加的。当没有前缀时,就使用/128。
  5. 术语:它允许IP地址与指定的MX记录中的IP地址相同的发件人。 MX记录由一个IP地址和每个服务器接受邮件的优先级值组成。
  6. PTR:它指定了授权域,以帮助解决IP地址到子域或域名。对于所有完全匹配的域或子域,将进行前向查询以获得IP地址。

这种机制被认为是耗时和不可靠的,因为它需要多次查询。根据RFC 7208指南,不推荐使用这种机制。 RFC 7208指南不推荐使用。.

  1. 存在的:它对输入的域名进行DNS A记录搜索。当找到一个有效的A记录时,无论实际查询结果如何,都是匹配成功。
  2. 包括:它通过说明第三方电子邮件发件人的域名来授权他们。只有当发件人的IP地址与所列域的SPF记录中提供的IP地址或域相匹配时,才会被授权。

SPF限定词

当一个机制没有限定词,而仍然有一个成功的匹配时,SPF 认证就通过了。8种机制中的每一种都与下面提到的四个限定词之一相联系。

资格赛 结果 接收服务器采取的行动 
+ 通过 邮件成功通过SPF认证,服务器可以交换邮件。邮件被标记为真实。如果没有限定词,这是默认应用的动作。
- 失败 由于发送服务器不属于该列表,所以邮件认证失败。 邮件可能被收件人的邮箱拒绝。
~ 软故障 接收者的邮箱接受了该邮件;但是,该邮件被标记为可疑邮件,并落入垃圾邮件文件夹。
? 中性 电子邮件既没有通过也没有未通过认证。所采取的行动没有说明,电子邮件被接收者接受。

SPF调节剂

SPD 修改器负责确定 SPF 语法的工作参数。它包括由'='符号分隔的名称或值对,如果有的话,它分享额外的细节和规则的例外。

修改器只出现一次,而且只出现在 SPF 记录的最后一节。在这个过程中,所有未识别的修饰符都会被忽略。'重定向'修饰符用于引导其他 SPF 记录进行认证。当你想让一个以上的域名拥有相同的 SPF 记录内容时,就可以使用它。

include'机制用于允许以你的名义或使用你的企业名称发送邮件的第三方域名。'exp'修饰语指定了当机制匹配时,接收服务器返回 Fail SPF Qualifier 的原因。

SPF记录的准则

在使用 SPF 语法表创建 SPF 记录时,请牢记以下几点。

  • 你不能为一个域名调整多个 SPF 记录。
  • 一个 SPF 记录不能有任何大写字母;否则,你会看到错误。
  • 不应该有超过255个字符。任何超过这个数字的字符串将导致认证失败。
  • 如果有任何 SPF 机制解析到同一个域,则删除。
  • 删除任何不使用的ip4和ip6 SPF机制。另外,检查你是否可以合并任何地址范围。
  • 你可以创建子域来存储 SPF 信息。这可以用'_spf.domain.com'来完成。这对大型 IT 公司来说是值得推荐的,因为他们有多个 IP 地址可以添加到一个 SPF 记录中。

你可以在不使用SPF或不了解SPF格式的情况下发送电子邮件,但这并不安全。SPF为收件人的邮箱提供商增加了一个额外的信任指示,所有使用你的域名发送的真实邮件都会落入邮箱,而不是被标记为垃圾邮件。

SPF并不是一个万无一失的方法;因此,你必须将它与其他的 电子邮件认证 协议,如DKIM。 DMARC, 和 BIMI以提高电子邮件的交付能力。

由于这些协议对电子邮件认证过程至关重要,而且所有以电子邮件为导向的企业都必须了解这些协议,因此我们将在本博客中重点讨论SPF记录格式在本博客中。

什么是SPF?

SPFSPF是发件人策略框架的简称,是最常见的电子邮件认证协议之一。它使用一个授权使用你的域名发送电子邮件的IP地址列表来工作。该列表通常包括你的雇员、股东和直接使用你的域名发送电子邮件的第三方的IP地址。

如果你已经实施了SPF,任何从列表之外的IP地址发出的电子邮件都会被收件人的邮箱视为未经授权。

如何使用SPF对电子邮件进行认证?

你需要在你的DNS上发布一个有效的SPF记录(TXT格式)来实现这个协议。当一封电子邮件从你的域名发出时,接收者的邮件服务器会将发件人的IP地址与你DNS上的SPF记录进行交叉检查。如果它在名单上,验证就会通过,邮件就会落入收件箱。然而,如果它不在名单上,验证就会失败,电子邮件就不会到达目的地。

实施后,你必须使用SPF检查器定期监测你的域名活动。 SPF检查器以确保它不在黑客的雷达上。这可以防止 鱼叉式网络钓鱼诈骗,以及试图使用你的公司名称的勒索软件攻击。

SPF格式

SPF 记录很复杂,有一个典型的格式,很难理解。在这里,我们将讨论 SPF 记录的语法和 SPF 记录的结构--SPF 记录格式的头和心.

SPF记录。基本语法

SPF 记录是一个 DNS 记录,它列出了所有允许使用你的电子邮件域名发送电子邮件的 IP 地址。这就是SPF记录语法的样子。

v=spf1 ip4=193.0.1.0 ip4=193.0.1.1 include:sampleender.net -all

让我们来看看这其中包括的元素。

  • v=spf1-它告诉服务器,这包含一个 SPF 记录。每条 SPF 记录都必须以这个字符串开始。
  • ip4=193.0.1.0 ip4=193.0.1.1-它表示允许使用特定域名发送电子邮件的IP地址。
  • 包括:examplesender.net。它 告诉第三方被授权发送电子邮件。include "标签引导收件人服务器验证所包含的域名(这里是指samplesender.net)的SPF记录。你可以在一个 SPF 记录中添加多个域名。
  • -所有:告诉收件人服务器拒绝来自未经授权的IP地址的电子邮件,基本上不包括在列表中的那些。 

SPF记录。高级语法

按照SPF记录的格式的语法,它总是以'v='元素开始。它告诉人们 SPF 的版本;目前,只有一个版本,所以所有的 SPF 记录格式都是这样开始的。

SPF 记录的语法有三个主要元素;SPF 机制、SPF 资格证书和 SPF 修改器。让我们来看看它们是什么。

机制

以下是八个机制

  1. ALL:这意味着总是有一个匹配的。对于不匹配的IP,你会看到默认的结果,如'-all'。
  2. A:域名与A或AAAA地址记录相匹配,因为它们可以被解析到发件人的地址。
  3. IP4:当发件人与给定的IPv4地址范围相联系时,该匹配有效。
  4. IP6:当发件人与给定的IPv6地址范围相联系时,该匹配有效。
  5. MX:发件人的电子邮件地址只有在他们的域名包括一个MX记录的情况下才能被验证。
  6. PTR:如果PTR记录属于一个给定的域名,并解析到客户的地址,那么该匹配就被授权。专家不建议使用它,因为它可能会阻止所有使用你的域名发送的电子邮件。
  7. 存在(EXISTS)。如果给定的域名被验证,它就会起作用。这种SPF机制对所有已解决的地址都起作用。 
  8. 纳入。它引用了其他领域的政策。所以,如果通过了,就自动通过。但是,如果包含的策略失败,处理就会继续。 

修改器

修饰语决定了一个 SPF 记录的功能框架。它由名称或值对组成,用'='符号分开,指出额外的信息。你''在 SPF 记录的末尾多次看到它们,在这个过程中,所有未被识别的修饰符都会被忽略。

'重定向'修饰语引导到其他负责高效运作的SPF记录。只要有一个以上的域名被链接到同一个 SPF 记录,专家就会使用它们。如果一个实体控制了所有的域名,就必须使用这个修饰语;否则就使用'包含'修饰语。

资格赛

每个机制都可以与四个限定词之一相结合。

'+'表示PASS结果

'?'为中性结果,解释为无的政策。

'~'代表SOFTFAIL。通常情况下,返回SOFTFAIL的信息被接受,但被标记。 

'-'代表FAIL,邮件被拒绝。

总结

SPF可以防止网络攻击者利用你的品牌名称和声誉。你可以阻止黑客使用你的域名发送的电子邮件到达他们的目标受众。这通过征集并只允许受信任的实体使用你的域名发送电子邮件来实现。 

在了解了 SPF 记录格式的结构和组成部分之后,你可以使用 SPF记录生成器 如果你还没有实施该协议。

发件人政策框架(SPF)记录是基于域的消息验证、报告和一致性(DMARC)的一个重要部分。DMARC)协议的重要组成部分,它规定了一种防止发件人地址伪造的方法。

SPF 记录的设置很复杂,如果配置不当,就会出现实施问题。而且,SPF 记录语法使用了一些特定的术语,在第一次遇到时可能会让人困惑。因此,在这篇博文中,我们看看 SPF 记录的语法,以及你在配置它们时需要考虑的问题。

什么是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记录的语法

SPF 记录的语法包括几个元素--指令、限定词和机制。

指令是 SPF 记录语法的第一部分。它们指示如何解释记录的其余部分。SPF 记录中可以出现三个指令:v=spf1、a 和 mx。v 指令表示这条记录是一条 SPFv1 记录;a 指令表示这条记录是一条 SPFv2 式的认证失败报告;mx 指令指定了一个域的邮件交换服务器列表。

限定符指定了你想把 SPF 记录放在 DNS 区域的什么地方:exim4、enduser 或 _spf。这些限定词告诉邮件接收者,当他们在检查你的 SPF 记录时,应该在哪里寻找这些记录。

机制是用来表明你想如何处理那些未能通过 SPF 检查的电子邮件地址。你可以从几个机制中选择:全部、没有、软故障、中和或拒绝。

  • 所有机制将接受来自已通过你的SPF检查的发件人的所有电子邮件。
  • 没有将拒绝所有通过你的SPF检查的发件人。
  • softfail将接受来自未通过SPF检查的发件人的电子邮件,但将其标记为可疑的。
  • 中立说明你既不拒绝也不接受从你的域中发出的信息--这基本上是对信息是否应该被接受或拒绝的一种 "无意见 "的姿态。
  • 拒绝将拒绝未通过SPF检查的邮件。

SPF记录语法限定词

SPF记录语法中的 "限定词 "有助于表明SPF记录的范围。这主要是用来表明一个特定的IP地址是否被授权代表你的域名发送电子邮件。

资格赛 结果代码 解释
+ 通过 是唯一没有负面含义的限定词。它表明该域名的安全记录不包含任何错误或警告,并被认为是安全的。
- 失败 表示该域名的安全记录包含错误或警告,使其不能被视为安全。

 

~ 软故障 表示域名的安全记录包含错误或警告,这并不妨碍它被认为是安全的,但可能表明DNS解析的问题或与DNS信任锚有关的其他问题。
? 中性 表示该域名没有SPF记录,或者它的记录在语法上是正确的,但是在与你的信任IP地址列表中的一个(或多个)发送服务器进行检查时,没有匹配任何发送服务器。

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记录包含发件人IP地址的FQDN的PTR记录时才适用。 ǞǞǞ

ptr:<domain>

SPF记录语法修改器

在 SPF 记录的语法中,修饰语可以用来改变 SPF 记录的默认行为。修饰语可以用来指定规则的例外情况,也可以用来向接收者提供额外的信息。

修改器 宗旨 实施
曝光 exp "修饰符是一个值,它指定了一个解释,说明为什么信息被拒绝。它的目的是帮助发件人避免某些类型的问题,并可以用来通知他们关于他们的信息不被接收服务器接受的具体原因。 exp=<domain>
重定向 重定向修饰符是一个字符串,它取代了 SPF 记录中的整个域名。这个修饰符的目的是将所有发送到该域名的邮件重定向到另一个服务器。这对于有多个MX记录的域名或已经重新分配给另一家公司但仍在使用相同的电子邮件地址的域名可能很有用。 redirect=<domain>

结束语

SPF记录是你的域名的DNS记录的一个重要部分。它告诉其他邮件服务器如何验证那些声称来自你的邮件,这意味着你拥有一个正确配置的SPF记录很重要。然而,请确保你将SPF与DMARC配对,以加强对电子邮件妥协和欺骗的保护。 

追踪 SPF记录查询工具可以帮助你做到这一点。这个查询工具会让你快速了解你当前的 SPF 记录是什么样子的,包括它是否缺少任何必要的字段。生成器会让你从头开始创建一个 SPF 记录的语法,包括所有必要的字段,这样它就可以马上被添加到你的 DNS 记录中。