simon

simon

github

域名部署纪录:从收到DMARC报告说起

最近,我在管理一个旧有域名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 的防护、加速和简单管理能力。

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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。