什么是 DMARC?如何设置 DMARC 记录?

本文主要介绍什么是DMARC,以及如何设置DMARC记录。

一、DMARC

DMARC是(Domain-based Message Authentication, Reporting & Conformance)的缩写,设置DMARC记录,防止他人伪造贵司域名,还可以获取到他人尝试伪造贵司域名的情况。

当收信方(其MTA需支持DMARC协议)收到贵司域名发送的邮件时,会进行DMARC校验,若校验失败会发送一封report到DMARC记录值中设置的邮箱账号里。

二、参数说明

TXT="v=DMARC1; p=quarantine; pct=0; ri=3600; rua=mailto:abc@example.net; ruf=mailto:abc@example.net"
  • P:表示当出现伪造邮件时,域名所有方,希望收信方采取的行为,有none/quarantine/reject

    • p=none:放行所有来自您域名的邮件,即使邮件未通过DMARC验证。

    • p=quarantine:隔离一部分邮件,通常为放入垃圾箱。配合pct参数(默认为100),设置未通过DMARC验证的邮件中隔离的百分比。

    • p=reject:执行严格拒绝,拒绝所有未通过身份验证的邮件。

  • rua:用于接收收信服务商的汇总报告。

  • ruf:用于接收收信服务商拒信的详细信息。

  • SP:子域名策略(类似P,对子域生效),所以用户如果主域名配置了带SP的dmarc策略,也可以起效。

  • ri:汇总报告之间要求的间隔(纯文本32位无符号整型;可选的;默认为86400).表明要求接收者生成汇总报告的间隔不超过要求的秒数。

  • ADKIM:dkim对齐模式,没填或者r 为宽松,s为严格,宽松允许子域,严格则需要严格对齐。

  • ASPF:spf对齐模式,没填或者r 为宽松,s为严格,宽松允许子域,严格则需要严格对齐。

  • v:版本(纯文本;必要的)值为“DMARC1”,必须作为第一个标签。

  • fo:故障报告选项(纯文本;可选的;默认为0),以冒号分隔的列表,如果没有指定“ruf”,那么该标签的内容将被忽略,建议搭配p=none用于观察测试,设置为1会导致reject不生效。

三、如何设置

1、在设置DMARC记录之前,贵司须保证已经设置包含以下 SPF 记录:“v=spf1 include:spf1.dm.aliyun.com -all”,或者已经按照控制台给的dkim值,配置了DKIM协议

2、当设置了SPF记录后,可以设置如下DMARC记录:

操作解析的域名

解析记录类型

解析记录值

_dmarc

TXT

v=DMARC1; p=quarantine; rua=mailto:dmarc_report@service.aliyun.com

重要

  • 解析记录值中“dmarc_report@service.aliyun.com”为邮件推送默认收集dmarc报告邮箱,用户如果需要查看具体dmarc报告,需要填写一个正常收发信的同组织邮箱地址(可以为子域名邮箱)。

  • 如果您的域名不在阿里云购买的,具体添加方法建议咨询域名所在服务商。

添加方法:

如下以阿里云解析DNS为例:

1、登录阿里云解析DNS,在列表中选择需要解析的域名。单击“解析设置”,进入解析设置界面。解析设置

2、在解析设置界面,单击“添加记录”,填写完成点击“确认”。

示例:

记录类型:TXT

主机记录:@

下图为添加DMARC记录示例:DMARC

四、如何查询DMARC记录

用dig命令/nslookup命令查询DMARC记录

Linux:% dig _dmarc.domain(查询的域名) txt

Windows:nslookup -qt=TXT _dmarc.domain(查询的域名)