像发件人策略框架 (SPF) 这样的安全技术,在这个饱受网络攻击和垃圾邮件困扰的世界里,可以说是无价之宝。
从个人、企业到政府机构,网络安全是每个人都十分关注的问题。电子邮件欺骗、网络钓鱼攻击、垃圾邮件和其他恶意阴谋等安全风险已经变得十分猖獗,其攻击目标包括数据、应用程序、网络和人员。
因此,网站所有者可能会损失数据、资金、声誉和客户信任。而电子邮件是最容易受到攻击的途径之一。
SPF 是一种流行的电子邮件验证技术,可以通过检测电子邮件欺骗和防止垃圾邮件来帮助抵御这些攻击。使用 SPF 记录还有助于防止您的电子邮件在到达目标受众之前被其他服务器标记为垃圾邮件。
在本文中,我们将讨论 SPF 记录以及为什么必须使用这种技术来确保电子邮件安全。
SPF 的含义是什么?
在了解什么是 SPF 记录之前,我们先来了解一下 SPF。
发件人策略框架(SPF)是指一种验证电子邮件的方法,目的是在电子邮件发送过程中发现伪造的发件人地址。
SPF 工作程序 (图片来源:DMRC)
攻击者经常伪造发件人地址,使其看起来像真实的普通用户地址。SPF 可以帮助发现这些邮件并将其隔离,使他们无法实施攻击。
SPF 允许接收端的服务器检查看似来自给定域的电子邮件实际上是否来自该域的授权 IP 地址。包含特定域的所有授权 IP 地址和主机的列表可以在该域的 DNS 记录中找到。
什么是 SPF 记录?
SPF 记录是一种发布在 DNS 区域文件中的 TXT 记录,其中包含可代表您的域名发送电子邮件的所有授权邮件服务器的列表。它是 SPF 的一种实现方式,必须添加到您的 DNS 中,以帮助识别和减少垃圾邮件发送者以您的域名名义发送伪造地址的恶意电子邮件。
SPF 记录 (图片来源:Pair)
由于大多数电子邮件服务器不进行身份验证,因此垃圾邮件发送者会使用伪造的发件人地址创建电子邮件,从而进行电子邮件欺骗。然后,他们通过伪造电子邮件标头来编辑电子邮件的发件人地址,使其看起来像是从您的域名发送的电子邮件。这一过程被称为欺骗,垃圾邮件发送者借此欺骗用户,获取他们的私人数据并造成名誉损失。
如今,几乎所有恶意电子邮件都带有虚假地址。因此,被攻击者窃取电子邮件地址的人名誉受损,浪费时间修复退回的邮件,IP 地址被列入黑名单等。
因此,有必要设置 SPF 记录,以提高电子邮件的可送达性和安全性。
SPF 记录语法
一般来说,SPF 记录是使用 TXT 记录类型定义的(不要与传统的 SPF 文件类型记录混淆)。
SPF 记录以 “v” 开头,表示使用的 SPF 版本。目前,该版本必须是 “spf1″,因为它能被最广泛的邮件交换服务器识别。
之后的其他术语定义了主机从给定域发送电子邮件的规则。这些术语还可为 SPF 记录处理提供更多信息。
SPF 记录示例
以下是 SPF 记录的外观及其各部分的含义:
v=spf1 a include:_spf.google.com -all
v=spf1
是 SPF 第 1 版,是将 TXT 记录标识为 SPF 记录的组件。a
授权域的 A 记录中检测到的主机发送电子邮件。include:
用于授权发件人可以代表某个域(此处为 google.com)发送电子邮件。-all
告诉接收方的服务器,未在此 SPF 记录中列出的地址未经授权不得发送任何电子邮件。它还告诉服务器拒绝此类地址。
SPF 记录如何工作?
任何计算机都可以发送声称来自 SMTP 允许的任何地址的电子邮件。攻击者和骗子利用这一点,使用难以追踪的伪造地址。
网络钓鱼攻击中也使用了类似的技术,攻击者通过模仿用户经常访问的真实网站或服务,诱骗用户透露其个人信息或商业信息。
为了应对这种情况,SPF 使域所有者能够使用 DNS 记录来定义哪些计算机有权从该域发送电子邮件。此外,收件人在收到电子邮件正文之前,通过 SPF 记录验证地址后,可以拒绝来自未经授权来源的电子邮件。
正如我们在上面的示例中看到的,SPF 记录以 TXT 条目的形式列出了所有授权电子邮件服务器的 IP 地址。您可以在 SPF 条目中设置一个或多个授权 IP 地址来发送电子邮件。
SPF 工作模型 (图片来源:CyberPunk)
当授权用户发送启用了 SPF 记录的电子邮件时,收件人的邮件服务器会执行 DNS 查找,以发现 TXT 条目并确定发件人的 IP 地址是否经过授权。
如果发现没有 SPF 记录,就会向发件人发送 “硬失败” 或 “软失败” 信息。
如果接收方的服务器拒绝接受该域,则未经授权的用户或客户端必须收到一条拒绝消息(”硬失败”)。但如果客户端恰好是消息传输代理(MTA),在这种情况下,就会向实际的发信地址发送一封退回邮件(”软失败”)。
SPF 记录的组成
SPF 记录由几个不同部分组成,首先是版本号。
版本号
所有 SPF 记录都以版本号开始,版本号必须由定义有效发件人的机制授权。SPF 版本号(如 spf1)后面是一个由机制、量化指标和修饰符组成的字符串。
机制
机制描述了被指定为特定域授权出站邮件发送者的主机。SPF 记录可以有零个或多个机制。SPF 记录中的一些常见机制包括:
a
: 指定 DNS A 记录中的所有 IP 地址(例如:v=spf1 a:google.com -all
)。它在最后使用,并定义处理不匹配任何先前机制的发件人 IP 的规则。mx
: 定义指向属于每台主机的 MX 记录的所有 A 记录。示例:v=spf1 mx mx:google.com -all
include:
: 定义其他授权域(例如:v=spf1 include:outlook.microsoft.com -all
)。如果该特定域的策略通过,那么该机制也将通过。如果要使用其他域的策略实现完全授权,则需要重定向扩展。ptr
: 它定义了指向每个主机 PTR 记录的所有 A 记录(例如:v=spf1 ptr:domain.com -all
)。不过,如果可能,您必须避免使用这种机制。all
: 匹配所有远程和本地 IP 地址,在 SPF 记录末尾使用(例如:v=spf1 +all
)。exists
: 根据 SPF 定义,这指定了作为例外情况签出的域。当对给定域运行查询时,将在获得结果后匹配该域。它很少使用,但可提供更复杂的匹配,如 DNSBL 查询。ip4
: 用于定义 IPv4 地址,例如 v=spf1 ip4:192.0.0.1 -all。ip6
: 用于定义 IPv6 地址,例如,v=spf1 ip6:2001:db8::8a2e:370:7334 -all
这些定义了授权从域发送电子邮件的所有 IP 地址。
量化器
机制有一个量化器来定义如何处理匹配。
电子邮件服务器会将发件人的 IP 地址与机制中的授权 IP 地址列表进行比较。当它在 SPF 机制中找到匹配的 IP 地址时,就会执行结果处理规则。默认规则是 pass
或 +
。
四个量化符如下:
+
表示通过结果。如果地址通过测试,则必须接受该信息(例如:v=spf1 +all
)。您可以省略它,因为例如+mx
和mx
是相同的。-
表示 HARDFAIL,指示地址未通过测试,邮件必须被拒收(例如:v=spf1 -all
)。~
表示 SOFTFAIL,读作斜杠。它表示该地址未通过测试,但结果并不确定。您可以接受并标记不符合要求的电子邮件(例如:v=spf1 ~all
)。?
代表 “中立”(NEUTRAL),表示该地址没有通过或未通过测试,您可以自由选择接受或拒绝(例如:v=spf1 ?all
)。
如果 SPF 记录中没有量化符,则表示应用了 +all
量化符。
修饰符
修饰符可以扩展框架。它们是由 =
符号分隔的值或名称对,可提供更多信息。SPF 记录也可以有 0 个、1 个或 2 个修饰符,但它们只能出现一次,即在记录末尾。
使用最广泛的两个修饰符是
redirect
: 用于向其他域发送查询。与其他机制和修饰符相比,该修饰符很容易理解,当您有多个域,需要在所有地方使用相同的 SPF 记录时,就会使用该修饰符。exp
: 用于在匹配机制中包含 FAIL 定量符时提供解释。该解释将放在 SPF 日志中。
为什么需要 SPF 记录?
如果您的域名有 SPF 记录,就会降低收到恶意伪造电子邮件的几率,从而增强电子邮件的安全性,防止网络攻击者和垃圾邮件发送者。
SPF 记录还能提高域名的可信度,降低被垃圾邮件过滤器除名的几率。这有助于合法电子邮件更快地到达您的邮箱。
此外,在您的域名中添加 SPF 记录对于验证哪些发件人可以代表您的域名发送电子邮件越来越重要。它有很多好处,我们将在下文中探讨。
提高电子邮件安全性
电子邮件安全 (图片来源:Zero 1 Zero Innovations)
SPF 记录有助于提高个人和企业的电子邮件安全性。在网络安全时代,全球各地的用户都受到网络犯罪的影响,您必须采取措施保护收件箱。
添加 SPF 记录就是一种保护收件箱的方法。通过增加电子邮件攻击者的难度,垃圾邮件就不太可能进入您的收件箱,从而提高了您的电子邮件安全性。
提高电子邮件的可送达性
如果一个域名没有 SPF 记录,其电子邮件可能会被退回,或被服务器标记为垃圾邮件。如果这种情况反复发生,域名向受众成功发送电子邮件的能力(也称为可送达性)就会降低。
这就成为个人和企业使用此类域名联系目标客户、员工、供应商和其他相关人员的障碍。
增强域名声誉
域名声誉 (图片来源:Rejoiner)
如果您的用户经常收到攻击者冒充贵公司发送的电子邮件,您的域名信誉就会受到威胁。不良分子还可能通过暴露客户和员工的个人信息来伤害他们,这将进一步损害您的声誉。
因此,在 SPF 记录的帮助下保护您的域名免受此类事件的影响至关重要。通过限制仅向记录中列出的授权 IP 地址发送电子邮件,您可以防止垃圾邮件并降低此类攻击的可能性。
DMARC 合规性
电子邮件验证系统 DMARC 可确保只有授权用户才能代表您的域名发送电子邮件。
其政策还指示服务器如何处理 DKIM 和 SPF 检查失败的电子邮件。DMARC 规定,此类电子邮件必须标记为拒收、垃圾邮件或已送达。
DMARC 还允许域管理员接收突出显示电子邮件活动的报告,并对其策略做出相应调整。
谁需要 SPF 记录?
如果您向客户、员工或供应商发送商业和交易电子邮件,则需要为您的域名设置 SPF 记录。使用不同的电子邮件安全解决方案可提高电子邮件的可送达性和安全性。
- 企业和个人:有了 SPF 记录等电子邮件验证技术,企业和个人就可以验证电子邮件是代表他们的域名发送的,还是有人为了个人利益而发送的,或者是在欺骗您的同事。您还可以通过使用 SPF 记录和 DMARC 或 DKIM,为您的所有电子邮件指定全面的验证策略,从而使验证功能更加强大。
- 互联网服务提供商:SPF 记录有利于 ISP。如果他们没有正确设置 SPF 记录,就可能不得不再次执行电子邮件过滤。此外,验证失败还意味着他们的电子邮件有可能被许多服务器拦截或识别为垃圾邮件。
因此,如果您希望您的电子邮件能顺利到达预定目的地,使用 SPF 记录将确保您的电子邮件能顺利到达预定目的地,并为您的域名和电子邮件提供更好的安全性。它可以过滤钓鱼者和垃圾邮件发送者的伪造电子邮件,保护您的声誉。
如何创建、添加和编辑 SPF 记录
以下是添加、创建和编辑 SPF 记录的方法。
如何创建 SPF 记录
创建 SPF 记录 (图片来源:SendPulse)
在开始创建 SPF 记录之前,有必要先了解一下您的电子邮件发送设置是否要求您首先创建 SPF 记录。
因此,首先要了解返回路径。SPF 与返回路径中使用的域有关,而不是 FROM 域。因此,在开始时,请弄清楚您发送邮件时使用的返回路径。
此外,某些电子邮件发送服务(ESP),如 Google,可以在其返回路径中使用您的域名。这要求您为自己的域名创建一个 SPF 记录。
但是,其他 ESP(如 Postmark)可以在返回路径中使用自己的域名,在这种情况下,您不需要自己创建 SPF,而必须由您的 ESP 来创建。
现在,您已经知道为什么需要设置 SPF 记录了,下面让我们逐步了解如何设置 SPF 记录。
第 1 步:确定发送电子邮件的 IP 地址
企业可以从多个地方发送电子邮件。因此,在创建 SPF 记录的第一步,您必须确定从您的域中使用哪些 IP 地址发送电子邮件。在文本文档或电子表格中列出所有 IP 地址和相应的邮件服务器。
此外,还要找出以品牌名义发送电子邮件的所有途径。可能是网络服务器、微软 Exchange 等公司内部邮件服务器、ESP 的邮件服务器、客户邮箱提供商的邮件服务器或第三方邮件服务器。
但如果你不确定自己的 IP 地址,可以联系 ESP,获取包含与账户相关的所有 IP 地址的完整列表。另一种方法是与系统管理员讨论。他们可以列出贵公司使用的所有 IP 地址。
第 2 步:列出发送域
一个组织可以拥有许多域名。其中,他们可以将部分域名用于发送电子邮件,而将其他域名用于不同的目的。
在第 2 步中,您需要为您拥有的每个域创建 SPF 记录,无论这些域是否用于发送电子邮件或任何其他目的。
这是因为网络犯罪分子可能会尝试欺骗你可能不会用于发送电子邮件的其他域名,因为这些域名不会受到 SPF 保护,而其他用于发送电子邮件的域名则会受到 SPF 保护。
第 3 步:设置 SPF 记录
SPF 将发件人邮件服务器的 IP 地址与发件人在其 DNS 记录中公布的授权发件人 IP 地址列表进行比较,以验证发件人的身份,确保邮件安全。
要创建 SPF 记录,必须写入 v=spf1
标记,然后写入授权发送电子邮件的 IP 地址。例如:v=spf1 ip4:192.0.0.1 -all
此外,如果您使用第三方解决方案代表您的域名发送电子邮件:
- 在 SPF 记录中添加
include
,指定第三方为合法发件人。例如,可以写成:include:google.com
- 添加完与您的域名相关的所有授权 IP 地址后,在 SPF 记录末尾加上一个标记
-all
或~all
。在这里,-all
标记表示硬 SPF 失败,而~all
标记表示软 SPF 失败。不过,对于主要的邮箱提供商,-all
和~all
都会导致 SPF 失败。但在一般情况下,-all
更为常用,因为它更安全。 - 创建 SPF 记录时不要超过 255 个字符,并避免添加超过 10 个包含语句(也称为 “lookups”)。
现在,您的 SPF 可能看起来像这样:
v=spf1 ip4:192.0.0.1 include:google.com -all
这适用于授权代表您发送电子邮件的域名。但对于其他域,您必须在 SPF 记录中排除修饰符( -all
除外)。
以下是您不用于发送电子邮件的域的 SPF 记录: v=spf1 -all
这就是创建 SPF 记录的方法。然后,发布即可。
第 4 步:发布 SPF 记录
定义好 SPF 记录后,下一步就是在 DNS 中发布它。有两种方法可以做到这一点:
- 与您的内部 DNS 管理员合作,指示他们将 SPF 记录发布到您的 DNS。DNS 服务提供商会为您提供一个仪表板,您可以轻松访问并执行发布任务。
- 您可以直接要求 DNS 服务提供商在 DNS 中发布 SPF 记录。
这样,Gmail、Hotmail、Mailbird 等邮箱接收器就可以请求 SPF 记录。
此外,如果您想更新 DNS 记录,请:
- 登录从域名托管提供商处购买的域名账户
- 选择要更新记录的域名
- 进入存储 DNS 记录的页面,可以是 DNS 管理器
- 创建一条新的 TXT 记录,并将域名定义为 “主机 (Host)” 字段
- 在 “TXT 值 (TXT Value) “字段中填写 SPF 记录,并指定有效时间 (TTL)
- 点击 “添加记录 (Add Record)” 或 “保存”,在 DNS 上发布新的 SPF 记录。
第 5 步:测试 SPF 记录
创建并发布 SPF 记录后,可以使用 SPF 记录检查器来测试 SPF 记录。市场上有许多 SPF 记录检查程序可供选择,如 Dmarcian、Agari、Mimecast 等。
执行测试可帮助您检查 SPF 记录的有效性,并查看包含可代表您的域名发送电子邮件的所有授权服务器的列表。如果看不到列出的合法 IP 地址,可以将发送 IP 地址留下并更新记录。
如何为您的域名添加 SPF 记录
添加 SPF 记录 (图片来源:One)
您必须访问域名的 DNS 控制面板才能添加 SPF 记录。如果您使用的是 Kinsta 等虚拟主机服务提供商,在 DNS 中添加 SPF 记录的过程会更简单。您可以参考文档并按照步骤操作。
一般来说,电子邮件服务提供商会发布 SPF 记录,以便从您的域名发送电子邮件。但是,如果您对此不了解,或者您的 ISP 管理着您的 DNS 记录,您可以将此问题提交给您的 IT 部门。
SPF 记录的局限性
虽然添加 SPF 记录会给您带来电子邮件安全性、可送达性等方面的好处,但它们也有一定的局限性。下面我们就来谈谈这些限制。
DNS SPF 记录
早期的 SPF 版本用于检查发件人域名 DNS TXT 记录中的设置,以方便快速部署和测试。DNS TXT 记录设计为自由格式文本,不附加任何语义。
然而,2005 年,IANA 为 SPF 分配了 99 型资源记录。这导致 SPF 的使用率下降,因为用户对这两种机制感到不知所措,从而产生混淆。2014 年,SPF 停止使用。
报头问题
SPF 最初的设计目的是防止攻击者欺骗电子邮件的收件人地址。但现在许多人只在邮件标题的 “发件人 “字段中进行欺骗,收件人可以看到该字段,而不是由他们的 MTA 进行处理。这增加了欺骗的风险。
虽然您可以使用 SPF 和 DMARC 来检查邮件头的 “发件人” 字段,但您可能需要一些更先进、更强大的解决方案来代替 SPF 防止显示名称欺骗。
此外,如果添加电子邮件流或更换 ISP,更新 SPF 记录也很困难。SPF 记录还可能破坏纯邮件的转发,而且不能保证电子邮件的身份验证。
SPF 记录最佳实践
在了解创建和维护 SPF 记录的最佳实践之前,我们先来谈谈一些一般实践。
- 您的发送 IP 地址必须包含 PTR 记录。它的作用有点像倒置的电话簿,可以让您在查找 IP 地址的同时查找主机名。不过,用于互联网连接的公共互联网接入点和住宅 IP 地址通常没有 PTR 记录。当需要验证传入连接时,就会用到 PTR 记录。
- 使用电子邮件验证系统。您可以使用三种电子邮件验证系统中的一种或全部: SPF、DMARC 和 DKIM。使用电子邮件验证的合法发件人很容易被识别出来,而不使用的发件人则会面临垃圾邮件的安全风险。虽然使用这些系统并不一定能保证您的电子邮件成功登陆到目标收件箱,但它能提供更多的保护。这总比没有任何电子邮件安全机制来监控和维护发件人的声誉要好。
- 永远不要使用或包含带有
+all
的记录。只有在~all
或-all
机制中才能有效地使用all
。
说完这些一般做法,我们再来谈谈 SPF 记录的一些最佳做法。
使用有限的 SPF 记录
SPF 包含大量强大而复杂的机制,但没有必要在 SPF 记录中使用所有这些机制。请保持 SPF 记录的简单性,只定义所需的 SPF 记录数量,不要超过这个数量。
include:
机制也是如此。尽量少用,避免嵌套包含。这样可以防止超过 10 次 DNS 查询的限制。您还可以一次性添加多个 IP 地址,而不是逐个添加。这样可以简化过程,节省时间。
用 CIDR 符号指定范围
以 CIDR 符号添加范围,因为一个错误就可能极大地改变数值。因此,如果攻击者成功入侵了你的某些系统,而其中一个系统的 IP 地址属于此范围,那么这将是致命的。他们可以滥用经过正确验证的 IP 地址发送垃圾邮件。这可能会损害您的声誉,导致数据丢失,并使您的域名被邮件提供商标记为垃圾邮件。
由于这种风险非常普遍,邮箱提供商已经提高了警惕,并阻止他们认为可疑的域名,以防止此类事件发生。他们限制了 SPF 记录中允许有效的 CIDR 大小范围。
避免使用 +all 语句
避免在 SPF 记录中使用 +all
语句。它可能看起来过于放任,而且很难检测到这类安全问题,因为这些 SPF 记录在语法上是有效的。即使是检查记录的工具和测试解决方案也可能无法识别过度许可的记录。
+all
语句使 SPF 记录真正允许整个网络以您的域名名义发送电子邮件,包括恶意邮件。事实上,参与垃圾邮件传播的域名通常都有以 +all
结尾的 SPF 记录。因此,它们可以从任何 IP 地址发送包含恶意软件感染的垃圾邮件。
谨防重复记录
一般来说,域名只有一条 SPF 记录,这意味着它只能存储一条以 v=spf1
语句开头的 TXT 记录。如果尝试在一个域中添加多个记录,可能会导致永久性错误。
这种 SPF 限制经常被违反。许多人尝试添加多个记录,因为他们可能在自己的域中部署了各种服务,而每个服务提供商都可能要求他们在自己的域中创建并添加 SPF 记录。
重复记录 (图片来源:Data Axle)
重复记录会损害电子邮件的可送达性,带来安全风险,并玷污您的声誉。谷歌和微软等大型邮箱服务提供商拥有限制此类损害和自动修复重复记录的技术。但较小的电子邮件系统可能没有。
当您发现 SPF 记录重复时,必须立即解决这个问题,而这个问题很容易解决。有多个 SPF 记录的组织可以将它们合并为一个声明。合并两个 SPF 记录将确保 v=spf1
保留在 SPF 记录的开头并只出现一次,而 all
都保留在结尾。
字符限制
根据 RFC,SPF 记录的单个字符串最多可包含 255 个字符。这是 DNS 中所有 TXT 记录的限制。
如前所述,任何不符合这一规定的 SPF 记录都可能导致收件人邮件系统出现永久性或暂时性错误。虽然 DNS 管理器可能会阻止您超出此限制,但在存储较长记录时可能会出现问题。
尽管单个字符串中的记录长度只有 255 个字符,但可以选择在一个 DNS 记录中创建多个字符串。因此,当收件人邮件服务器开始分析 SPF 记录并在一条记录中发现多个字符串时,就会按特定顺序将它们组合起来,且不留空格。
完成后,邮件服务器就会验证内容。再次提醒,即使可以添加多个字符串,记录中的总字符数仍有限制。理解这一限制可能很有难度,但它能确保 DNS 数据包不超过 512 字节,这是推荐的 UDP 数据包长度。
但是,如果您的 SPF 记录超过了这一限制,请创建子记录并将单个记录拆分为多个记录,以防止 SPF 验证问题。在分割 SPF 记录时,应将每个子记录包含在主记录中。但要小心,因为这可能会导致 DNS 请求数量过多,从而造成需要补救的安全问题。
限制 DNS 查询
除了在字符串中保留 255 个字符外,还必须限制 DNS 查询的次数。RFC 规范规定,记录中的 DNS 查询次数不得超过 10 次。这有助于防止出现无限 DNS 循环和分布式拒绝服务(DDoS)攻击等问题。
但是,如果在记录中进行 10 次以上的查询,到底会发生什么呢?
这将导致 SPF 验证过程中出现永久性错误。SPF 机制(包括: include:
, a
, PTR
, mx
, exists
, 和 redirect
)将导致 DNS 查询。
但是, all
, ip4
, 和 ip6
机制不会导致 DNS 查询。
此外,还要注意嵌套包含语句,如用于分解较大记录的子记录。这会增加 SPF 记录产生的 DNS 查询量。因此,在使用第三方服务时,请确保他们不会在 SPF 记录中使用过多的 DNS 查询。
避免重复子网和 IP 地址
重复的 IP 地址 (图片来源:YouTube)
所有 SPF 条目都解析到一个子网或 IP 地址。
在创建授权发送电子邮件的 IP 地址和系统列表时,很容易产生重复的子网和 IP 地址。通常,在 SPF 记录中添加 include:
语句以及在域名的邮箱服务提供商 MX 记录中添加 include: 语句时,就会出现这种情况。这些 IP 可能是相同的,属于所包含的子网。
如果服务器的 IP 地址很少变化,最好使用 ip4 或 ipv6 符号。这将使收件人避免任何 DNS 查询。此外,由于每个 SPF 记录的 DNS 查询次数限制为 10 次,因此如果您有一个包含外发邮件服务器的长列表,也可以指定一个 IP 地址范围。
除此之外,您还可以考虑以下几点:
- 使用数量有限的
include:
机制,尽可能避免嵌套 include。 - 使用
~all
或-all
机制,而不是+all
机制。 - 避免使用
exists
SPF 机制,因为如果使用不当,安全风险可能会通过过程中的错误渗入。 - 尽量不要使用 “ptr” 和机制,因为在最新的 SPF RFC 草案中它已被弃用。
- 避免指定 DNS 记录类型。TXT 记录中不再接受这种指定。
- 在 SPF 记录中通过 CIDR 符号指定地址块时,使用 /30 和 /16 之间的块。斜线后的数字越大,表示地址块越小,这样更好。此外,不要使用 /1 至 /15 之间的区块,因为有些收件人可能会忽略或不使用它们。
- 确保解析 SPF 记录中使用域的所有机制。通常情况下,系统管理员不会删除传统系统,如位于内部的 Exchange 服务器,而 Office365 云服务已经取代了它。尽管需要在更新的 SPF 记录中添加 Office365,但删除遗留系统后仍可能没有更新。在这种情况下,SPF 记录中的域仍然存在,但实际上已经不存在了,从而导致 SPF 暂时失效。
- 将 DKIM 和 DMARC 等电子邮件验证系统与 SPF 结合使用,可以更有效地保护您的域名。因此,如果您使用 DKIM 和 DMARC,也有必要了解它们的最佳实践。
使用 DKIM 和 SPF
域密钥识别邮件 (DKIM) 提供了一个加密密钥和数字签名,可验证电子邮件未被伪造或篡改。由于 DKIM 使用加密数字签名,因此您必须遵循一些最佳实践来确保域的安全。
- 您必须定期更改加密密钥,以防止攻击者利用它们。许多邮件发送者使用多年前创建的旧密钥,攻击者更容易利用这些密钥;因此,您必须创建一个新的 DKIM 密钥。您也可以在一年内多次轮换密钥,尤其是当您在一个月内发送数千或数百万封电子邮件以确保敏感电子邮件的安全时。
- 确保密钥长度至少为 1,024 位,因为使用小于此长度的密钥创建的签名通常会被忽略。因此,越来越多的发件人开始使用 2048 位甚至更长的密钥。
- 如果您是 ESP,不要只对所有客户使用一个 DKIM 密钥。为他们的电子邮件分配一个新的唯一 DKIM 密钥。
- 如果发现有退信,请使用 DKIM 对其进行签名。
使用 DMARC 和 SPF
基于域的消息验证和一致性(DMARC)将 SPF 和 DKIM 验证机制统一到一个通用框架中,并允许域所有者声明,如果来自该域的电子邮件未能通过授权测试,他们希望如何处理该电子邮件。
使用 DMARC 有很多好处。它为您提供了报告功能,让您向邮箱服务提供商发出信号,阻止以您的域名名义发送的未通过验证的邮件。这有助于识别和阻止从您的网域发送的欺诈性邮件,从而保护您的客户并提高您的网域声誉。
因此,如果您还没有使用 DMARC,请立即开始使用。如果您使用了,请确保您的邮件包含 “标识符对齐”。这种对齐对于电子邮件通过 DMARC 验证至关重要。但如果您在使用 DMARC 时不包含它,它就会将您的邮件直接发送到可疑名单中。
如何检查 SPF 记录
您可以使用一些工具来检查 SPF 记录。这些工具被称为 SPF 记录检查工具或 SPF 记录检查器。
SPF 记录检查器
检查 SPF 记录 (图片来源:John Hanley)
SPF 记录检查程序通过检查各种参数来确保 SPF 记录的有效性:
- 记录的存在:用于确认给定的 SPF 记录是否实际存在于 DNS 中。
- 多个记录:DNS 中允许使用一条 SPF 记录。因此,SPF 记录检查程序会验证是否只存在一条记录或多条记录。
- 最大查询次数:必须进行的 SPF 查询的最大次数限制为 10 次。因此,SPF 记录检查程序会找出查找的总次数以及是否超过 10 次。
- PTR 机制:该工具可验证 PTR 机制的使用情况,因为不建议使用该机制。
SPF 记录检查程序的例子包括 Dmarcian、Agari 和 Mimecast 等。
小结
随着网络安全风险的不断演变,个人和企业都会受到影响,因此您必须确保实施尽可能多的安全层来保持保护。您可以使用多种安全技术、工具、解决方案和服务来保护您的数据、网络、应用程序和系统。
为您的域名添加 SPF 记录就是其中一种技术,它可以防止垃圾邮件发送者以您的域名名义发送电子邮件,从而帮助保护您的企业资产和声誉。
仅使用 SPF 可能无法提供全面的保护;因此,请将 DKIM 和 DMARC 与 SPF 记录一起使用。这种策略能更有效地检测安全风险,如电子邮件欺骗、被服务器列入黑名单和被标记为垃圾邮件。
因此,如果您使用这些技术,请务必遵循上述有关 SPF 记录、DKIM 和 DMARC 的最佳实践,并使用 SPF 记录检查器来测试记录的有效性。
原文地址:https://www.wbolt.com/spf-record.html