DNSSEC utilise deux types de clé :
Perso, il m'arrive d'attendre 2 ou 3 ans pour renouveler la KSK
dig +short DNSKEY domaine.org
Les enregistrements commençant par 256 indiquent une clé ZSK.
Les enregistrements commençant par 257 indiquent une clé KSK,
L'enregistrement DS contenu dans la zone parent correspond au fingerprint de la clé publique.
On créé un répertoire “keys” : Par exemple dans /var/cache/bind/keys/ et on y génère la clé :
mkdir /var/cache/bind/keys cd /var/cache/bind/keys dnssec-keygen -a ECDSAP256SHA256 -n ZONE domaine.org
Selon l'algorithme utilisé, ça peut prendre énormément de temps à générer, car le système a besoin d'entropie pour pouvoir générer des nombres quasi-aléatoires.
On peut utiliser des paquets comme haveged
ou rng-tools
pour accroître l'entropie sur le serveur, si besoin.
Cela va générer deux fichiers (les clés), avec un nombre à 5 chiffres (le key tag) :
Kdomaine.org.+013+08810.key
Kdomaine.org.+013+08810.private
C'est presque la même commande :
mkdir /var/cache/bind/keys dnssec-keygen -f KSK -a ECDSAP256SHA256 -n ZONE domaine.org
Vérifier le user/group (bind:bind) et vérifier les permissions sur les fichiers créés : 644 -rw-r–r– sur la clé publique, 600 -rw——- sur la clé privée
Dans le fichier de conf général /etc/bind/named.conf.options rajouter dans la section options {} :
key-directory "/var/cache/bind/keys";
Dans le fichier de conf de la zone :
zone "domaine.org" in { type master; file "domaine.org.named"; // Rajouter ça : auto-dnssec maintain; dnssec-loadkeys-interval 720; inline-signing yes; };
Il faut aller coller la clé publique dans l'interface de votre registrar, afin que la chaîne soit OK sur le domaine parent (.org dans ce tuto)
Ici avec Gandi par exemple :
Ensuite, il vaut mieux attendre que cette clé soit prise en compte chez le registrar, ça peut prendre 12h à 48h. Sinon, le domaine tout entier serait inaccessible faute de validation complète…
A priori, il n'est pas obligatoire ni nécessaire d'informer le registrar de la ZSK, vu qu'elle change souvent… J'ai pas encore bien compris pourquoi
systemctl reload named.service
Et vérifier que les 2 clés sont présentes, en local, et depuis l'extérieur :
dig +short DNSKEY domaine.org dig +short DNSKEY domaine.org @8.8.8.8
dnssec-keygen -a ECDSAP256SHA256 -n ZONE domaine.org
Ca ne devrait pas casser le domaine, car l'ancienne clé est déjà valide.
Vérifier que vous avez bien la ZSK (256) + les 2 KSK (257) dans votre domaine en local :
dig +short DNSKEY domaine.org 257 3 13 HshZ2omhpt8xW+nsLtybcdnlrfdYSHAR/xGpA3+yFyt/fWA8/p7c5gXw fgEsyiTblSH4jddEu8mch2osTsOT4Q== 257 3 13 quL7deWtZvN9wvRSkpwRRiqquCAaG3viBTIHr1lZnK43FUO8FFmwr1ur EN/zj2IOSsYfmjfNM287/VNlSYNA2g== 256 3 13 gB6NZI6jveNDBqA+jXCvitAT7eu45ftV4Y6cJLDjTNsg4Wcd8vOrHJQ+ NfvkF3kkuLIhA3lvp2TtLSGtGuE81A==
Je conseille l'excellent : https://dnsviz.net/
mais aussi : https://dnssec-analyzer.verisignlabs.com
et vérifier que tout aille bien dans le monde :
dig +short DNSKEY domaine.org @8.8.8.8
Ca ne devrait pas casser le domaine, car la nouvelle clé devrait maintenant être valide et propagée au(x) serveur(s) secondaire(s).
…et redémarrer bind une dernière fois ===