DNSSEC

Préparation pour DNSSEC

Installer les paquets de base pour obtenir l’utilitaire DRILL, les outils de signature et un moyen simple d’obtenir les « trust anchors »:

$ sudo apt-get install ldnsutils dnssec-tools libcrypt-openssl-random-perl autotrust

On suppose que bind9 est déjà installé et configuré sur le serveur en question.

Création de la zone signée

$ sudo zonesigner -genkeys -usensec3 -zone mesh.deuxpi.ca db.mesh.deuxpi.ca

On peut vérifier la validité du résultat:

$ sudo donuts db.mesh.deuxpi.ca.signed mesh.deuxpi.ca
0 errors found in db.mesh.deuxpi.ca.signed

Si zonesigner fait son difficile avec la zone, on peut penser la prétraiter avec ldnsutils:

$ ldns-read-zone -c db.mesh.deuxpi.ca > db.mesh.deuxpi.ca.clean

Configuration de BIND

Dans le fichier /etc/bind/named.conf.options, on change et ajoute les options suivantes:

dnssec-enable yes;
dnssec-validation auto;
dnssec-lookaside auto;

Ensuite, on peut substituer dans /etc/bind/named.conf.local le chemin vers la zone originale vers celui de la zone signée:

zone "mesh.deuxpi.ca" {
    type master;
    file "/etc/bind/db.mesh.deuxpi.ca.signed";
};

On doit probablement redémarrer BIND en envoyant la commande sudo /etc/init.d/bind restart.

Si tout fonctionne, on devrait pouvoir lancer une requête et obtenir une réponse intelligente:

$ dig +dnssec ns mesh.deuxpi.ca @localhost

; <<>> DiG 9.8.1-P1 <<>> +dnssec ns mesh.deuxpi.ca @localhost
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53656
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;mesh.deuxpi.ca.                        IN      NS

;; ANSWER SECTION:
mesh.deuxpi.ca.         86400   IN      NS      ns.mesh.deuxpi.ca.
mesh.deuxpi.ca.         86400   IN      RRSIG   NS 8 3 86400 20121222181136 20121122171136 49788 mesh.deuxpi.ca. buSKoQ9xooNYR5giHvaJvYreGuRaxX/RjAXsyUENUI8RX4IziglU50OU q0m1r6stGhNC0FwDkEn33UG1LxhuV6+gIz3+BJHnRTOBhoKKQeKRuA63 E/FGm+3k2c/T4uDPcVFXzNn66qhFFCeS2RKgVfNwQ+wOrUbgtcjgyfMX w3U=

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Nov 22 13:32:06 2012
;; MSG SIZE  rcvd: 234

On ne s’attend pas à voir l’option ad ici puisqu’on interroge directement le serveur autoritaire et donc on n’obtient que aa.

Références

  • http://fedoraproject.org/wiki/Features/DNSSEC
  • https://wiki.archlinux.org/index.php/DNSSEC
  • http://www.howtoforge.com/configuring-dnssec-on-bind9-9.7.3-on-debian-squeeze-ubuntu-11.10
  • https://dlv.isc.org/about/using
Go Top