运维开发网

dnsmasq返回(false)DNSSEC验证的“伪造”结果

运维开发网 https://www.qedev.com 2020-04-03 16:00 出处:网络 作者:运维开发网整理
我正在使用名为dnsmasq的DNSSEC验证DNS解析器运行本地Debian 8.1安装(版本2.72-3 deb8u1). 我将其设置为返回SERVFAIL,如果它无法验证启用DNSSEC的域,即如果域具有DNSSEC条目,则必须正确验证才能转发到客户端. 在我今天浏览的过程中,我想访问IETF这个相当着名的网站,但我不能,因为域名无法解析.我检查了命令行来验证这一点,我确实得到了一个SERV
我正在使用名为dnsmasq的DNSSEC验证DNS解析器运行本地Debian 8.1安装(版本2.72-3 deb8u1).

我将其设置为返回SERVFAIL,如果它无法验证启用DNSSEC的域,即如果域具有DNSSEC条目,则必须正确验证才能转发到客户端.

在我今天浏览的过程中,我想访问IETF这个相当着名的网站,但我不能,因为域名无法解析.我检查了命令行来验证这一点,我确实得到了一个SERVFAIL.我检查了谷歌DNS服务器(8.8.8.8)并没有获得SERVFAIL但IP地址.

之后,我为每个dns请求启用了日志记录并检查了结果.似乎我的感觉是正确的,DNSSEC验证失败了,尽管它得到了来自我从谷歌获得的DNS转发器的相同响应.

这里是我的syslog的相应行:

Sep  5 13:27:13 dnsmasq: query[A] www.ietf.org from 192.168.1.10
Sep  5 13:27:13 dnsmasq: forwarded www.ietf.org to 81.3.21.188
Sep  5 13:27:13 dnsmasq: forwarded www.ietf.org to 178.63.73.246
Sep  5 13:27:13 dnsmasq: dnssec-query[DNSKEY] ietf.org to 81.3.21.188
Sep  5 13:27:13 dnsmasq: dnssec-query[DS] ietf.org to 81.3.21.188
Sep  5 13:27:13 dnsmasq: dnssec-query[DNSKEY] org to 81.3.21.188
Sep  5 13:27:13 dnsmasq: dnssec-query[DS] org to 81.3.21.188
Sep  5 13:27:13 dnsmasq: dnssec-query[DNSKEY] . to 81.3.21.188
Sep  5 13:27:13 dnsmasq: reply . is DNSKEY keytag 1518
Sep  5 13:27:13 dnsmasq: reply . is DNSKEY keytag 19036
Sep  5 13:27:13 dnsmasq: reply org is DS keytag 21366
Sep  5 13:27:13 dnsmasq: reply org is DS keytag 21366
Sep  5 13:27:13 dnsmasq: reply org is DNSKEY keytag 19629
Sep  5 13:27:13 dnsmasq: reply org is DNSKEY keytag 21366
Sep  5 13:27:13 dnsmasq: reply org is DNSKEY keytag 9795
Sep  5 13:27:13 dnsmasq: reply org is DNSKEY keytag 12023
Sep  5 13:27:13 dnsmasq: reply ietf.org is DS keytag 45586
Sep  5 13:27:13 dnsmasq: reply ietf.org is DS keytag 45586
Sep  5 13:27:13 dnsmasq: reply ietf.org is DNSKEY keytag 45586
Sep  5 13:27:13 dnsmasq: reply ietf.org is DNSKEY keytag 40452
Sep  5 13:27:13 dnsmasq: dnssec-query[DNSKEY] cloudflare-dnssec.net to 81.3.21.188
Sep  5 13:27:13 dnsmasq: dnssec-query[DS] cloudflare-dnssec.net to 81.3.21.188
Sep  5 13:27:13 dnsmasq: dnssec-query[DNSKEY] net to 81.3.21.188
Sep  5 13:27:13 dnsmasq: dnssec-query[DS] net to 81.3.21.188
Sep  5 13:27:13 dnsmasq: reply net is DS keytag 35886
Sep  5 13:27:13 dnsmasq: reply net is DNSKEY keytag 45464
Sep  5 13:27:13 dnsmasq: reply net is DNSKEY keytag 35886
Sep  5 13:27:13 dnsmasq: reply cloudflare-dnssec.net is DS keytag 537
Sep  5 13:27:13 dnsmasq: reply cloudflare-dnssec.net is BOGUS DNSKEY
Sep  5 13:27:13 dnsmasq: validation result is BOGUS
Sep  5 13:27:13 dnsmasq: reply www.ietf.org is <CNAME>
Sep  5 13:27:13 dnsmasq: reply www.ietf.org.cdn.cloudflare-dnssec.net is 104.20.0.85
Sep  5 13:27:13 dnsmasq: reply www.ietf.org.cdn.cloudflare-dnssec.net is 104.20.1.85

现在我不确定域是暂时配置错误还是我的连接被篡改,或者我的DNS服务器配置错误,即使所有其他域到目前为止工作正常,包括“ietf.org”(没有www).

如果有人能帮助我追踪这个问题,我会很感激.

这是由于CloudFlare(IETF的CDN提供商)选择ECDSAP256SHA256作为其签名算法. Dnsmasq自2.69以来已经实施了ECDSA,但它已被破坏,直到2015年3月发布的2.73才被修复.因此,您需要更新的dnsmasq或修补版本来正确解决它.

从2.73部分的dnsmasq change log:

Fix broken DNSSEC validation of ECDSA signatures.

来自Cloudflare DS记录集:

cloudflare.net. 86400 IN DS 2371 13 2

90F710A107DA51ED78125D30A68704CF3C0308AFD01BFCD7057D4BD0 3B62C68B

13是算法类型. DNSSEC中允许的每个算法都有一个指定的编号.算法13是使用SHA-256的具有P-256曲线的ECDSA.

最后挖掘跟踪www.ietf.org包含一个通过Cloudflare的CNAME记录.

www.ietf.org. 1800 IN CNAME www.ietf.org.cdn.cloudflare-dnssec.net.

0

精彩评论

暂无评论...
验证码 换一张
取 消