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
elearning:workbooks:debian:11:sec:l106 [2025/12/07 11:36] adminelearning:workbooks:debian:11:sec:l106 [2025/12/07 14:09] (Version actuelle) admin
Ligne 31: Ligne 31:
         * 3.4 - Les fichiers de configuration         * 3.4 - Les fichiers de configuration
         * 3.5 - Utilisation         * 3.5 - Utilisation
 +        * 3.6 - Créer les Pairs de Clefs
 +        * 3.7 - Modifier la Configuration de Bind
 +        * 3.8 - Signer la Zone
 +        * 3.9 - La chaîne de confiance DNS
  
 =====Le Problématique===== =====Le Problématique=====
Ligne 2522: Ligne 2526:
 Retournez à l'accueil de Guacamole. Connectez-vous à la VM **Gateway_10.0.2.40_VNC** avec le compte **trainee** et le mot de passe **a39dae707d**. Retournez à l'accueil de Guacamole. Connectez-vous à la VM **Gateway_10.0.2.40_VNC** avec le compte **trainee** et le mot de passe **a39dae707d**.
  
-Ouvrez un navigateur web dans la VM et saississez l'adresse %%https:>//10.0.2.51:9443%%. Vous obtiendrez une fenêtre similaire à celle-ci :+Ouvrez un navigateur web dans la VM et saisissez l'adresse %%https:>//10.0.2.51:9443%%. Vous obtiendrez une fenêtre similaire à celle-ci :
  
 {{ :elearning:workbooks:centos:6:avance:openvas01.png?600 |}}  {{ :elearning:workbooks:centos:6:avance:openvas01.png?600 |}} 
Ligne 2556: Ligne 2560:
 {{ :elearning:workbooks:centos:6:avance:openvas07.png?600 |}}  {{ :elearning:workbooks:centos:6:avance:openvas07.png?600 |}} 
 {{ :elearning:workbooks:centos:6:avance:openvas08.png?600 |}} {{ :elearning:workbooks:centos:6:avance:openvas08.png?600 |}}
 +
  
 =====LAB #3 - Sécuriser le Serveur DNS===== =====LAB #3 - Sécuriser le Serveur DNS=====
Ligne 2561: Ligne 2566:
 ====3.1 - Le serveur DNS==== ====3.1 - Le serveur DNS====
  
-Le principe du DNS est basé sur l'équivalence entre un **FQDN** ( Fully Qualified Domain Name ) et une adresse IP. Les humains retiennent plus facilement des noms tels www.ittraining.team, tandis que les ordinateurs utilisent des chiffres. +Le principe du DNS est basé sur l'équivalence entre un **FQDN** ( Fully Qualified Domain Name ) et une adresse IP. Les humains retiennent plus facilement des noms tels que www.ittraining.team, tandis que les ordinateurs utilisent des chiffres. 
  
 Le **DNS** ( Domain Name Service ) est né peut après l'introduction des FQDN en 1981.  Le **DNS** ( Domain Name Service ) est né peut après l'introduction des FQDN en 1981. 
  
-Lorque un ordinateur souhaite communiquer avec un autre par le biais de son nom, par exemple avec www.fenestros.com, il envoie une requête à un server DNS. Si le serveur DNS a connaissance de la correspondance entre le nom demandé et le numéro IP, il répond directement. Si ce n'est pas le cas, il démarre un processus de **Recursive Lookup**. +Lorsqu'un ordinateur souhaite communiquer avec un autre par le biais de son nom, par exemple avec www.fenestros.com, il envoie une requête à un serveur DNS. Si le serveur DNS a connaissance de la correspondance entre le nom demandé et le numéro IP, il répond directement. Si ce n'est pas le cas, il démarre un processus de **Recursive Lookup**. 
  
-Ce processus tente d'identifier le serveur de domaine responsable pour le **SLD** ( Second Level Domain ) afin de lui passer la reqûete. Dans notre exemple, il tenterait d'identifier le serveur de domaine responsable de **ittraining.com**.+Ce processus tente d'identifier le serveur de domaine responsable pour le **SLD** ( Second Level Domain ) afin de lui passer la requête. Dans notre exemple, il tenterait d'identifier le serveur de domaine responsable de **ittraining.com**.
  
 Si cette tentative échoue, le serveur DNS cherche le serveur de domaine pour le **TLD** ( Top Level Domain ) dans son cache afin de lui demander l'adresse du serveur responsable du SLD. Dans notre cas il tenterait trouver l'enregistrement pour le serveur de domaine responsable de **.com** Si cette tentative échoue, le serveur DNS cherche le serveur de domaine pour le **TLD** ( Top Level Domain ) dans son cache afin de lui demander l'adresse du serveur responsable du SLD. Dans notre cas il tenterait trouver l'enregistrement pour le serveur de domaine responsable de **.com**
Ligne 2573: Ligne 2578:
 Si cette recherche échoue, le serveur s'adresse à un **Root Name Server** dont il y en a peu. Si le Root Name Server ne peut pas répondre, le serveur DNS renvoie une erreur à la machine ayant formulé la demande.  Si cette recherche échoue, le serveur s'adresse à un **Root Name Server** dont il y en a peu. Si le Root Name Server ne peut pas répondre, le serveur DNS renvoie une erreur à la machine ayant formulé la demande. 
  
-Le serveur DNS sert à faire la résolution de noms. Autrement dit de traduire une adresse Internet telle **www.fenestros.com **en **numéro IP**.+Le serveur DNS sert à faire la résolution de noms. Autrement dit de traduire une adresse Internet telle que **www.ittraining.com **en **numéro IP**.
  
 ====3.2 - Préparation à l'Installation==== ====3.2 - Préparation à l'Installation====
  
-Le serveur DNS nécessite à ce que la machine sur laquelle il est installé possède un nom FQDN et une adresse IP fixe. Il est également important à noter que le service de bind ne démarrera **pas** dans le cas où le fichier **/etc/hosts** comporte une anomalie. Trois étapes préparatoires sont donc nécessaires :+Le serveur DNS nécessite que la machine sur laquelle il est installé possède un nom FQDN et une adresse IP fixe. Il est également important de noter que le service de bind ne démarrera **pas** dans le cas où le fichier **/etc/hosts** comporte une anomalie. Trois étapes préparatoires sont donc nécessaires :
  
   * Modification de l'adresse IP de la machine en adresse IP fixe   * Modification de l'adresse IP de la machine en adresse IP fixe
Ligne 2631: Ligne 2636:
  
 <WRAP center round important 50%> <WRAP center round important 50%>
-**Important** - La configuration du serveur DNS dépend du nom de votre machine. Dans le cas où vous changeriez ce nom, vous devez re-configurer votre serveur DNS en éditant les fichiers de configuration directement.+**Important** - La configuration du serveur DNS dépend du nom de votre machine. Dans le cas où vous changeriez ce nom, vous devez reconfigurer votre serveur DNS en éditant les fichiers de configuration directement.
 </WRAP> </WRAP>
  
 ====3.3 - Installation==== ====3.3 - Installation====
  
-Pour installer le serveur DNS, utilisez la commande **yum**: +Pour installer le serveur DNS, utilisez la commande **APT**: 
  
 <code> <code>
Ligne 2803: Ligne 2808:
     * Ce type définit le serveur DNS comme serveur maître ayant **autorité** sur la zone concernée.     * Ce type définit le serveur DNS comme serveur maître ayant **autorité** sur la zone concernée.
   * **slave**   * **slave**
-    * Ce type définit le serveur DNS comme serveur esclave pour la zone concernée. Ceci implique que la zone est une réplication d'une zone maître. Un type de zone esclave contiendra aussi une directive **masters** indiquant les adresses IP des serveurs DNS maîtres.+    * Ce type définit le serveur DNS comme serveur esclave pour la zone concernée. Ceci implique que la zone est une réplication d'une zone maîtresse. Un type de zone esclave contiendra aussi une directive **masters** indiquant les adresses IP des serveurs DNS maîtres.
   * **stub**   * **stub**
     * Ce type définit le serveur DNS comme serveur esclave pour la zone concernée mais uniquement pour les **enregistrements** de type **NS**.     * Ce type définit le serveur DNS comme serveur esclave pour la zone concernée mais uniquement pour les **enregistrements** de type **NS**.
   *  **forward**   *  **forward**
-    * Ce type définit le serveur DNS comme serveur de transit pour la zone concernée. Ceci implique que toute requête est re-transmise vers un autre serveur.+    * Ce type définit le serveur DNS comme serveur de transit pour la zone concernée. Ceci implique que toute requête est retransmise vers un autre serveur.
   * **hint**    * **hint** 
     * Ce type définit la zone concernée comme une zone racine. Ceci implique que lors du démarrage du serveur, cette zone est utilisée pour récupérer les adresses des serveurs DNS racine.     * Ce type définit la zone concernée comme une zone racine. Ceci implique que lors du démarrage du serveur, cette zone est utilisée pour récupérer les adresses des serveurs DNS racine.
Ligne 2821: Ligne 2826:
 Chaque section de zone, à l'exception de la zone "." est associée avec une section de zone inversée. Chaque section de zone, à l'exception de la zone "." est associée avec une section de zone inversée.
  
-La zone "." est configurée dans le fichier **** :+La zone "." est configurée dans le fichier **/usr/share/dns/root.hints** :
  
 <file> <file>
Ligne 2874: Ligne 2879:
 zone "ittraining.loc" { zone "ittraining.loc" {
     type master;     type master;
-    file "/etc/bind/zones/db.ittraining.loc.hosts";+    file "/etc/bind/zones/ittraining.loc";
     forwarders { };     forwarders { };
 }; };
Ligne 2929: Ligne 2934:
 zone "ittraining.loc" { zone "ittraining.loc" {
     type master;     type master;
-    file "/etc/bind/zones/db.ittraining.loc.hosts";+    file "/etc/bind/zones/ittraining.loc";
     forwarders { };     forwarders { };
 }; };
Ligne 2968: Ligne 2973:
       * Un nom de machine pour un eregistrement de type PTR       * Un nom de machine pour un eregistrement de type PTR
  
-==db.ittraining.loc.hosts==+==ittraining.loc==
  
-Ce fichier se trouve dans /etc/bind/zones. Il est le fichier qui définit la correspondance du nom de la machine **debian12.ittraining.loc** avec son numéro IP, à savoir le **10.0.2.46**. On définit dans ce fichier les machines qui doivent être appelées par leur nom :+Ce fichier se trouve dans /etc/bind/zones. C'est le fichier qui définit la correspondance du nom de la machine **debian12.ittraining.loc** avec son numéro IP, à savoir le **10.0.2.46**. On définit dans ce fichier les machines qui doivent être appelées par leur nom :
  
 <code> <code>
 root@debian12:~# mkdir /etc/bind/zones root@debian12:~# mkdir /etc/bind/zones
  
-root@debian12:~# vi /etc/bind/zones/db.ittraining.loc.hosts+root@debian12:~# vi /etc/bind/zones/ittraining.loc
  
-root@debian12:~# cat /etc/bind/zones/db.ittraining.loc.hosts+root@debian12:~# cat /etc/bind/zones/ittraining.loc
 $TTL 3D $TTL 3D
 @       IN     SOA     debian12.ittraining.loc. root.debian12.ittraining.loc. ( @       IN     SOA     debian12.ittraining.loc. root.debian12.ittraining.loc. (
Ligne 3014: Ligne 3019:
 </file> </file>
  
-Le caractère **@** corréspond au nom de la zone et est une abréviation pour le nom de la zone décrit par le fichier de la zone, soit dans ce cas db.**ittraining.loc**.hosts, et présent dans le fichier /etc/bind/named.conf.default-zones :+Le caractère **@** correspond au nom de la zone et est une abréviation pour le nom de la zone décrit par le fichier de la zone, soit dans ce cas db.**ittraining.loc**.hosts, et présent dans le fichier /etc/bind/named.conf.default-zones :
  
 <file> <file>
 zone "ittraining.loc" { zone "ittraining.loc" {
     type master;     type master;
-    file "/etc/bind/zones/db.ittraining.loc.hosts";+    file "/etc/bind/zones/ittraining.loc";
     forwarders { };     forwarders { };
 }; };
 </file> </file>
  
-Le **numéro de série** doit être modifié chaque fois que le fichier soit changé. Il faut noter que dans le cas de plusieurs changements dans la même journée il est necessaire d'incrémenter les deux derniers chiffres du numéro de série. Par exemple, dans le cas de deux changements en date du 07/12/2025, le premier fichier comportera une ligne Serial avec la valeur 2025120701 tandis que le deuxième changement comportera le numéro de série 2025120702 :+Le **numéro de série** doit être modifié chaque fois que le fichier est changé. Il faut noter que dans le cas de plusieurs changements dans la même journée il est nécessaire d'incrémenter les deux derniers chiffres du numéro de série. Par exemple, dans le cas de deux changements en date du 07/12/2025, le premier fichier comportera une ligne Serial avec la valeur 2025120701 tandis que le deuxième changement comportera le numéro de série 2025120702 :
  
 <file> <file>
Ligne 3090: Ligne 3095:
 ==db.2.0.10.hosts== ==db.2.0.10.hosts==
  
-Ce fichier se trouve dans /etc/bind/zones/Il est le fichier qui définit la correspondance de l'adresse IP de la machine, à savoir le **10.0.2.46** avec le nom **debian12.ittraining.loc**. Le chiffre **46** dans la dernière ligne correspond au 10.0.2.**46**:+Ce fichier se trouve dans /etc/bind/zones/C'est le fichier qui définit la correspondance de l'adresse IP de la machine, à savoir le **10.0.2.46** avec le nom **debian12.ittraining.loc**. Le chiffre **46** dans la dernière ligne correspond au 10.0.2.**46**:
  
 <code> <code>
Ligne 3112: Ligne 3117:
 root@debian12:~# ls -l /etc/bind/zones/* root@debian12:~# ls -l /etc/bind/zones/*
 -rw-r--r-- 1 root bind 362 Dec  7 12:16 /etc/bind/zones/db.2.0.10.hosts -rw-r--r-- 1 root bind 362 Dec  7 12:16 /etc/bind/zones/db.2.0.10.hosts
--rw-r--r-- 1 root bind 634 Dec  7 12:06 /etc/bind/zones/db.ittraining.loc.hosts+-rw-r--r-- 1 root bind 634 Dec  7 12:06 /etc/bind/zones/ittraining.loc
  
 root@debian12:~# chmod g+w /etc/bind/zones/* root@debian12:~# chmod g+w /etc/bind/zones/*
Ligne 3118: Ligne 3123:
 root@debian12:~# ls -l /etc/bind/zones/* root@debian12:~# ls -l /etc/bind/zones/*
 -rw-rw-r-- 1 root bind 362 Dec  7 12:16 /etc/bind/zones/db.2.0.10.hosts -rw-rw-r-- 1 root bind 362 Dec  7 12:16 /etc/bind/zones/db.2.0.10.hosts
--rw-rw-r-- 1 root bind 634 Dec  7 12:06 /etc/bind/zones/db.ittraining.loc.hosts+-rw-rw-r-- 1 root bind 634 Dec  7 12:06 /etc/bind/zones/ittraining.loc
 </code> </code>
  
Ligne 3168: Ligne 3173:
  
 <code> <code>
-root@debian12:~dig ittraining.team+root@debian12:/etc/bind/zonesnslookup debian12.ittraining.loc 
 +Server:         127.0.0.1 
 +Address:        127.0.0.1#53
  
-; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> ittraining.team +Name  debian12.ittraining.loc 
-;; global options+cmd +Address10.0.2.46
-;; Got answer: +
-;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 2281 +
-;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +
- +
-;; OPT PSEUDOSECTION: +
-; EDNS: version: 0, flags:; udp: 1232 +
-; COOKIE: 4636b78c3faf7d8601000000693562ef43b259360cb074d1 (good) +
-;; QUESTION SECTION: +
-;ittraining.team.               IN      A +
- +
-;; Query time: 220 msec +
-;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) +
-;; WHEN: Sun Dec 07 12:20:15 CET 2025 +
-;; MSG SIZE  rcvd: 72 +
- +
-root@debian12:~# dig debian.org +
- +
-; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> debian.org +
-;; global options+cmd +
-;; Got answer: +
-;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 54833 +
-;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +
- +
-;; OPT PSEUDOSECTION: +
-; EDNS: version: 0, flags:; udp: 1232 +
-; COOKIE: f29e9f7be263f24f01000000693563262166d65b352f271e (good) +
-;; QUESTION SECTION: +
-;debian.org.                    IN      A +
- +
-;; Query time: 104 msec +
-;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) +
-;; WHEN: Sun Dec 07 12:21:10 CET 2025 +
-;; MSG SIZE  rcvd: 67+
  
 root@debian12:~# dig ittraining.loc root@debian12:~# dig ittraining.loc
Ligne 3249: Ligne 3223:
 ;; WHEN: Sun Dec 07 12:22:00 CET 2025 ;; WHEN: Sun Dec 07 12:22:00 CET 2025
 ;; MSG SIZE  rcvd: 116 ;; MSG SIZE  rcvd: 116
- 
 </code> </code>
  
Ligne 3256: Ligne 3229:
 </WRAP> </WRAP>
  
 +====3.6 - Créer les Pairs de Clefs====
  
 +Utilisez la commande **dnssec-keygen** pour créer la ZSK :
  
 +<code>
 +root@debian12:~# cd /etc/bind/zones/
  
 +root@debian12:/etc/bind/zones# dnssec-keygen -b 2048 -a RSASHA256 ittraining.loc
 +Generating key pair............+.....+...+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.....+........+...+...+....+...+........+.......+.....+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+.........+..............+....+..+...+.+......+...+..+...+..........+...+.....+...+......+.+........+.+.........+..+.........+......+...+......+.........+..........+......+.....+...+.+.........+...+.....+....+...+............+........+.+...........+...+...+...+........................+...+.......+......+.....+.+....................+....+.....+......................+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ..+......+........+.......+.....+......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*................+.+............+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
 +Kittraining.loc.+008+18528
 +</code>
 +
 +<WRAP center round important 50%>
 +**Important** - L'option **-a RSASHA256** force l'utilisation de l'algorithme SHA2 au lieu de SHA1.
 +</WRAP>
 +
 +<code>
 +root@debian12:/etc/bind/zones# ls -l
 +total 24
 +-rw-rw-r-- 1 root bind  362 Dec  7 12:16 db.2.0.10.hosts
 +-rw-rw-r-- 1 root bind  747 Dec  7 13:13 ittraining.loc
 +-rw-r--r-- 1 root bind  612 Dec  7 13:28 Kittraining.loc.+008+18528.key
 +-rw------- 1 root bind 1776 Dec  7 13:28 Kittraining.loc.+008+18528.private
 +</code>
 +
 +<WRAP center round important 50%>
 +**Important** - Dans le nom de chaque fichier, **008** indique l'utilisation de SHA2. Dans le cas de l'utilisation de SHA1, la valeur serait **005**. La valeur **18528** est l'identifiant du pair de clefs.
 +</WRAP>
 +
 +Utilisez la commande **dnssec-keygen** pour créer la KSK :
 +
 +<code>
 +root@debian12:/etc/bind/zones# dnssec-keygen -b 4096 -f KSK -a RSASHA256 ittraining.loc
 +Generating key pair..+.....+....+......+......+.....+....+...+.....+......+......................+........+....+...+...+.........+..+...+.+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.....+.+...........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.........+.......+......+..+......+.......+.........+..............+.........+.+..+....+.....+....+..+.......+...+..+......+..........+...........+.+....................+...+......+.........+.........+.+......+........+...+............+..........+...+...+....................+....+........+...+....+..................+..............+.........+.......+...+..+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ..+..+....+..+.......+..+......+.........+....+..+..........+.....+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.......+........+.+.....+.......+........+.......+..+.+......+..............+.+......+.........+...+......+.........+...+.................+................+......+.....+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...........+....+...+............+..............+..........+.................+.............+.........+..+...+.+..+.........+...+.............+...+.....+....+..+...+......+.......+...+.........+...+.....+.........+....+...........+......+.......+...........+.+.........+.....+.+.....+..................+.+..+.........+.........+.......+........+...................+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
 +Kittraining.loc.+008+63515
 +</code>
 +
 +<WRAP center round important 50%>
 +**Important** - L'option **-f** indique le type de pair de clefs, soit KSK.
 +</WRAP>
 +
 +Constatez la présence des pairs de clefs :
 +
 +<code>
 +root@debian12:/etc/bind/zones# ls -l
 +total 24
 +-rw-rw-r-- 1 root bind  362 Dec  7 12:16 db.2.0.10.hosts
 +-rw-rw-r-- 1 root bind  747 Dec  7 13:13 ittraining.loc
 +-rw-r--r-- 1 root bind  612 Dec  7 13:28 Kittraining.loc.+008+18528.key
 +-rw------- 1 root bind 1776 Dec  7 13:28 Kittraining.loc.+008+18528.private
 +-rw-r--r-- 1 root bind  957 Dec  7 13:28 Kittraining.loc.+008+63515.key
 +-rw------- 1 root bind 3316 Dec  7 13:28 Kittraining.loc.+008+63515.private
 +</code>
 +
 +====3.7 - Modifier la Configuration de Bind====
 +
 +Ajoutez les deux clefs publiques dans la configuration du fichier de zone **/etc/bind/zones/ittraining.loc** :
 +
 +<code>
 +root@debian12:/etc/bind/zones# vi ittraining.loc 
 +
 +root@debian12:/etc/bind/zones# cat ittraining.loc
 +$TTL 3D
 +@       IN     SOA     debian12.ittraining.loc. root.debian12.ittraining.loc. (
 +               2025120702       ; Serial
 +               8H   ; Refresh
 +               2H   ; Retry
 +               4W  ; Expire
 +               1D)  ; Minimum TTL
 +               IN      NS      debian12.ittraining.loc.
 +localhost                                127.0.0.1
 +dnsmaster                   IN      CNAME  debian12.ittraining.loc.
 +debian12.ittraining.loc.    IN      A      10.0.2.46
 +
 +ftp IN CNAME debian12.ittraining.loc.
 +www IN CNAME debian12.ittraining.loc.
 +mail IN CNAME debian12.ittraining.loc.
 +news IN CNAME debian12.ittraining.loc.
 +
 +$include /etc/bind/zones/Kittraining.loc.+008+18528.key
 +$include /etc/bind/zones/Kittraining.loc.+008+63515.key
 +</code>
 +
 +<WRAP center round important 50%>
 +**Important** - N'oubliez pas de changer la valeur **serial**.
 +</WRAP>
 +
 +Redémarrez le service **named** :
 +
 +<code>
 +root@debian12:/etc/bind/zones# systemctl restart named
 +
 +root@debian12:/etc/bind/zones# systemctl status  named
 +● named.service - BIND Domain Name Server
 +     Loaded: loaded (/lib/systemd/system/named.service; enabled; preset: enabled)
 +     Active: active (running) since Sun 2025-12-07 13:32:03 CET; 7s ago
 +       Docs: man:named(8)
 +   Main PID: 32952 (named)
 +     Status: "running"
 +      Tasks: 18 (limit: 19123)
 +     Memory: 113.1M
 +        CPU: 83ms
 +     CGroup: /system.slice/named.service
 +             └─32952 /usr/sbin/named -f -u bind
 +
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './DNSKEY/IN': 2001:503:ba3e::2:30#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './NS/IN': 2001:503:ba3e::2:30#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './DNSKEY/IN': 2001:7fe::53#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './NS/IN': 2001:7fe::53#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './DNSKEY/IN': 2001:500:9f::42#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './NS/IN': 2001:500:9f::42#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './DNSKEY/IN': 2001:503:c27::2:30#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: network unreachable resolving './NS/IN': 2001:503:c27::2:30#53
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
 +Dec 07 13:32:03 debian12.ittraining.loc named[32952]: managed-keys-zone: Key 38696 for zone . is now trusted (acceptance timer complete)
 +</code>
 +
 +Intérogez le DNS local pour obtenir les clefs publiques :
 +
 +<code>
 +root@debian12:/etc/bind/zones# dig @debian12.ittraining.loc DNSKEY ittraining.loc
 +
 +; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> @debian12.ittraining.loc DNSKEY ittraining.loc
 +; (1 server found)
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58210
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
 +
 +;; OPT PSEUDOSECTION:
 +; EDNS: version: 0, flags:; udp: 1232
 +; COOKIE: 74f4778aedb99b4d01000000693576d3fe2e16da8329795a (good)
 +;; QUESTION SECTION:
 +;ittraining.loc.                        IN      DNSKEY
 +
 +;; ANSWER SECTION:
 +ittraining.loc.         259200  IN      DNSKEY  256 3 8 AwEAAZ+2bRM+yedcAeqUR6AdkSzyIeQg1kH4021as3WvYGlOLqeUnfbe gNewRYifndXx/b1t84A9L6IZH1ZamuSNxNi7Y0+FZbyq4DJmFnHA68Ao 5zmOhK76mrQf6SjzQHZWzwtoG0DAApTggaRxhmezzjkSr3WNadIoFg4F XU5UaV4ePU5hhPn+zi34SUYvgPTZsSWb/solo0yna80RBxI+hgRxoaPp jV/v4mEVVS9Fjpvc6SxJ/ZZbtUMJi5lTUCvko+Ny9cuXZ5auW4b2qp4u Sk6NuywMawQafxBaxZ/9KuhxqO4qp2n1pl+gBatqb/XPydE41z6ONkT2 YnDOLQVZxLM=
 +ittraining.loc.         259200  IN      DNSKEY  257 3 8 AwEAAcRrC7vljqlLFZGQbLUBpMs29NWyiJ8158xqL0GdZuRslhAqy4q2 JisfBS1gKm27J4y2s8zrDhKLAnEqWpIydvRkZd+a6oTJAomfAF9bxHAe xxEyLK7Xd4ATGiXRUv2vALQq1e6XejBhVr10gmbKdQW+SxayYnwQ0G8h 1VFJ2wtAJZdNn/exhmgxxmUwxeJWLmUf37VOkycwn4RbwWZY3rBIOi2V mCigGe1cDpZoNb2FCTKLjEj5ZRz0ieM9SXXLkZEvGd77xAvoV8+JTTX5 BjlP6Hfso+C/NZUchvoNYisqWSPzffyrsaOzumMtuIsKJX2PaADSmFg8 os/b16zqtPbd+lPhQdsR+RE9V5R0YJhNPnsoG0Vy/mfQCCcP7VIC97iB aYSz/u5KFhsS5E0AIJt8rJwGrb2eqZYTFe2Mdtth1FjgIk7DCvFm2GYM zZ0F15WqcBpJGEDof0/HWSpMfjbnc20QAojLYmuek5XE9lWlZLrk9tby q4R7dZrUdDez3oShtJ/rXTA8AxOzcftLsoCZHy+bMfy5RxThidWQYJGE dQsnk3IgJ1pgzSjdB4nXQkyxMBpRzjyxPw9k1a4oLxYrdLQnHkm5RdWA b5k6Csu2xmSKaQUy9oyLaCRrkd9BnpJPELjRmXIdmyswevjmUr9qwLtk L1W/qxN3it6Ribh3
 +
 +;; Query time: 4 msec
 +;; SERVER: 10.0.2.46#53(debian12.ittraining.loc) (UDP)
 +;; WHEN: Sun Dec 07 13:45:07 CET 2025
 +;; MSG SIZE  rcvd: 879
 +</code>
 +
 +====3.8 - Signer la Zone====
 +
 +Les clefs étant maintenant insérées dans la configuration, il convient de signer la zone en utilisant la commande **dnssec-signzone**. L'option **-S** signifie **smart signing** permet de trouver automatiquement les fichiers de clefs pour la zone et détermine comment ils doivent être utilisés :
 +
 +<code>
 +root@debian12:/etc/bind/zones# dnssec-signzone -S ittraining.loc
 +Verifying the zone using the following algorithms:
 +- RSASHA256
 +Zone fully signed:
 +Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
 +                      ZSKs: 1 active, 0 stand-by, 0 revoked
 +ittraining.loc.signed
 +
 +root@debian12:/etc/bind/zones# ls -l | grep signed
 +-rw-r--r-- 1 root bind 12407 Dec  7 13:39 ittraining.loc.signed
 +</code>
 +
 +Consultez le fichier **ittraining.loc.signed** :
 +
 +<code>
 +root@debian12:/etc/bind/zones# more ittraining.loc.signed
 +; File written on Sun Dec  7 13:39:03 2025
 +; dnssec_signzone version 9.18.41-1~deb12u1-Debian
 +ittraining.loc.         259200  IN SOA  debian12.ittraining.loc. root.debian12.ittraining.loc. (
 +                                        2025120703 ; serial
 +                                        28800      ; refresh (8 hours)
 +                                        7200       ; retry (2 hours)
 +                                        2419200    ; expire (4 weeks)
 +                                        86400      ; minimum (1 day)
 +                                        )
 +                        259200  RRSIG   SOA 8 2 259200 (
 +                                        20260106113903 20251207113903 18528 ittraining.loc.
 +                                        ANlboBzlffzcYC1G10cQuxvRP3XC5bvDP1+v
 +                                        Baxfh/B4BxgYGeQoDih2uGqLxzDExRWix2a2
 +                                        B95uAkDGClaGdlFkYtU4voIQJWuAx0Goo6Xa
 +                                        omEyrIdLGqoj9e2vdn6j2lVpJik9YgCTxP2G
 +                                        ShVYc632XsAFPXN6SJrR3QdKo1x6KM1uPYdd
 +                                        OxAX9fGNYj59ZXG84slUxreDejoqn2k8Rx68
 +                                        gxuzkIY3oM5aUtbvL8bwjflk121mWxQ4vVhW
 +                                        R/KNk9SEc6AbZSqJXwmlY/vReOA+pvPCdLYJ
 +                                        7Wf+S9kr1i1xT1y078Iqz2twASWBjBnP/adG
 +                                        QtKpn9SvKUEzICTaNA== )
 +                        259200  NS      debian12.ittraining.loc.
 +                        259200  RRSIG   NS 8 2 259200 (
 +                                        20260106113903 20251207113903 18528 ittraining.loc.
 +                                        CGtE8nZ2F0JQLAmbyPgrqKLDXjyWg2hZmEcf
 +                                        22h2zAxJZWjNWB7k5aLHA6weKkvo7mTnH7sS
 +                                        pEazWPhaDzmW2BLfdBjeaSZzj+mMWUiXVnUq
 +                                        LYAMLRXGD1NAPcuSQlyzDpN0JZXwWfQFTpzT
 +                                        DJttJyChcQgyJmvaJEhIhQK5gRFMaT+Ww1zg
 +                                        pvAke0HlkSEz9mQxIhff5FqSL00Zyn5mnLBB
 +                                        N6X1XKQXL/mUJ8nb9X70n9b/qsYqAQdFFxzS
 +                                        6lz+kMr/D1AhzabDGkeD/+xlXSPMygYc4I6b
 +                                        eYZKmEsD8HOdYJb5JlWicP7cheeKonPXxjrZ
 +                                        TQqLDJFaRETE+IDnLQ== )
 +                        86400   NSEC    debian12.ittraining.loc. NS SOA RRSIG NSEC DNSKEY
 +                        86400   RRSIG   NSEC 8 2 86400 (
 +                                        20260106113903 20251207113903 18528 ittraining.loc.
 +                                        dDLcoBI/agA+tHni16R8aWdWHBqPPfBjbFRZ
 +                                        775fNQI/d20d47vFx/u2rx+WzenCSZBOpU/J
 +                                        2b8Q2Dm26f218L1KYF7NF7dew2s5OUIkfM+V
 +                                        iZIqBSAFYyAbLYRCfbQA6DxsIgDT6T/x7jLf
 +                                        +jYHNeASGauWunufrSLvbqdsIE0z+JH+3AVE
 +                                        JaLTeXYL6I+/U4vn+EwVOiOuVv3eOt8d1d5a
 +                                        0lqDK8qRlcbhFF1ngOJHe+Fa5ect9kqnbjCa
 +                                        7mwOOmp4v4JA6Myvvut7OEDI5mQItd9HApPl
 +                                        eM0kvui7mioUEUCM2EXRPtJYXVAELUnqGz1S
 +                                        hn6EYefpcWvUDo8veg== )
 +                        259200  DNSKEY  256 3 8 (
 +                                        AwEAAZ+2bRM+yedcAeqUR6AdkSzyIeQg1kH4
 +                                        021as3WvYGlOLqeUnfbegNewRYifndXx/b1t
 +                                        84A9L6IZH1ZamuSNxNi7Y0+FZbyq4DJmFnHA
 +                                        68Ao5zmOhK76mrQf6SjzQHZWzwtoG0DAApTg
 +                                        gaRxhmezzjkSr3WNadIoFg4FXU5UaV4ePU5h
 +                                        hPn+zi34SUYvgPTZsSWb/solo0yna80RBxI+
 +                                        hgRxoaPpjV/v4mEVVS9Fjpvc6SxJ/ZZbtUMJ
 +--More--(18%)
 +</code>
 +
 +Consultez la section RRSIG du SOA :
 +
 +<file>
 +...
 +                        259200  RRSIG   SOA 8 2 259200 (
 +                                        20260106113903 20251207113903 18528 ittraining.loc.
 +                                        ANlboBzlffzcYC1G10cQuxvRP3XC5bvDP1+v
 +                                        Baxfh/B4BxgYGeQoDih2uGqLxzDExRWix2a2
 +                                        B95uAkDGClaGdlFkYtU4voIQJWuAx0Goo6Xa
 +                                        omEyrIdLGqoj9e2vdn6j2lVpJik9YgCTxP2G
 +                                        ShVYc632XsAFPXN6SJrR3QdKo1x6KM1uPYdd
 +                                        OxAX9fGNYj59ZXG84slUxreDejoqn2k8Rx68
 +                                        gxuzkIY3oM5aUtbvL8bwjflk121mWxQ4vVhW
 +                                        R/KNk9SEc6AbZSqJXwmlY/vReOA+pvPCdLYJ
 +                                        7Wf+S9kr1i1xT1y078Iqz2twASWBjBnP/adG
 +                                        QtKpn9SvKUEzICTaNA== )
 +...
 +</code>
 +
 +Dans cette section on constate :
 +
 +  * L'ID de la clef **18528** utilisée pour la signature, soit la ZSK
 +  * La date et l'heure de la signature **20251207113903**
 +  * La date et l'heure de l'expiration de la signature **20260106113903**
 +
 +Configurez Bind pour qu'il utilise le fichier signé :
 +
 +<code>
 +root@debian12:/etc/bind/zones# vi ../named.conf.default-zones 
 +root@debian12:/etc/bind/zones# cat ../named.conf.default-zones 
 +// prime the server with knowledge of the root servers
 +zone "." {
 +        type hint;
 +        file "/usr/share/dns/root.hints";
 +};
 +
 +// be authoritative for the localhost forward and reverse zones, and for
 +// broadcast zones as per RFC 1912
 +
 +zone "localhost" {
 +        type master;
 +        file "/etc/bind/db.local";
 +};
 +
 +zone "127.in-addr.arpa" {
 +        type master;
 +        file "/etc/bind/db.127";
 +};
 +
 +zone "0.in-addr.arpa" {
 +        type master;
 +        file "/etc/bind/db.0";
 +};
 +
 +zone "255.in-addr.arpa" {
 +        type master;
 +        file "/etc/bind/db.255";
 +};
 +
 +zone "ittraining.loc" {
 +    type master;
 +    file "/etc/bind/zones/ittraining.loc.signed";
 +    forwarders { };
 +};
 +
 +zone "2.0.10.in-addr.arpa" {
 +    type master;
 +    file "/etc/bind/zones/db.2.0.10.hosts";
 +    forwarders { };
 +};
 +</code>
 +
 +Redémarrez le service **named** :
 +
 +<code>
 +root@debian12:/etc/bind/zones# systemctl restart named
 +
 +root@debian12:/etc/bind/zones# systemctl status named
 +● named.service - BIND Domain Name Server
 +     Loaded: loaded (/lib/systemd/system/named.service; enabled; preset: enabled)
 +     Active: active (running) since Sun 2025-12-07 14:02:52 CET; 7s ago
 +       Docs: man:named(8)
 +   Main PID: 33227 (named)
 +     Status: "running"
 +      Tasks: 18 (limit: 19123)
 +     Memory: 109.0M
 +        CPU: 88ms
 +     CGroup: /system.slice/named.service
 +             └─33227 /usr/sbin/named -f -u bind
 +
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './DNSKEY>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './NS/IN'>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './DNSKEY>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './NS/IN'>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './DNSKEY>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './NS/IN'>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './DNSKEY>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: network unreachable resolving './NS/IN'>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: managed-keys-zone: Key 20326 for zone .>
 +Dec 07 14:02:52 debian12.ittraining.loc named[33227]: managed-keys-zone: Key 38696 for zone .>
 +</code>
 +
 +Demandez l'enregistrement SOA du DNS local :
 +
 +<code>
 +root@debian12:/etc/bind/zones# dig @debian12.ittraining.loc ittraining.loc SOA
 +
 +; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> @debian12.ittraining.loc ittraining.loc SOA
 +; (1 server found)
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42848
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 +
 +;; OPT PSEUDOSECTION:
 +; EDNS: version: 0, flags:; udp: 1232
 +; COOKIE: a42dbdb3e931b5b40100000069357b611d705b9c213bca01 (good)
 +;; QUESTION SECTION:
 +;ittraining.loc.                        IN      SOA
 +
 +;; ANSWER SECTION:
 +ittraining.loc.         259200  IN      SOA     debian12.ittraining.loc. root.debian12.ittraining.loc. 2025120703 28800 7200 2419200 86400
 +
 +;; Query time: 0 msec
 +;; SERVER: 10.0.2.46#53(debian12.ittraining.loc) (UDP)
 +;; WHEN: Sun Dec 07 14:04:33 CET 2025
 +;; MSG SIZE  rcvd: 121
 +</code>
 +
 +Demandez l'enregistrement SOA et sa signature du DNS local :
 +
 +<code>
 +root@debian12:/etc/bind/zones# dig @debian12.ittraining.loc ittraining.loc SOA +dnssec
 + 
 +; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> @debian12.ittraining.loc ittraining.loc SOA +dnssec
 +; (1 server found)
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56632
 +;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
 +
 +;; OPT PSEUDOSECTION:
 +; EDNS: version: 0, flags: do; udp: 1232
 +; COOKIE: 14cfa09283a1f4980100000069357b95d90b040d04f37247 (good)
 +;; QUESTION SECTION:
 +;ittraining.loc.                        IN      SOA
 +
 +;; ANSWER SECTION:
 +ittraining.loc.         259200  IN      SOA     debian12.ittraining.loc. root.debian12.ittraining.loc. 2025120703 28800 7200 2419200 86400
 +ittraining.loc.         259200  IN      RRSIG   SOA 8 2 259200 20260106113903 20251207113903 18528 ittraining.loc. ANlboBzlffzcYC1G10cQuxvRP3XC5bvDP1+vBaxfh/B4BxgYGeQoDih2 uGqLxzDExRWix2a2B95uAkDGClaGdlFkYtU4voIQJWuAx0Goo6XaomEy rIdLGqoj9e2vdn6j2lVpJik9YgCTxP2GShVYc632XsAFPXN6SJrR3QdK o1x6KM1uPYddOxAX9fGNYj59ZXG84slUxreDejoqn2k8Rx68gxuzkIY3 oM5aUtbvL8bwjflk121mWxQ4vVhWR/KNk9SEc6AbZSqJXwmlY/vReOA+ pvPCdLYJ7Wf+S9kr1i1xT1y078Iqz2twASWBjBnP/adGQtKpn9SvKUEz ICTaNA==
 +
 +;; Query time: 0 msec
 +;; SERVER: 10.0.2.46#53(debian12.ittraining.loc) (UDP)
 +;; WHEN: Sun Dec 07 14:05:25 CET 2025
 +;; MSG SIZE  rcvd: 423
 +</code>
 +
 +====3.9 - La chaîne de confiance DNS====
 +
 +Créez le DSSet à partir de la clef publique KSK :
 +
 +<code>
 +root@debian12:/etc/bind/zones# dnssec-dsfromkey -2 Kittraining.loc.+008+63515.key
 +ittraining.loc. IN DS 63515 8 2 909F3FC8A2B34083B1268C0FE7FDAA851252626CDCDF4D8B51D97CB98C62FDA4
 +
 +root@debian12:/etc/bind/zones# ls -l | grep dsset
 +-rw-r--r-- 1 root bind    99 Dec  7 13:39 dsset-ittraining.loc.
 +
 +root@debian12:/etc/bind/zones# cat dsset-ittraining.loc. 
 +ittraining.loc.         IN DS 63515 8 2 909F3FC8A2B34083B1268C0FE7FDAA851252626CDCDF4D8B51D97CB9 8C62FDA4
 +</code>
 +
 +Il conviendrait maintenant d'insérer un enregistrement DSSet dans le DNS du domaine parent, dans notre cas **.loc**. Cet enregistrement comportera l'ID de la clef, soit **63515**, ainsi que le hash **909F3FC8A2B34083B1268C0FE7FDAA851252626CDCDF4D8B51D97CB98C62FDA4**
 +
 +Quand DNSSEC ne peut pas être validé, le résultat routorné par la commande dig est **SERVFAIL** :
 +
 +<code>
 +root@debian12:/etc/bind/zones# dig www.dnssec-failed.org +dnssec
 +
 +; <<>> DiG 9.18.41-1~deb12u1-Debian <<>> www.dnssec-failed.org +dnssec
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 42077
 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
 +
 +;; OPT PSEUDOSECTION:
 +; EDNS: version: 0, flags: do; udp: 1232
 +; COOKIE: 5321c94da922f6ca010000006935867f45a42de06e00bfa1 (good)
 +;; QUESTION SECTION:
 +;www.dnssec-failed.org.         IN      A
 +
 +;; Query time: 140 msec
 +;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
 +;; WHEN: Sun Dec 07 14:51:59 CET 2025
 +;; MSG SIZE  rcvd: 78
 +</code>
  
 ----- -----
 Copyright © 2025 Hugh Norris. Copyright © 2025 Hugh Norris.
  
Menu