搜索域和子域的所有 DNS TXT 记录
Posted
技术标签:
【中文标题】搜索域和子域的所有 DNS TXT 记录【英文标题】:search for ALL DNS TXT records of a domain and subdomains 【发布时间】:2015-02-24 06:31:59 【问题描述】:有一种方法可以检索有关域(和子域)的 DNS 记录的所有 (TXT) 条目?
我的目标是验证我的域的配置:www.rosposhop.com 我为某些子域正确设置了多个 SPF 和 DKIM 记录
rosposhop.com
md.rosposhop.com (SPF+DKIM)
mg.rosposhop.com (SPF+DKIM)
(所以我总共有 5 个 TXT 项)
现在,如果我用 dig
或 host -a
询问,我只得到了第一个 TXT 项目,而我应该得到 TXT 项目的完整列表。
我哪里错了?
$ dig rosposhop.com TXT
; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> rosposhop.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14774
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rosposhop.com. IN TXT
;; ANSWER SECTION:
rosposhop.com. 2362 IN TXT "google-site-verification=udcP944OqB1PldDn1ML"
;; Query time: 65 msec
;; SERVER: ***********
;; WHEN: Sat Dec 27 09:10:43 CET 2014
;; MSG SIZE rcvd: 123
顺便说一句,如果我要求一个子域,现在我又只得到了第一个条目:
$ dig md.rosposhop.com TXT
返回:
;; ANSWER SECTION:
md.rosposhop.com. 2223 IN TXT "v=spf1 include:spf.man*******"
再次,我没有得到 DKIM 信息。 这是一个安全/权限主题? 对不起,我对 DNS 的无知。
谢谢 乔治
【问题讨论】:
【参考方案1】:进行一次 DNS 查询以一举获取所有信息的方法是错误的。它假定单个区域的数据是 a) 静态的并且 b) 由单个名称服务器管理。 DNS 对区域数据没有这样的限制。
SPF 和 DKIM(以及 DMARC,如果您想将其混在一起)都在特定域上使用 TXT 记录。无需获取域及其子域的所有 TXT 记录即可查看相关配置。
如果您想获取 SPF 和 DKIM 信息,只需查询相应的域即可。假设您在 md.rosposhop.com
和 mg.rosposhop.com
上进行 Return-Path 域和 DKIM 签名,那么您应该对 TXT 记录感兴趣
md.rosposhop.com
- SPF
mg.rosposhop.com
- SPF
(selector)._domainkey.md.rosposhop.com
- DKIM
(selector)._domainkey.mg.rosposhop.com
- DKIM
其中(选择器)是您用于该 DKIM 记录的选择器。对于md.rosposhop.com
和mg.rosposhop.com
域中的每一个,您可能有多个选择器。其他域的 TXT 记录无关。
【讨论】:
谢谢彼得。我验证了,你是完全正确的。我选择了你的答案。【参考方案2】:要获取域的所有记录,您可以使用AXFR
请求来执行区域传输。这必须发送到域的权威服务器之一:
dig rosposhop.com axfr @ns52.domaincontrol.com
但是,出于安全原因,大多数 DNS 服务器都会限制区域传输。通常,只有主服务器允许区域传输,并且只允许到已知的从服务器。 domaincontrol.com
服务器不允许区域传输,所以如果你尝试这个,你会得到一个错误。
【讨论】:
我得到的 AXFR 事实:;; communications error to 208.109.255.26#53: end of file
我知道。我说过他们不允许区域转移。【参考方案3】:
在某些情况下,您有多个具有相同 DNS 条目的 TXT 条目。例如,letsencrypt 通配符和基本 DNS 名称的密钥验证需要两个 _acme_challenge TXT 条目,对于同一域名具有不同的密钥,如下所述:https://community.letsencrypt.org/t/multiple-challenges-when-requesting-wildcard-certificate-for-3-domains/66783。
【讨论】:
以上是关于搜索域和子域的所有 DNS TXT 记录的主要内容,如果未能解决你的问题,请参考以下文章