DNSSEC avec bind 9.11 sous FreeBSD

Dans cette article je pré-suppose que bind 9.11 est déjà installé sur un FreeBSD 11.2 et fonctionne déjà normalement comme serveur faisant autorité pour une zone « toto.com ».

Sans rentrer dans le détail du mode de fonctionnement de DNSSec, quelques adaptations de configuration sont nécessaire pour avoir un service opérant correctement. Il est à noter que ces modifications ne sont nécessaires que sur le serveur primaire.

Il faut tout d’abord créer le dossier dans lequel nous allons positionner les clés:

cd /usr/local/etc/named
mkdir keys
chown bind:bind keys
chown -R bind:bind master
cd keys/

Ensuite il faut créer les paires KSK et ZSK.

dnssec-keygen -a RSASHA256 -3 -f KSK -b 4096 -n ZONE toto.com
dnssec-keygen -a RSASHA256 -3 -b 2048 toto.com
chown bind:bind Ktoto.com*

Puis il faut adapter le fichier de configuration « named.conf » pour que la zone en question soit signé (automatiquement par bind) la zone correctement.

options {
       /* vos options */
      key-directory   "/usr/local/etc/namedb/keys";

      dnssec-enable yes;
      dnssec-validation auto;
      auth-nxdomain no;
}

A noter que j’en ai profité pour ajouter quelques options pour que DNSSec soit également utilisé pour le resolver local. Ensuite dans la partie qui gère la zone il faut ajouter la ligne suivante:

zone "toto.com" {
        type master;
        file "/usr/local/etc/namedb/master/toto.com.db";
        inline-signing yes;
        auto-dnssec maintain;
        update-policy local;
        allow-transfer { xxxx; yyyy };
        notify yes;
};

Il faut ensuite recharger le fichier de configuration via

rndc reload

Puis ajouter un sel pour l’algorithme NSEC3 via les commandes:

dd if=/dev/random bs=1 count=10 | md5 | cut -c1-8
rndc signing -nsec3param 1 0 10 XXXXX toto.com

Il faut remplacer le XXXXX par le resultat de la commande précédente qui permet de générer un sel de manière aléatoire.

Il faut enfin copier le contenu de vos fichier key vers l’interface de gestion de votre registrar pour que ce dernier soit bien lié.

Pour faire les tests que tout est fonctionnel:

  • https://dnssec-analyzer.verisignlabs.com/
  • http://dnsviz.net

Mettre à jour une zone

Il faut tout d’abord faire un freeze sur la zone:

rndc freeze toto.com

Il est ensuite possible d’éditer la zone. Puis il faut demander à bind de signer à nouveau la zone et de la propager.

rndc thaw toto.com

Sources

Les sources que j’ai utilisé sont les suivantes: