logoCert_sugestao2.png

Procedimento de atualização da zona em servidores DNSSEC-habilitados

Introdução

Este procedimento descreve os passos para atualização do arquivo de zona em servidores DNSSEC-habilitados. A atualização de zona é necessária, por exemplo, quando da inserção de novos registros, ou para atualização de informações em registros já presentes. No cenário sem DNSSEC, uma mudança como essa implicava somente atualizar o Serial Number da zona e recarregar o servidor DNS. Com DNSSEC será preciso, além dos outros processos anteriores, reassinar o arquivo de zona.

Definições

Nesse tutorial, vamos assumir as seguintes configurações:
  • ARQUIVO_ZONA -> /etc/bind/var/exemplo-dnssec.zone
  • DIR_CHAVES -> /etc/bind/keys
    • Chave KSK atual: Kexemplo-dnssec.br.+005+50148
    • Chave ZSK atual: Kexemplo-dnssec.br.+005+39539

Definição inicial do arquivo de zona não assinada que deseja-se alterar (ARQUIVO_ZONA) - arquivo apenas de exemplo:
$TTL 86400 ; 1 day
@            IN SOA dns.exemplo-dnssec.br. root.exemplo-dnssec.br. (
                         2010100601 ; serial
                         10800      ; refresh (3 hours)
                         15         ; retry (15 seconds)
                         604800     ; expire (1 week)
                         10800      ; minimum (3 hours)
                         )
         IN NS   dns.exemplo-dnssec.br.
         IN NS   dns.ufba.br.
         IN MX 0 smtp.exemplo-dnssec.br.
         IN A    192.168.0.1
         IN AAAA 2001:db8::1

$INCLUDE "/etc/bind/keys/Kexemplo-dnssec.br.+005+50148.key" ; KSK
$INCLUDE "/etc/bind/keys/Kexemplo-dnssec.br.+005+39539.key" ; ZSK

dns      IN A 192.168.0.20
www      IN A 192.168.0.1
smtp     IN A 10.1.0.1
         IN A 10.1.0.2

Passos para atualização do arquivo

  • Edite o arquivo de zona não assinado, ARQUIVO_ZONA, para realizar a atualização desejada. Atente-se para atualizar o Serial Number do registro SOA, assim como era anteriormente. No exemplo abaixo, vamos adicionar um novo registro para webmail.exemplo-dnssec.br que está em 192.168.0.2 (observe a nova linha para o registro incluído e a atualização do serial):
$TTL 86400 ; 1 day
@            IN SOA dns.exemplo-dnssec.br. root.exemplo-dnssec.br. (
                         2010100602 ; serial
                         10800      ; refresh (3 hours)
                         15         ; retry (15 seconds)
                         604800     ; expire (1 week)
                         10800      ; minimum (3 hours)
                         )
         IN NS   dns.exemplo-dnssec.br.
         IN NS   dns.ufba.br.
         IN MX 0 smtp.exemplo-dnssec.br.
         IN A    192.168.0.1
         IN AAAA 2001:db8::1

$INCLUDE "/etc/bind/keys/Kexemplo-dnssec.br.+005+50148.key" ; KSK
$INCLUDE "/etc/bind/keys/Kexemplo-dnssec.br.+005+39539.key" ; ZSK

dns      IN A 192.168.0.20
www      IN A 192.168.0.1
smtp     IN A 10.1.0.1
         IN A 10.1.0.2
webmail  IN A 192.168.0.2

  • Feito isso, precisaremos re-assinar a zona. Para re-assinar a zona, execute o seguinte comando (a contra-barra apenas indica que o comando acima deveria conter apenas uma linha). Atente-se para alterar os parâmetros do comando conforme explicação abaixo:
dnssec-signzone -K DIR_CHAVES  -o pop-ba.rnp.br  -t  -k CHAVE_KSK \
   ARQUIVO_ZONA  CHAVE_ZSK

Os parâmetros acima são os seguintes:
-K DIR_CHAVES informa qual o diretório que contém os arquivos das chaves (públicas e privadas) KSK e ZSK, substitua DIR_CHAVES conforme listado na seção de definições acima.
-o exemplo-dnssec.br é o nome da zona, nesse caso exemplo-dnssec.br
-t é um parâmetro para gerar estatísticas sobre a assinatura da zona;
-k CHAVE_KSK informa qual a chave KSK para assinatura do DNSKEY; substitua CHAVE_KSK conforme listado na tabela de gerenciamento de chaves acima
ARQUIVO_ZONA é o arquivo de zona (parâmetro obrigatório), substitua ARQUIVO_ZONA conforme listado na seção de definições acima;
CHAVE_ZSK é a chave ZSK usada na assinatura dos outros registros da zona (parâmetro obrigatório). Substitua CHAVE_ZSK conforme listado na tabela de gerenciamento de chaves acima.

  • Por fim, deve-se recarregar o daemon do bind para que os novos dados sejam disponibilizados:
/etc/init.d/bind9 reload

  • Para garantir o sucesso de sua alteração, faça uma consulta por algum registro da zona e verifique se está tudo ok. Por exemplo:
dig +dnssec @IP-DO-SERVIDOR webmail.exemplo-dnssec.br.

Documentos relacionados