如何使用dig命令测试DNSSEC
时间:2019-04-29 03:17:51 来源:igfitidea点击:
如何在Linux下使用dig命令行测试和验证DNSSEC ?
DNSSEC用于保护域名系统(DNS)提供的某些类型的信息。使用DNSSEC可以验证DNS数据和DNS完整性防止被恶意攻击,提高安全性。
如何使用dig测试和验证DNSSEC
- 使用dig来验证DNSSEC记录 dig YOUR-DOMAIN-NAME + DNSSEC +short
- 获取用于验证DNS记录的公钥 dig DNSKEY YOUR-DOMAIN-NAME +short
- 使用dig命令查看DNSSEC信任链 dig DS YOUR-DOMAIN-NAME +trace
- 使用dig执行DNSSEC验证
dig . DNSKEY | grep -Ev '^($|;)' > keys dig +sigchase +trusted-key=./keys YOUR-DOMAIN-NAME. A | less dig +sigchase +trusted-key=./keys YOUR-DOMAIN-NAME. A | grep -i validation
查看域名是否启用了DNSSEC
在启用DNSSEC时, DS(签名委托)记录了已签名区域文件的有关信息。
使用dig查看某个域名的DS记录:
dig DS {domain-name} dig DS seaevergreen.com
DNSKEY就是一个公钥记录,DNS解析器可以使用它来验证DNSSEC签名。
dig DNSKEY {domain-name} dig DNSKEY seaevergreen.com +short
使用dig查询和验证dnssec
dig +dnssec {domain-name}. dig +dnssec www.seaevergreen.com. +short dig seaevergreen.com +dnssec +multi
输出中 ad表示验证回答,表明DNSSEC 是OK的,如果状态为SERVFAIL,则可能是没有DNSSEC校验。
; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> seaevergreen.com +dnssec +multi ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53272 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;seaevergreen.com. IN A
使用dig命令查看DNSSEC信任链
dig DS {your-domain.} +trace dig DS google.com +trace @114.114.114.114 dig DS google.com +trace @1.1.1.1 dig DS seaevergreen.com +trace
测试DNSSEC的有效性
获取根密钥
dig . DNSKEY | grep -Ev '^($|;)' > keys
查看获取到的keys: cat keys
进行DNSSEC验证:
dig +sigchase +trusted-key=./keys YOUR-DOMAIN-NAME. A | less dig +sigchase +trusted-key=./keys YOUR-DOMAIN-NAME. A | grep -i validation