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.
- Manual do Bind 9.10: https://www.isc.org/downloads/bind/doc/bind-9-10/
Manual do Bind 9.11: https://www.isc.org/bind-9-11-arm/
- Comentários que podem ajudar na compilação do Bind https://git.uspdigital.usp.br/3669224/receitas_tecnicas/blob/master/Bind_9
- Arquivo para inicio da configuração, caso estejas usando BIND 9.10
- 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.
- KSK (gerar duas chaves *)
- 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.- 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
- Assinatura completa crontab
Os scripts abaixo podem auxiliar na geração de chaves e reassinatura periódica:
geraChavesEassinaZona.sh
zonesigner.sh
checkzone.sh
- Assinatura automática in-line
Para testes do DNSSEC na zona utilize:
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