我正在尝试使用绑定设置一个也有自己区域的递归 DNS。
现在我想升级它以使用 dnssec,但据我所知,如果我没有域名,我必须使用 DLV。
但是,我找到的几本指南都说你需要注册,但实际上dlv.isc.org
并不存在。而且我读的一本关于 DNSSEC 的书说 DLV 将被弃用,所以我很疑惑。(如果您知道任何一步一步的设置指南,我将不胜感激)
答案1
当dlv.isc.org
服务器不再运行时,您仍然可以通过以下方式在 Bind 9 配置中设置另一个 DNSSEC Lookaside 服务器:dnssec 旁路选项。如果无法验证密钥example.com
,则后备服务器的名称将附加到密钥上,然后根据后备服务器的受信任密钥重新开始验证。我没有测试,但我相信这不会解决您的问题:如今可以lan.
肯定地验证私有域不存在,因此不会执行后备查询。
那么,怎样才能确保lan.
区域安全呢?这取决于用途:
- 您想要同时用作验证递归解析器并且该区域的权威服务器
lan.
不需要任何额外的配置(我假设dnssec-validation
已经打开):- 它将
lan.
为区域文件中的区域提供服务并返回答案没有国旗AD
, - 当其他域的查询进入时,它将执行递归查询,验证结果,并且只有当结果有效时才返回答案和标志
AD
。如果域未验证,SERVFAIL
则会发出。
- 它将
- 这存根解析器,这些服务器使用您的 DNS 服务器,依赖于您的 DNS 服务器的验证行为,因此它们将
lan.
毫无问题地解析。但是,由于存根解析器并且服务器未加密,结果可能会在传输过程中被修改。您可以使用 TSIG 签名或 TLS 来保护它。 - 这验证存根解析器要求你添加值得信赖的锚点他们的配置。
我怀疑你想在每个客户机器充当验证存根解析器(有更好的选择,例如systemd-已解决,域名系统或者未绑定),但如果是这种情况,您需要先检索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
唯一的 DNS 服务器/etc/resolv.conf
:
nameserver ::1;
编辑:systemd-已解决配置更加简单:只需将您的 DNSKEY 添加到名为的文件中/etc/dnssec-trust-anchors.d/<your_name>.positive
:
lan. IN DNSKEY 257 3 13 nnbo5DS5vyxB0OjUd7GbcrmXY7TgdGstk4xqXpu2wvXyoFa0YRqjLcHM QJGMguTrKJVYklMNRQXrStvawSF5eg==
并强制使用 DNSSEC /etc/systemd/resolved.conf
:
DNSSEC=yes