如何使用 dig 查找域名的 DMARC 记录?

如何使用 dig 查找域名的 DMARC 记录?

鉴于询问:

nicholas@mordor:~$ 
nicholas@mordor:~$ dig  TXT  _dmarc.cisco.com

; <<>> DiG 9.16.8-Ubuntu <<>> TXT _dmarc.cisco.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3976
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;_dmarc.cisco.com.      IN  TXT

;; ANSWER SECTION:
_dmarc.cisco.com.   1238    IN  TXT "v=DMARC1; p=quarantine; pct=0; fo=1; ri=3600; rua=mailto:[email protected],mailto:[email protected]; ruf=mailto:[email protected],mailto:[email protected];"

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Fri Sep 10 19:21:51 PDT 2021
;; MSG SIZE  rcvd: 231

nicholas@mordor:~$ 
nicholas@mordor:~$ uname -a
Linux mordor 5.11.0-34-generic #36-Ubuntu SMP Thu Aug 26 19:22:09 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
nicholas@mordor:~$ 

如何知道DMARC思科是否存在该记录?

更好的是,如果不是一条DMARC记录?这样的查询结果有何不同?

如果该Answer部分缺少这样的条目:

;; ANSWER SECTION:
_dmarc.cisco.com.   1238    IN  TXT "v=DMARC1; p=quarantine; pct=0; fo=1; ri=3600; rua=mailto:[email protected],mailto:[email protected]; ruf=mailto:[email protected],mailto:[email protected];"

那么有一条DMARC记录缺失了?

答案1

正确的,

如果缺少答案部分,则表示您正在查找的子域/DNS 条目上没有记录,例如_dmarc.domain.com

如果我要自己检查,我可能会只检查命令是否输出v=DMARC1,例如:dig TXT _dmarc.domain.com | grep v=DMARC1

但这并不意味着 DMARC有效的。Dig 本身并不会检查这一点,因此需要对输出进行进一步处理,例如正则表达式,或提供验证服务的在线工具,如 mxtoolbox。

相关内容