Configurações de Infraestrutura

Abaixo você deve encontrar informações pertinentes para configuração do DNSSEC nas versões mais novas do BIND.  Fornecemos arquivos que podem ser utilizados para a configuração do seu servidor. Então apresentamos instruções para gerar as chaves KSK e ZSK iniciais e subsequentes, atendendo às recomendacoes de rollover das RFCs. Após gerar as chaves será necessário optar por um método de assinatura periódica dos conjuntos de registros (RRsets) de suas zonas. Você pode escolher fazer assinaturas automáticas in-line, aonde o proóprio BIND ficará responsável também por gerar as chaves subsequentes a partir das criadas na etapa anterior. Esse método de assinatura (automática) é o mais recomendado para a maioria das situações. Caso prefira, será possível controlar completamente o processo de assinatura periódica dos RRsets e de rollover de chaves de suas zonas. Dessa forma todos os registros ficam previamente assinados e você deverá gerar manualmente as chaves KSK e ZSK subsequentes, além de configurar alguma forma para fazer a re-assinatura periódica dos RRsets.

 

 

 

  • Criacao de chaves iniciais e subsequentes para a zonas.
    Pode ser importante instalar o haveged (Exemplo: apt-get install haveged ) em máquinas virtuais para fornecer um melhor fonte de entropia para o comando dnssec-keygen gerar as chaves mais rapidamente.
    Recomendamos usar o algoritmo ECDSAP384SHA384 pois produz chaves menores e mais seguras devido às cifras com curvas elípticas.

    • KSK (gerar duas chaves *)
      dnssec-keygen -3 -f KSK -a ECDSAP384SHA384 -n ZONE nomezona.usp.br
      dnssec-keygen -3 -f KSK -a ECDSAP384SHA384 -n ZONE nomezona.usp.br


    • ZSK
      #!/bin/bash
      #Criação da chave inicial. No exemplo abaixo a chave será válida por 6 meses e o prazo de desativação é 8 meses.
      ZONE=”FQDN.usp.br”
      ZSKKEY=$(dnssec-keygen -3 -a ECDSAP384SHA384 -I now+12mo -D now+14mo -n ZONE ${ZONE})
      #Criação de uma chave subsequente.
      ZSK_NEXTKEY1=$(dnssec-keygen -I now+24mo -D now+26mo -S ${ZSKKEY}.key)
      #Recomendamos sempre ter pelo menos um par de chaves ativas em cada período de publicacao, por isso, abaixo outra chave inicial e mais uma subsequente.
      ZSKBKPKEY=$(dnssec-keygen -3 -a ECDSAP384SHA384 -I now+12mo -D now+14mo -n ZONE ${ZONE})
      ZSKBKP_NEXTKEY1=$(dnssec-keygen -I now+24mo -D now+26mo -S ${ZSKBKPKEY}.key )
      echo $ZSKKEY
      echo $ZSK_NEXTKEY1
      echo $ZSKBKPKEY
      echo $ZSKBKP_NEXTKEY1
    • Você encontrará explicações sobre as chaves KSK e ZSK neste link.
      Criamos mais de uma chave válida simultaneamente, chaves subsequentes e especificamos o prazo de validade em todas ZSKs devido ao rollover de chaves, descrito neste link.

 

  • Modos de assinatura
    Você pode escolher uma das formas abaixo para gerir  as chaves e as assinaturas periódicas de suas zonas que possuem o DNSSEC ativado.

    1. Assinatura automática in-line
      Supomos que o BIND 9.10 será usado.
      No arquivo de zona:
      zone “FQDN.usp.br” {
      type master;
      update-policy local;
      auto-dnssec maintain;
      inline-signing yes;
      file “ARQUIVO_ZONA.db”;
      };
      Copie as chaves KSK e ZSK (inicial e primeira subsequente) para diretório especificado no parâmetro key-directory da configuração do BIND. Recomendamos usar “sig-validity-interval 10 6; ” nessa configuração.
      rndc reconfig 
      rndc zonestatus FQDN.usp.br. IN NOME_VIEW_CONFIGURADA 
      rndc signing -nsec3param 1 1 10 auto FQDN.usp.br. IN NOME_VIEW_CONFIGURADA 
      Execute o for abaixo para gerar os registros DS que devem ser informados aos administradores da zona pai. O par de registros DS de uma chave deverá ser usado para a delegação segura. O par de DS da outra chave deve ficar guardado para uso em caso de comprometimento da outra chave.
      for i in $( grep -l “key-signing” ./*key ); do dnssec-dsfromkey $i;done 


    2. Assinatura completa crontab
      Os scripts abaixo podem auxiliar na geração de chaves e reassinatura periódica:
      geraChavesEassinaZona.sh
      zonesigner.sh
      checkzone.sh

Para testes do DNSSEC na zona utilize:

http://dnsviz.net/

http://dnssec-debugger.verisignlabs.com/

 

Outras ferramentas de teste são o https://tools.dnsstuff.com/ e o https://www.zonemaster.net

Para verificar propagacao de mudanças você pode usar o https://dnsmap.io/ ou o http://www.isptools.com.br/dns

A URL https://www.dnssec-validator.cz/ se refere a um plugin para os navegadores mais conhecidos (IE, Firefox e Chrome) indicarem se o domínio do site que foi acessado está protegido pelo DNSSEC.

Os comandos abaixo podem ser úteis.
rndc status

rndc zonestatus XXX.usp.br IN internal
rndc zonestatus CCC.BBB.AAA.in-addr.arpa IN internal
rndc zonestatus 8.B.D.0.1.0.0.2.ip6.arpa IN internal

rndc reconfig #Rodar após alterar configiracoes do BIND.

/etc/init.d/bind9 restart # Se você usar “inline-signing yes” e não der rndc freeze e rndc thaw para editar a zona, rode o restart do bind (*.db ou *.rev)

named-checkconf -p
named-checkconf -z
Teste de EDNS