Estou tendo alguns problemas para migrar uma zona DNS assinada para um novo servidor. Copiei os arquivos de zona (não assinados, assinados e diários), chaves de assinatura e conjuntos de DS. Uma vez instalado, o BIND fica feliz em servir a zona, mas não pode ser assinado. Este é o resultado quando tento executar 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
As partes relevantes da configuração são:
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; };
};
A nova configuração é quase a mesma, apenas removendo dnssec-enable yes;
como o log me diz que está desatualizado agora.
O servidor antigo está rodando BIND 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 (Extended Support Version) <id:7107deb>
no Scientific Linux 7.6 e o novo está BIND 9.16.23-RH (Extended Support Version) <id:fde3b1f>
no AlmaLinux 9.0.
Editando para adicionar isso EVP_SignFinal
parece ser uma função OpenSSL , então é possível que o problema não esteja no BIND. A versão antiga named -V
diz:
compilado pelo GCC 4.8.5 20150623 (Red Hat 4.8.5-44)
compilado com a versão OpenSSL: OpenSSL 1.0.2k 26 de janeiro de 2017
vinculado à versão OpenSSL: OpenSSL 1.0.2k-fips 26 de janeiro de 2017
e nova versão diz:
compilado pelo GCC 11.2.1 20211203 (Red Hat 11.2.1-7)
compilado com a versão OpenSSL: OpenSSL 3.0.1 14 de dezembro de 2021
vinculado à versão OpenSSL: OpenSSL 3.0.1 14 de dezembro de 2021
Acabei resolvendo isso fazendo o downgrade da política de criptografia no sistema. Parece que a chave de assinatura de zona NSEC3RSASHA1 que eu gerei em 2015 não é mais forte o suficiente para funcionar com as configurações padrão. Resolvi isso executando:
Obviamente, essa não é uma solução satisfatória de um PoV de segurança, então acho que precisarei regenerar todas as minhas chaves, atualizar o registrador e renunciar às zonas. ?