Assinando DNSSEC em seus domínios autoritativos (Bind9)

Nesse tutorial vamos aprender configurar o DNSSEC (Domain Name System SECurity extensions) em seus domínios autoritativos.

Usarei um exemplo de configuração seguindo a topologia adotada já em tutoriais do bind9 publicados aqui no blog. Então neste exemplo usarei de modelo o domínios cursodns.com.br (Aproveitando fazer um merchandising do meu curso).

Como de costume gosto de ter os diretórios/arquivos organizados, logo em nosso diretório padrão /var/cache/bind/ crio sempre um diretório para dizer se é master ou slave deixando o nome da pasta “master-aut” ou “salve-aut” aut de autoritativo, e como vamos assinar nosso domínio irei criar mais um diretório para o domínio, pois iremos ter vários arquivos para cada domínio e mais ainda, irei criar a pastinha onde ficarão as keys. Não gosto de “bagunça na casa”, pelo menos no servidor. 🙂

Antes de mais nada já com o domínio configurado. Segue um exemplo aqui para ilustrar as demais configurações, mas recomendo a leitura do tutorial: Servidor DNS seguro com Bind9 (Recursivo, Autoritativo e Reverso) + Fail2ban + nftables no Debian 10 Buster

Configurações da zona cursodns.com.br em named.conf.local

É extremamente dar permissões ao diretórios para que o bind possa acessar e criar as configurações do DNSSEC.

Agora vamos proprimamente para as configurações do DNSSEC:

Ajuste as configurações de DNSSEC em named.conf.options adicionando dnssec-enable yes; dnssec-validation yes; e dnssec-lookaside auto; dentro de options {…}.

Reinicie os serviços

Até aqui é o que você já teria que ter configurado, ou acabou de configurar.

Agora vamos a criação das chaves:

Os comandos acima irão gerar 4 arquivos com extensões .key e .private

Altere as permissões de diretórios/arquivos para que o bind consiga criar as assinaturas de forma automaticamente.

Vamos ajustar nossa zona para que o bind crie a assinatura automaticamente, e renove a mesma também.

Vamos incluir as variáveis key-directory, auto-dnssec, inline-signing e serial-update-method.

Reinicie os serviços

Novos arquivos são gerados .jbk .signed .signed.jnl

Depois de qualquer edição no “cursodns.com.br.hosts” nunca esqueça de alterar o serial do mesmo para que ao reiniciar o bind reassine automaticamente. O BIND 9.7.0 introduziu a atualização automática de assinaturas no servidor e a substituição automática de chaves. Se desejar verificar a versão do seu bind use o comando:

Não podemos esquecer de ajustar as configurações na zona do seu servidor Slave incluído um .signed que o bind tratará de fazer o resto.

Visualizando a chave DS que será informada no registro.br

Sendo “12531” sua keytag e “09436D3E76B37CB6836EF918992279334530ED18” seu digest

Você deve também validar a mesma utilizando as ferramentas do registro.br
https://registro.br/tecnologia/ferramentas/verificacao-de-ds/

Tudo certo, acesse sua conta no registro.br e altera os servidores DNS do seu domínios, em seguida para informar seu DS clique no botão [ + DNSSEC ] e informe sua keytag e seu digest. Como no exemplo:

Salve as configurações, e aguarde a publicação.

Validando externamente após configurado:
https://dnsviz.net

https://dnssec-analyzer.verisignlabs.com/

Comandos para verificar

Curtiu o conteúdo? Quer me ajudar? 🙂

Conheça meu curso DNS ao vivo: Curso Bind9

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento! (Esse deu trabalho!)

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Participe do canal no telegram para ficar atualizado sempre que publicar um novo tutorial.

Abraço!

Referencias:
https://wiki.debian.org/DNSSEC
https://downloads.isc.org/isc/dnssec-guide/html/dnssec-guide.html
https://ftp.isc.org/isc/dnssec-guide/dnssec-guide.pdf
https://registro.br/tecnologia/dnssec/tutoriais/
https://wiki.debian.org/Bind9

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

9 Resultados

  1. ALMIR disse:

    Boa tarde Rudimar! Muito bom o post Rudimar eu estou com um problema neste site https://registro.br/tecnologia/ferramentas/verificacao-de-ds/ ele informa que o Record DS não assinado. porém já neste sites https://dnssec-analyzer.verisignlabs.com/ e https://dnsviz.net teve uma resposta positiva. o que pode ser isso

  2. almir disse:

    BOm dia Rudimar Excelente post ! olha eu fiz tudo conforme o post, porém ao testar no site do nic está informando que o RECORD DS não está assinado, porém eu fiz consulta fora em site externo tipo o https://dnsviz.net/ e https://dnssec-analyzer.verisignlabs.com/ passa de boa da tudo certinho na consulta.
    inclusive eu fiz os testes no terminal está aparecendo os RSIG e DS, e já até coloquei no site do nic os apontamento das KEy etc… pegou de boa.
    O que pode está faltando

  3. M. Gonçalves disse:

    Olá… Quero parabenizar o autor pelos excelentes tutoriais.
    Estou com um problema… instalei e configurei o dns server seguindo os dois tutoriais.
    Porém, quando configurei o DNSSEC gerou corretamente o arquivo “.signed”…….. porém agora quando altero o arquivo “.hosts” (e atualizo o serial) ele não gera mais o arquivo “.signed”.
    Alguém tem ideia do que pode ser?

    • Paiva disse:

      Boa tarde Rudimar! excelente post porém eu estou tendo problemas de aviso quando eu tento fazer uma consulta utilizando o site do registro BR
      ele diz que Record DS erro.

  4. Carlos Alberto disse:

    Estranho que do dnssec não tem no Debian 10 com o bind9
    bash: dnssec-keygen: comando não encontrado
    bind9utils is already the newest version (1:9.11.5.P4+dfsg-5.1+deb10u1).
    E não consegui instalar ele na maquina também.
    Teria uma luz ?

  5. Almir Alves disse:

    Muito Bom! muito legal

  6. Parabéns chefe, ja me ajudou em muita coisa. Gostaria que você fizesse um tutorial do Krill para RPKI. Obrigado…

  7. Roberto disse:

    deu tudo certo!! top d+
    Thanks!!!!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *