严重程度:中危DNS 与邮件安全
SPF 和 DMARC:阻止有人冒用你的域名发邮件
SPF 和 DMARC 是两种 DNS 记录,它们告诉接收邮件服务器哪些服务器可以代表你的域名发送邮件,以及对校验失败的邮件如何处理。没有它们,任何人都能在钓鱼邮件中冒用你的域名。
这是什么
SPF(Sender Policy Framework)是一条 TXT 记录,列出获授权的发送服务器,例如 v=spf1 include:_spf.google.com -all。其中的 -all 表示「拒绝其他一切」。
DMARC 建立在 SPF 和 DKIM 之上,发布在 _dmarc.yourdomain.com。它的策略(p=none、quarantine 或 reject)告诉接收方如何处理未通过认证的邮件。
为什么重要
没有 SPF/DMARC,攻击者可以发送看似来自 [email protected] 的邮件,让针对你客户和员工的钓鱼更加可信。
宽松的 SPF(+all)或停留在 p=none 的 DMARC 策略几乎提供不了真正的防护——伪造的邮件仍会被投递。
如何修复
发布一条严格的 SPF 记录
列出你真实的发件方,并以 -all 结尾。
yourdomain.com. TXT "v=spf1 include:_spf.google.com -all" 添加一条会强制执行的 DMARC 记录
先用 p=none 进行监控,确认合法邮件都能通过后,再改为 quarantine 或 reject。
_dmarc.yourdomain.com. TXT "v=DMARC1; p=reject; rua=mailto:[email protected]" 只保留一条 SPF 记录
发布两条 SPF 记录是一个会导致 SPF 失效的永久性错误。请把你所有的 include 合并到一条记录里。
常见问题
SPF、DKIM 和 DMARC 有什么区别?
SPF 授权发送服务器,DKIM 对邮件进行加密签名,而 DMARC 把两者串联起来,并告诉接收方在校验失败时如何处理。
强制执行 DMARC 会拦截我的合法邮件吗?
如果某个真实发件方没有被 SPF/DKIM 覆盖,就可能会。这正是你要先从 p=none 开始、读完报告后再收紧的原因。