根区中的 DNSSEC?如何使用它?

Lan*_*nes 1 linux security dns

我在桌面上使用 Fedora,我:

yum -y install caching-nameserver
service named restart
chkconfig --level 5 named on
Run Code Online (Sandbox Code Playgroud)

在它上面,并将名称服务器设置为 127.0.0.1。如果我:

dig google.com | grep SERVER
;; SERVER: 127.0.0.1#53(127.0.0.1)
Run Code Online (Sandbox Code Playgroud)

然后我可以看到它没问题……我正在使用我以前安装的本地 DNS 缓存服务器!欢呼!(我的 ISP 不再有糟糕的 DNS 了..)

然后我试过tcpdump

tcpdump -n -i eth0 dst port 53
Run Code Online (Sandbox Code Playgroud)

我只能看到我的本地 DNS 服务器没有使用我的 ISP 的 DNS 服务器进行解析,而是使用根服务器(IP 地址)DNS 服务器来解析我的域名(我在我的网络浏览器中输入的域名)。

问题 #1:我的本地 DNS 缓存服务器真的只使用根服务器 DNS 服务器进行解析吗?

问题#2:如果使用DNSSEC为我提供了有关 DNS 的更多安全性,那么我如何将我的 pc/本地 dns 缓存设置为仅使用且仅允许使用 DNSSEC?我认为 DNSSEC 是几年前 (?) 部署在根 DNS 服务器上的。

更新:我误解了一些东西,要仅使用 DNSSEC,我需要这样做:我正在访问的域的所有 NS 都必须配置为使用 DNSSEC - 这不是很广泛使用,所以我不能只使用 DNSSEC .

Wes*_*ker 8

  1. 默认情况下,您设置的本地解析器根本不会使用您的 ISP 的解析器。它将开始直接向根询问所需的一切答案。根将返回诸如“我不知道在哪里www.example.com;你应该去谈谈com,这里有一组如何与之交谈的地址”之类的答案com(然后你会去尝试与之交谈com,其中会将您推荐给example.com)”。最后,您将按照链条进行操作,直到得到答案。如果您需要查找ftp.example.com,您的本地解析器将有一个“缓存”,可以让它直接进入example.com服务器,或者,如果您foo.com愿意,它会直接发送到com服务器,而不会询问根。

  2. 对于 DNSSEC,世界上大部分地区已经自上而下部署了它,但较低的域还没有。根已经签署,com已经签署,net已经签署,等等。但是facebook.comgoogle.com等也没有。幸运的是,DNSSEC 的设计允许这样做,并且试图安全地跟踪 DNS 记录的软件最终将到达名称服务器(com例如that says "I don't know wherewww.facebook.com is and you should go talk tofacebook.com` 哦,顺便说一下,它们还没有受到保护” . IE,DNSSEC 为您提供了一种称为可证明不安全的东西。这让您可以肯定地知道区域的父级说子级未签名(这是一种简化;他们可能已签名但尚未“链接”)。

值得注意的是,默认情况下未启用 DNSSEC,您需要在绑定配置文件中将其打开。我认为默认的 Fedora named.conf 现在启用了 DNSSEC,但您应该检查一下。在您的 named.conf 文件中,您可能会发现有一个包含根可信密钥的部分:

trusted-keys {
  . 257 3 8 "AwEAAagAIKlVZr...";
}
Run Code Online (Sandbox Code Playgroud)

以及打开 DNSSEC 验证的选项部分:

options {
    dnssec-enable yes;
    dnssec-validation yes;
};
Run Code Online (Sandbox Code Playgroud)

启用此功能后,dig +dnssec www.dnssec-tools.org例如,如果您执行 a ,您应该会AD在输出中看到返回的标志。该AD标志表示该记录已通过 DNSSEC 验证。如果您搜索,www.facebook.com您将不会看到此标志。

# dig +dnssec www.dnssec-tools.org
...
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
                   ^^
                   ^^
Run Code Online (Sandbox Code Playgroud)