本文主要介绍什么是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记录
用dig命令/nslookup命令查询DMARC记录
Linux:% dig _dmarc.domain(查询的域名) txt
Windows:nslookup -qt=TXT _dmarc.domain(查询的域名)