如何使用Cloudflare CNAME拥有统一的DMARC策略?

如何使用Cloudflare CNAME拥有统一的DMARC策略?

根据DMARC 常见问题解答可以为多个域制定单一策略,并且所有工具都参考该主策略:

如何才能同时将 DMARC 记录放在多个域名上?

一些组织可能出于品牌保护或其他原因注册了许多域名。管理所有这些域名通常很有挑战性。这里有一种可行的方法,可以将 DMARC 记录放在所有域名上,并轻松控制更改。您可以将 CNAME 用于 DMARC 记录,并使用通配符进行报告。

_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]"
_dmarc.example.net. IN CNAME _dmarc.example.com.

*._report._dmarc.example.com IN TXT "v=DMARC1"

现在只需管理一条 DMARC 记录。需要报告记录是因为您要求将 example.net 的汇总报告发送到另一个域 example.com。因此,该域必须表明它愿意接收此类报告。使用通配符,该域表示它愿意接收有关任何域的报告。正确设置邮箱的电子邮件过滤[电子邮件保护]以避免收到您不感兴趣的报告。

对于 Cloudflare 管理的别名域:

;; CNAME Records
_dmarc.lists.example.net.   300 IN  CNAME   _dmarc.example.org.
_dmarc.example.net. 300 IN  CNAME   _dmarc.example.org.

对于实际发送邮件并将成为主要策略的域:

;; TXT Records
_dmarc.example.org. 300 IN  TXT "v=DMARC1\; p=quarantine\; pct=1\; rua=mailto:[email protected]"
*._report._dmarc.example.org.   300 IN  TXT "v=DMARC1"

如上所示,我使用 dmarcian 来处理 dmarc 报告。当我测试时,它找不到 example.net 域的 dmarc 记录,其他工具(如 Mbox Proofpoint)也找不到。我相信常见问题解答没有撒谎(DNS 行为告诉我们这应该是可能的),但规范没有明确提到这个特性, 发生什么了?

答案1

如果 CNAME 指向其他域上的记录,建议确保将 Cloudflare 设置为仅 DNS。使用 Cloudflare 作为代理,DNS 返回 Cloudflare SOA 而不是 TXT 记录,如 dig 输出中所示:

;; AUTHORITY SECTION:
example.net.    3600    IN  SOA jason.ns.cloudflare.com. dns.cloudflare.com. 2023909238 10000 2400 604800 3600

如果您禁用代理,它会使用正确的记录来回答:

;; ANSWER SECTION:
_dmarc.example.net. 300 IN  CNAME   _dmarc.example.org.
_dmarc.example.org. 300 IN  TXT "v=DMARC1; p=quarantine; pct=1; rua=mailto:[email protected]"

相关内容