Cet article vise à mettre en place DNSSEC avec NSD et Unbound.
Prérequis
- Avoir NSD installé et correctement configuré.
- Installer le paquet
ldns-utils
apt-get install ldns-utils
Génération des clés ZSK et KSK
# Génération de la clé ZSK
ldns-keygen -a ECDSAP256SHA256 ticloud.fr
# Génération de la clé KSK
ldns-keygen -k -a ECDSAP256SHA256 ticloud.fr
Plusieurs fichier sont générés :
>:# ls Kticloud.fr*
Kticloud.fr.+013+03173.key Kticloud.fr.+013+34162.ds Kticloud.fr.+013+34162.private
Kticloud.fr.+013+03173.private Kticloud.fr.+013+34162.key
Signer la zone dns
ldns-signzone -e $(($(date +%s) + 315365000)) -o ticloud.fr -f /etc/nsd/ticloud.fr.zone.signed /etc/nsd/ticloud.fr.zone Kticloud.fr.+013+03173 Kticloud.fr.+013+3416
Cela va générer le fichier ticloud.fr.zone.signed
Il ne reste plus qu’à redémarrer NSD pour prise en compte :
systemctl restart nsd
En cas de modification de la zone, il faut la resigner avec la commande ldns-signzone
puis recharger la zone :
nsd-control reload ticloud.fr
Configuration Unbound
Il faut modifier la configuration d’Unbound de la manière suivante :
server:
...
trust-anchor: "ticloud.fr. IN DS 34162 13 2 zefzefez3465errgeg3zefer4dbvbtyytn454556efrbtrb434656567ereg"
...
stub-zone:
name: "ticloud.fr"
stub-addr: 127.0.0.1@53530
Le contenue de la ligne trust-anchor
correspond au fichier Kticloud.fr.+013+34162.ds
Une fois Unbound redémarré on peut tester avec la commande suivante :
>:# dig +dnssec ticloud.fr
; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> +dnssec ticloud.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 296
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;ticloud.fr. IN A
;; ANSWER SECTION:
ticloud.fr. 1800 IN A 10.42.38.1
ticloud.fr. 1800 IN RRSIG A 13 2 1800 20310428191818 20210430175458 3173 ticloud.fr. lm2N7LonWHMlpWc5wAwqBRlE1wJrXy4IaCZkvnBcWlWqf189//KveLZb nf5YeQowuhLmPQ4cRsCVFwG8aY9yUQ==
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: dim. mai 02 21:22:56 CEST 2021
;; MSG SIZE rcvd: 161
On a bien le flag “ad” dans la réponse.