我正在尝试建立一个递归的DNS,它也有自己的区域使用绑定。
现在我想升级它以使用dnssec,但据我所知,如果我没有域名,我必须使用DLV。
然而,我能找到的少数指南说,您需要在dlv.isc.org中注册,这是不存在的。我读过的一本关于DNSSEC的书告诉我,DLV会遭到反对,这就是我想知道的原因。(如果你知道任何一步一步的设置指南,也将不胜感激)
发布于 2020-01-13 21:39:27
当dlv.isc.org服务器不再运行时,您仍然可以通过dnssec-查找选项在Bind 9配置中设置另一个DNSSEC查找服务器。如果无法验证example.com的密钥,则会将查找服务器的名称附加到它,然后根据查找服务器的可信密钥重新进行验证。我没有进行测试,但我相信这不会解决您的问题:像lan.这样的私有域现在可以被确认为不存在,因此不执行查找查询。
那么,如何保护lan.区域呢?这取决于使用情况:
lan.区域的权威服务器的DNS服务器不需要任何附加配置(我假设dnssec-validation已经打开):lan.区域提供服务,并在没有AD标志的情况下返回答案,AD标志的答案。如果域不验证,将发出SERVFAIL。lan.问题。但是,由于存根解析器与服务器之间的通信是未加密的,因此可以在传输过程中修改结果。您可以使用TSIG签名或TLS来保护它。我怀疑您不希望在每台客户端机器上设置一个Bind9服务器来充当验证存根解析器(有更好的替代方案,如systemd解决方案、dnsmasq方案或未绑定方案),但如果是这样的话,您需要首先为您的lan.区域检索密钥:
piotr@akela:~$ dig lan. DNSKEY +short
257 3 13 nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==然后,您需要将密钥作为受信任的添加,只允许从localhost递归查询,并将请求转发到“真实的”DNS服务器(假设是在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==";
};最后,只需将localhost添加为/etc/resolv.conf中的唯一DNS服务器:
nameserver ::1;编辑:systemd解析的配置甚至更简单:只需将DNSKEY添加到名为/etc/dnssec-trust-anchors.d/<your_name>.positive的文件:
lan. IN DNSKEY 257 3 13 nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==并在/etc/systemd/resolved.conf中强制DNSSEC:
DNSSEC=yeshttps://serverfault.com/questions/998592
复制相似问题