在 BIND 服务器之间迁移签名区域

在 BIND 服务器之间迁移签名区域

我在将已签名的 DNS 区域迁移到新服务器时遇到了一些麻烦。我复制了区域文件(未签名、已签名和日志)、签名密钥和 DS 集。一旦到位,BIND 很乐意为该区域提供服务,但无法对其进行签名。这是我尝试运行的结果rndc sign example.com

29-Sep-2022 17:16:42.605 general: info: received control channel command 'sign example.com'
29-Sep-2022 17:16:42.605 general: debug 1: zone_settimer: zone example.com/IN: enter
29-Sep-2022 17:16:42.605 general: debug 1: zone_timer: zone example.com/IN: enter
29-Sep-2022 17:16:42.605 general: debug 1: zone_maintenance: zone example.com/IN: enter
29-Sep-2022 17:16:42.605 dnssec: info: zone example.com/IN: reconfiguring zone keys
29-Sep-2022 17:16:42.606 dnssec: warning: EVP_SignFinal failed (failure)
29-Sep-2022 17:16:42.606 dnssec: info: error:03000098:digital envelope routines::invalid digest:crypto/evp/pmeth_lib.c:961:
29-Sep-2022 17:16:42.606 dnssec: error: zone example.com/IN: sign_apex:add_sigs -> failure
29-Sep-2022 17:16:42.606 dnssec: debug 3: zone example.com/IN: zone_rekey failure: failure (retry in 600 seconds)
29-Sep-2022 17:16:42.606 general: debug 1: zone_settimer: zone example.com/IN: enter

配置的相关部分是:

options {
    dnssec-enable yes;
    dnssec-validation auto;
};
zone "example.com" IN {
    type master;
    file "dynamic/db.example.com.signed";
    auto-dnssec allow;
    update-policy {
        grant "local-nsupdate" wildcard *;
        grant "acme-clients" subdomain example.com. TXT;
    };
    also-notify { office-routers; };
};

新的配置几乎相同,只是删除了,dnssec-enable yes;因为日志告诉我它现在已经过时了。

旧服务器运行BIND 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 (Extended Support Version) <id:7107deb>在 Scientific Linux 7.6 上,新服务器运行BIND 9.16.23-RH (Extended Support Version) <id:fde3b1f>在 AlmaLinux 9.0 上。


编辑添加EVP_SignFinal看起来是OpenSSL 函数,所以问题可能根本不在 BIND 中。旧版本说named -V

由 GCC 4.8.5 20150623(Red Hat 4.8.5-44)编译,
使用 OpenSSL 版本编译:OpenSSL 1.0.2k 2017 年 1 月 26 日
链接到 OpenSSL 版本:OpenSSL 1.0.2k-fips 2017 年 1 月 26 日

新版本说:

由 GCC 11.2.1 20211203(Red Hat 11.2.1-7)编译,
使用 OpenSSL 版本编译:OpenSSL 3.0.1 2021 年 12 月 14 日
链接到 OpenSSL 版本:OpenSSL 3.0.1 2021 年 12 月 14 日

答案1

我最终通过降级解决了这个问题加密政策在系统上。似乎我 2015 年生成的 NSEC3RSASHA1 区域签名密钥不再足够强大,无法与默认设置配合使用。我通过运行以下命令解决了此问题:

update-crypto-policies --set LEGACY
systemctl restart named.service
rndc sign example.com

当然,从安全角度来看,这不是一个令人满意的解决方案,所以我想我需要重新生成所有密钥,更新注册中心,并重新签署区域。

相关内容