Outils pour utilisateurs

Outils du site


kb:crypto:dnssec

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
kb:crypto:dnssec [2020/08/30 10:05] beukb:crypto:dnssec [2022/07/09 19:54] (Version actuelle) beu
Ligne 1: Ligne 1:
-======DNSSEC======+======Signer ses entrées DNS avec DNSSEC sous Bind9======
  
-====Générer des clés sécurisé====+:!: Gérer son DNSSEC est plutôt simple, mais demande de la précaution, car si vous faites une erreur, les résolutions DNS de votre domaine seront rejetées par les résolveurs.
  
-Pour générer une clé KSK avec l’algorithme 14 :+ 
 +=====Signer un domaine===== 
 + 
 +==== Configuration de votre Bind9 ==== 
 + 
 +Avant de commencer, il faut s'assurer de plusieurs choses. La première est qu'il faut impérativement que l'utilisateur de votre service **bind9** puisse écrire dans le dossier contenant les zones.\\ 
 +Personnellement, je crée un dossier **/var/lib/bind9/zones** appartenant à l'utilisateur **bind**, et je fais un lien symbolique pour qu'il apparaisse aussi dans le dossier **/etc/bind/**. 
 + 
 +Il faudra ensuite définir un dossier pour contenir les clés. Ce dossier devra est lisible par l'utilisateur de votre service **bind9**. Dans la configuration, dans la catégorie options, vous devrez donc définir : 
 + 
 +<code> 
 +key-directory "/etc/bind/keys"; 
 +</code> 
 + 
 +Ensuite, je vous conseille de définir la méthode de mise à jour des zones en mode date, ce n'est pas obligatoire, mais je préfère comme ça. Dans votre configuration, toujours dans la catégorie **options**, il vous faut simplement définir : 
 + 
 +<code> 
 +serial-update-method date; 
 +</code> 
 + 
 +==== Configuration de votre domaine === 
 + 
 +Pour commencer, il faut générer les clés pour ce domaine. Avant cela, il faut il faut générer. 
 + 
 +Pour générer une clé KSK avec l’algorithme 16 :
  
 <code bash> <code bash>
-# dnssec-keygen -a ECDSAP384SHA384 -3 -n ZONE -f KSK -r /dev/urandom exemple.net+# dnssec-keygen -a ED448 -3 -n ZONE -f KSK exemple.net
 </code> </code>
  
 +Pour générer une clé ZSK avec l’algorithme 16 :
  
-Pour générer une clé ZSK avec l’algorithme 14 :+<code bash> 
 +# dnssec-keygen -a ED448 -3 -n ZONE exemple.net 
 +</code> 
 + 
 +Ensuite, dans la déclaration de votre zone dans la configuration de **bind9**, il faudra inclure ces deux lignes : 
 + 
 +<code> 
 +auto-dnssec maintain; 
 +inline-signing true; 
 +</code> 
 + 
 +Et recharger **bind9** avec :
  
 <code bash> <code bash>
-dnssec-keygen -a ECDSAP384SHA384 -3 -n ZONE -r /dev/urandom exemple.net+rndc reload
 </code> </code>
  
-====Signer une zone====+Une fois fait, vérifiez que votre domaine est bien signé en faisant une requête DNS simple : 
  
 +<code bash>
 +# dig +short @ns01.virtit.fr virtit.fr DNSKEY
 +</code>
  
 +Vous devriez voir vos 2 clés: 
 +
 +<code>
 +257 3 14 8EFFgoNyjBNEVEJv2bcWEuJNVce/UAEFLUmImpSbXoheyMxPZie7XGLW lr7JK0kxt/LqHz5vIqNq5dmjLMOKLo+sziw8/Xn03aM+RdAOOPO9YYQk zMMf5x49kbGRE0UQ
 +256 3 14 hnBDXcku9GgDVcs+UjwE837AXqkg22dzNDRy9ovb+JgOPUSJxggyTpos DorqO+C5zklhUQQGdS59fNiL+9w/jcGNAEj6d/vkO941KuH0M1WxkP1u WkDidQEnvXKYMu3d
 +</code>
 +
 +Ensuite, comme quand vous avez créé vos clés, il va falloir aller définir les entrées DS dans votre registrar. Il est obligatoire de déclarer les entrées DS de ses clés KSK, et facultatif de le faire pour les clés ZSK. La norme étant même de ne pas le faire.
 +
 +Pour récupérer l'entrée DS, faites la commande :
  
 <code bash> <code bash>
-dnssec-signzone -3 1EA78EAF -e 20180806050000 -k /etc/bind/keys/Kexemple.com.ksk.key -o exemple.com /etc/bind/local/exemple.com /etc/bind/keys/Kexemple.com.zsk.key+dnssec-dsfromkey -a SHA-384 Kvirtit.fr.+016+17928.key
 </code> </code>
  
-====Roll-Over des clés====+et ensuite, on va l'ajouter dans votre registrar. Il m'est impossible de couvrir tout les registrar, donc a vous de trouver comment faire.
  
-  Générer une nouvelle clé +Une fois fait, vous pouvez vérifier que les signatures sont valides via le site https://dnsviz.net/ 
-  Ajouter la clé dans la zone +=====Roll-Over des clés===== 
-  Fournir l'entrée DS au registrar + 
-  - Attendre le temps de déploiement et de fin de cache +La pratique recommandée est de renouveler ses clés ZSK tout les 3 mois, et les KSK tous les ans. 
-  - Signer la zone avec la nouvelle clé et supprimer l'ancienne clé du registrar+ 
 +Personnellement, je ne prends pas le temps de le faire, je fais le renouvellement des 2 clés tous les ans environ. 
 + 
 +Rendez-vous dans votre dossier de clé, et générez les clés que vous souhaitez renouveler. Comme ceci pour la KSK : 
 + 
 +<code bash> 
 +# dnssec-keygen -a ED448 -3 -n ZONE -f KSK -r /dev/urandom exemple.net 
 +</code> 
 + 
 +et comme cela pour la ZSK: 
 + 
 +<code bash> 
 +# dnssec-keygen -a ED448 -3 -n ZONE -r /dev/urandom exemple.net 
 +</code> 
 + 
 +Assurez vous que les clés sont lisibles par l'utilisateur de **bind**, dans mon cas, il suffit d'autoriser la lecture au groupe, via : 
 + 
 +<code bash> 
 +# chmod g+r /etc/bind/keys/
 +</code> 
 + 
 +Ensuite, rechargez la configuration de bind : 
 + 
 +<code bash> 
 +# rndc reload 
 +</code> 
 + 
 +Ensuite, vous pouvez vérifier que les clés ont été chargées via : 
 + 
 +<code bash> 
 +# dig +short @ns01.virtit.fr virtit.fr DNSKEY 
 +</code> 
 + 
 +Vous devriez voir 4 clés, les anciennes et les nouvelles, par exemple :  
 + 
 +<code> 
 +257 3 14 8EFFgoNyjBNEVEJv2bcWEuJNVce/UAEFLUmImpSbXoheyMxPZie7XGLW lr7JK0kxt/LqHz5vIqNq5dmjLMOKLo+sziw8/Xn03aM+RdAOOPO9YYQk zMMf5x49kbGRE0UQ 
 +256 3 14 hnBDXcku9GgDVcs+UjwE837AXqkg22dzNDRy9ovb+JgOPUSJxggyTpos DorqO+C5zklhUQQGdS59fNiL+9w/jcGNAEj6d/vkO941KuH0M1WxkP1u WkDidQEnvXKYMu3d 
 +256 3 16 qI8l3+HET31u9qSw3l8mjKVoM0QI6dRlHAH2j/VySfM7cc4FakesgoT7 4Kj8tIDWShTIAbQ8gh2A 
 +257 3 16 XKBH2mz7VoHzOPxcYPAqfjxr9yAu3Xweu7pGSGhxxQx7TJilIYj0f1zV uqFh7TQ6cmdna3HPrbaA 
 +</code> 
 + 
 +Ensuite, comme quand vous avez créé vos clés, il va falloir aller définir les entrées DS dans votre registrar. Pour rappel, il est obligatoire de déclarer les entrées DS de ses clés KSK. 
 + 
 +Pour récupérer l'entrée, faites la commande : 
 + 
 +<code bash> 
 +dnssec-dsfromkey -a SHA-384 Kvirtit.fr.+016+17928.key 
 +</code>
  
-====Vérifier ses signatures====+et ensuite, on va l'ajouter dans votre registrar. Il m'est impossible de couvrir tout les registrar, donc a vous de trouver comment faire.
  
-Afin de vérifier de manière graphique, voici un site fait pour cela :+:!: Ne supprimez pas les anciennes entrées DS pour le moment
  
-[[http://dnsviz.net/]]+Il faudra attendre l'expiration du TTL de vos entrées DS, ce qui dépend de votre registrar. Vous pouvez l'obtenir en faisant une requete avec dig, mais par sécurité, je préfère attendre 1 ou 2 jours avant de la supprimer. De même, je vérifie toujours que les signatures via https://dnsviz.net/ sont valides avant de les supprimer.
kb/crypto/dnssec.txt · Dernière modification : 2022/07/09 19:54 de beu