xChar
·5 months ago

最近,我在管理一个旧有域名example.life(隐去真实域名)时,发生了一件小事件:我收到了来自Google的一封邮件,内容是关于example.life域名的DMARC报告

这些报告通常是说:有一些邮件声称是从你的域名发送的,然而实际的发送服务器IP,设置,SPF/DKIM等证明或者未通过。


什么是DMARC?

DMARC (Domain-based Message Authentication, Reporting, and Conformance),是邮件验证的一种标准,主要功能有三个:

  1. 验证:跟踪SPF/DKIM验证结果,确定邮件是否真的来自指定域名;
  2. 报告:每天把检测结果到证邮件发送给你指定的邮箱;
  3. 处理策略:在邮件未通过验证时,指示收件方怎样处理(不管,隔离,或拒收)。

DMARC未配置就有什么风险?

  • 别人可以假写你域名发送邮件,有可能被用作骗子、垃圾邮件。
  • 有些深层骗子邮件,不验证就很难被分辨,导致业务或信用损失。

问题分析

收到DMARC报告后,我检查了example.life的现有配置,发现:

  • DNS托管于Cloudflare,而非Namecheap。
  • MX记录指向Namecheap的邮件转发服务,但我已不需要邮件功能;
  • SPF记录是“禁止任何发件”,但同时存在了先前的转发SPF设置;
  • DMARC记录重复,有一条p=none,一条p=reject,需要统一;
  • DKIM TXT记录为空,没有公钥,无意义。

关于空值的*_domainkey TXT记录:

在Cloudflare通过Email Record Creator生成DMARC配置时,默认也会生成一条空值的*_domainkey TXT记录,但这条记录实际上没有公钥,也不负责DKIM验证,存在没有意义

如果我不提供邮件发送服务,那么这条记录最好直接删除:

  • 防止邮件检查工具报错(软性报警);
  • 使域名DNS配置更加清洁。

如果有自己的邮件服务,那就应该从邮件服务提供商生成正确的DKIM公钥,补全记录。

总结:目前example.life不需要邮件功能,因此直接删除空DKIM TXT记录,是最好的选择


解决方案

  1. 确定保持DNS托管于Cloudflare,不切换回Namecheap BasicDNS。
  2. 删除所有MX记录,不再支持任何邮件功能。
  3. 保留SPF TXT:
    v=spf1 -all
    
    说明我的域名不允许发送任何邮件。
  4. 保留DMARC TXT:
    v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;
    
    确保严格拦截任何未通过验证的邮件。
  5. 删除空值DKIM TXT记录,保证DNS清洁。
  6. 删除不再需要的_acme-challenge记录(如果不再自动维护证书)。
  7. 使用Cloudflare自带的DNS管理控制面,简单高效地操作。

总结

通过此次清理,example.life域名达到了极简简洁,安全性最大化:

  • 不提供任何邮件服务;
  • 完全禁止假写,促使域名信赖度最大化;
  • 充分使用Cloudflare的防护、加速和简单管理能力。

记录这次实际操作,如有类似问题的,期望这些经验对你有所帮助。

Loading comments...