技术解析 · 附来源的解答

如何防止邮件伪造:SPF、DKIM 与 DMARC 指南

要防止邮件伪造,您必须同时配置 SPF、DKIM 和 DMARC 三种 DNS 记录。这些协议会验证发信服务器是否获准代表您的域名发送邮件,并确保邮件内容在传输过程中未被篡改。

配置 SPF 记录

SPF(Sender Policy Framework,发件人策略框架)是一种 DNS 记录,列出了获准代表您的域名发送邮件的所有 IP 地址和域名。收件服务器收到邮件时,会检查 From 地址中域名的 SPF 记录。如果发送方 IP 不在列表中,邮件可能会被标记为垃圾邮件或被拒收。您可以使用 SendHQ 免费工具(https://sendhq.cc/tools)校验 SPF 语法,确保其中没有未经授权的 IP。

配置 DKIM 签名

DKIM(DomainKeys Identified Mail,域名密钥识别邮件)会在邮件头中添加加密签名。发信服务器使用私钥对邮件签名,收件服务器则使用您在 DNS 记录中发布的公钥验证该签名。这可以防止攻击者在传输过程中篡改邮件内容,并证明邮件确实来自您的基础设施。

部署 DMARC 策略

DMARC(Domain-based Message Authentication, Reporting, and Conformance,基于域的消息认证、报告与一致性)将 SPF 和 DKIM 结合在一起。它告诉收件服务器,当邮件未通过 SPF 或 DKIM 检查时应如何处理。您可以将策略设为 none(监控)、quarantine(放入垃圾邮件)或 reject(完全拦截)。DMARC 还会向域名所有者回传报告,帮助识别伪造尝试和配置错误。

保持 DNS 记录整洁

防止伪造需要持续维护 DNS 记录。请定期审查 SPF 记录,移除不再使用的第三方发件方,并定期轮换 DKIM 密钥以保持安全。请确保 DMARC 策略最终从 none 过渡到 reject,彻底阻止伪造邮件进入用户收件箱。

使用安全的 SMTP 扩展

除了 DNS 记录之外,还应使用 STARTTLS 加密邮件服务器之间的连接。这可以防止中间人攻击截获凭据或在传输途中篡改邮件。启用 SMTP 身份验证可以确保只有获得授权的用户才能通过您的服务器中继邮件,从而降低内部伪造的风险。

团队常问的问题

SPF 和 DKIM 有什么区别?

SPF 通过 DNS 列表授权特定服务器发送邮件,而 DKIM 使用加密签名来验证发件人并确保邮件完整性。

DMARC 会取代 SPF 和 DKIM 吗?

不会,DMARC 依赖 SPF 和 DKIM。它提供的是策略指令,规定如何处理未通过这两项身份验证检查的邮件。

可以立即使用 p=reject 策略吗?

建议先使用 p=none 监控流量,确保合法邮件不会被拦截,然后再过渡到 p=quarantine,最终切换为 p=reject。

如果我有多条 SPF 记录会怎样?

存在多条 SPF 记录属于语法错误,会导致 SPF 失败。您必须把所有获授权的发件方合并到一条 TXT 记录中。

一手资料