BIND 和 DNSSEC 设置调试

BIND 和 DNSSEC 设置调试

我正在尝试启动并运行 DNSSEC,但在运行过程中遇到了一些困难。

我正在运行 BIND 9.14.2(在 Windows 上)。BIND 运行良好,这些服务器上有许多区域处于生产状态。但由于某种原因,我似乎无法让我的测试区域签名。不确定为什么。

以下是我目前所做的工作。我创建了一个名为 test.com 的新区域。为此,我生成了一对密钥:

密钥签名密钥:

dnssec-keygen -a RSASHA256 -f KSK -K "d:\zonekeys" test.com

区域签名密钥:

dnssec-keygen -a RSASHA256 -K d:\zonekeys\ test.com

它们都存在于磁盘上并且看起来正常。

d:\zonekeys\Ktest.com.+008+44385.key
d:\zonekeys\Ktest.com.+008+44385.private
d:\zonekeys\Ktest.com.+008+47869.key
d:\zonekeys\Ktest.com.+008+47869.private

该区域配置如下...

zone test.com {
    type master;
    file "test.com.zone";
    key-directory "d:\zonekeys";
    auto-dnssec maintain;
    inline-signing yes;
};

该区域正在运行,我可以顺利地挖掘它。它只是没有 DNSSEC 响应。

问题是为什么?我已确保启用了 eDNS。区域已更新。BIND 已重新启动,rndc 已重新加载等等。它就像根本没有 DNSSEC 一样。

已生成一个 test.com.zone.signed 文件,并以某种二进制文件的形式存在。我怀疑它正在被提供,但根本不包含任何签名数据。它应该包含签名数据吗?据我了解,“内联签名”意味着它应该在提供时“动态”对区域进行签名。

我这里遗漏了什么?为什么我没有收到任何 DNSSEC 签名的响应?

答案1

感谢@piotr-p-karwasz 为我指明了正确的方向。这确实是 .private 文件的访问权限问题。在 named_debug.log 中,我发现了以下内容

20-Dec-2019 9:42:03.665 general: warning: dns_dnssec_findmatchingkeys: error reading key file Ktest.com.+008+44385.private: permission denied
20-Dec-2019 9:42:03.665 general: warning: dns_dnssec_findmatchingkeys: error reading key file Ktest.com.+008+47869.private: permission denied

事实证明,我保存密钥文件的文件夹(d:\zonekeys)的继承已被禁用,因此绑定过程无法访问这些文件,只能访问文件夹。

相关内容