dnssec 上的 DLV 是否已弃用?

ita*_*bby 2 domain-name-system bind dnssec

我正在尝试使用绑定设置一个递归 DNS,该 DNS 也有自己的区域。

现在我想升级它以使用 dnssec 但据我所知,如果我没有域名,我必须使用 DLV。

但是,我能找到的少数指南说您需要注册,而dlv.isc.org这些指南并不存在。我正在阅读的一本关于 DNSSEC 的书说 DLV 将被弃用,所以这就是我想知道的原因。(如果您知道任何设置它的分步指南也将不胜感激)

Pio*_*asz 5

dlv.isc.org服务器不再运行时,您仍然可以通过dnssec-lookaside选项在 Bind 9 配置中设置另一个 DNSSEC 后备服务器。如果example.com无法验证的密钥,则后备服务器的名称将附加到它,并且验证将针对后备服务器的受信任密钥重新开始。我没有测试,但我相信这不会解决您的问题:lan.如今可以肯定地验证私有域不存在,因此不会执行后备查询。

那么可以做些什么来保护一个lan.区域呢?这取决于用途:

  1. 您想要用作验证递归解析器lan.区域权威服务器的 DNS 服务器不需要任何其他配置(我假设dnssec-validation已经打开):
    • 它将服务于lan.从区域文件区,并返回一个答案没有AD标志,
    • 当其他域的查询进来时,它会执行递归查询,验证结果且仅当它们是有效的返回答案AD标志。如果域不验证SERVFAIL将发出。
  2. 使用您的 DNS 服务器的存根解析器依赖于您的 DNS 服务器的验证行为,因此它们将lan.毫无问题地解决。但是,由于存根解析器和服务器之间的通信未加密,因此可以在传输过程中修改结果。您可以使用 TSIG 签名或 TLS 来保护它。
  3. 验证存根解析器要求你添加信任锚到他们的配置。

我怀疑您是否想在每台客户端机器上设置一个 Bind9 服务器来充当验证存根解析器(有更好的替代方案,如systemd-resolveddnsmasqunbound),但如果是这种情况,您需要先检索密钥对于您的lan.区域:

piotr@akela:~$ dig lan. DNSKEY +short
257 3 13 nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==
Run Code Online (Sandbox Code Playgroud)

然后,您需要将密钥添加为受信任的,允许仅来自localhost“真实”DNS 服务器的递归查询并将请求转发到“真实”DNS 服务器(假设其 on 192.168.0.1):

options {
    directory "/var/cache/bind";
    listen-on { localhost; };
    listen-on-v6 { localhost; };
    recursion yes;
    allow-query { localhost; };
    forwarders { 192.168.0.1; };
};
trusted-keys {
    lan. 257 3 13 "nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==";
};
Run Code Online (Sandbox Code Playgroud)

最后,您只需要添加localhost为唯一的 DNS 服务器/etc/resolv.conf

nameserver ::1;
Run Code Online (Sandbox Code Playgroud)

编辑systemd-resolved配置更简单:只需将您的 DNSKEY 添加到名为的文件中/etc/dnssec-trust-anchors.d/<your_name>.positive

lan. IN DNSKEY 257 3 13 nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==
Run Code Online (Sandbox Code Playgroud)

并强制 DNSSEC 进入/etc/systemd/resolved.conf

DNSSEC=yes
Run Code Online (Sandbox Code Playgroud)