将命名/绑定配置迁移到 dnssec-policy 时出现问题

将命名/绑定配置迁移到 dnssec-policy 时出现问题

我有一个可用的 DNSSEC 名称服务器。它在最新的 Fedora 上的 BIND 9.18 上运行。我有两个密钥(KSK、ZSK),我的父母(DNS 方面)获得了有效的 DS 记录,一切都很好。真的。 DNSSEC 分析器也对设置感到满意。

但随后出现了这条日志消息:

“auto-dnssec”选项已弃用,并将在 BIND 9.19 中删除。请迁移到 dnssec-policy

不知道9.19是否以及什么时候推送更新。但我试着做好准备并替换了这个配置(在区域块中):

auto-dnssec maintain;
inline-signing yes;

和:

dnssec-policy sk_policy;
inline-signing yes;

并且策略本身是在顶级配置中定义的:

dnssec-policy "sk_policy" {
    keys {
        ksk key-directory lifetime unlimited algorithm ecdsa256;
        zsk key-directory lifetime unlimited algorithm ecdsa256;
        // zsk rollover postponed for later
        // zsk key-directory lifetime P90D algorithm ecdsa256;
    };  
    nsec3param iterations 0 optout no salt-length 0;
    parent-ds-ttl PT1H;
};

但服务器每 10 分钟记录一次错误:

reconfiguring zone keys
zone_rekey:dns_dnssec_keymgr failed: error occurred writing key to disk

当我搜索此错误消息时,Google 没有找到任何内容。

我尝试使用文件权限来允许密钥目录中的所有内容,我尝试暂时禁用 SELinux(准确地说是严格 -> 宽松),但没有生成任何警告。到目前为止没有任何帮助。我不知道服务器要写什么文件,在哪里,什么错误。我还尝试删除日志文件等,但这是一台生产机器,我无法进行太多实验,因此我将所有内容恢复到原始状态,并且暂时坚持使用 9.18 版本。

有人可以帮助让“dnssec-policy”正常工作吗?


更新#2: - 我发布了我的实验摘要作为(初步)答案。我仍在寻找良好的信息来源,以阻止这种试错实验。

答案1

我有同样的问题:

zone_rekey:dns_dnssec_keymgr failed: error occurred writing key to disk

看来只是权限问题。

我将目录的权限更改/etc/bind/keysrwxrwxr-- (774),并将其中的所有文件的权限更改为rw-rw-r-- (664)。

  • keys目录所有者是root
  • keys目录组已绑定

之后就可以了。我收到以下消息,并且某些文件的所有者已更改:

2023-02-05T17:27:16+0100 fake_servername 命名为[1234441]        .....(之前还有一些相关消息)
2023-02-05T17:27:16 + 0100 fake_servernamenamed[1234441]:一般:警告:文件 /etc/bind/keys/fake_domainname.de.+015+60580.private 的权限已从 0664 更改为 0600 作为此操作的结果。

答案2

我想我已经成功了(也许除了我还没有测试的按键翻转)。我决定写一个总结:

DNSSEC 密钥(在 BIND 中)由 3 个文件组成:公共部分、秘密副本和密钥状态文件。扩展名分别为: .key.private.state

使用auto-dnssec maintain,DNSSEC 密钥文件可以是只读的。但是当迁移到 时dnssec-policy,BIND 服务器会修改关键文件,并且会修改所有三个文件,而不仅仅是状态。 (我不明白为什么。我认为状态文件的存在使得无需编辑“真实”密钥文件。)

明显的要求是调整关键文件的权限:

我使用了目录、文件的root:named所有者:组和模式。显然这不是唯一可能的设置。重要的是服务器必须能够修改文件。私钥应受到保护。另请参阅“le luxe fou”的答案。请注意,在他的系统上,该用户称为。07700660namedbind

我一开始遇到的问题是SELinux。请注意,本节可能是 Fedora 特定的,并且 SELinux 政策将来可能会发生变化。我一开始没有收到 AVC 拒绝消息(也许我在某个地方犯了错误),这就是我发布这个问题的原因。

简而言之,我在/etc/named/keys目录中有密钥。 SELinux 将该位置中的文件视为写保护配置。所以我把它们放在/var/named/keys服务器可以修改文件的位置。不知道这是否是钥匙的正确位置。但我真的不想添加本地策略,audit2allow除非确实有必要。

最后注意:服务器日志:

由于此操作,文件 /var/named/keys/KXXX.+YYY+ZZZZ.private 的权限已从 0660 更改为 0600

但事实并非如此,权限没有改变。named( ) 用户可能bind是密钥文件的预期所有者。我没有找到这方面的任何文档。

相关内容