Utiliser KnotDNS comme serveur DNS, avec DNSSEC

Utiliser KnotDNS comme serveur DNS, avec DNSSEC

Knot est un serveur DNS authoritaire (à la manière d'NSD). C'est une alternative au très célèbre BIND9, ou à NSD. Il utilise aussi, comme les deux précédants, des fichiers de zones au format RFC1034/RFC1025. Il est développé par les personnes de chez NIC.cz, qui ont déjà produit le génialissime DNSSEC TLSA Validator.

Pour l'installer, il faut simplement ajouter leur repository, puis simplement installer le paquet Knot:

wget -O - https://deb.knot-dns.cz/knot/apt.gpg | apt-key add -
echo "deb https://deb.knot-dns.cz/knot/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/knot.list
apt-get update
apt-get install knot -y
useradd knot # au cas où
mkdir /var/lib/knot/zones # c'est plus propre
# petit "patch" pour que ça marche
chown knot: -R /var/lib/knot

Une fois cela fait, on va aller jetter un coup d'oeil dans le seul fichier de configuration: /etc/knot/knot.conf, qui est malheureusement en YAML.

Je vous donne le mien, remplacez votre IPv4 et IPv6, de même pour les zones.

server:
    listen: 195.154.171.158@53
    listen: 2001:bc8:2ae0:100:5158::@53
    user: knot:knot

log:
  - target: syslog
    any: info

zone:
  - domain: nsa.ovh
    file: "nsa.ovh.zone"
    dnssec-signing: on
    dnssec-policy: default
    
zone:
  - domain: luclu7.fr
    file: "luclu7.fr.zone"
    dnssec-signing: on
    dnssec-policy: default

zone:
  - domain: luc7.fr
    file: "luc7.fr.zone"
    dnssec-signing: on
    dnssec-policy: default

zone:
  - domain: 1.0.0.e.a.2.8.c.b.0.1.0.0.2.ip6.arpa
    file: ipv6.zone

Vous devez surment vous demander à quoi servent ces lignes?

dnssec-signing: on
dnssec-policy: default

Et bien c'est simple: la gestion automatisée de DNSSEC !
Vous voulez maintenant récupérer la clé à mettre dans votre cher record DS? Il suffit de demander à Knot (oui oui):

root@nsa ~# knotc zone-read nsa.ovh @ DNSKEY
[nsa.ovh.] nsa.ovh. 86400 DNSKEY 256 3 13 82Z9TJHqTFrCvFGB7jj9me3jFpl3rqZ9Bf0iBnK4zKw23+cX55CEvIF0i9FgdRrH5tgtPyVXxzByCPQe2oSkwg==
[nsa.ovh.] nsa.ovh. 86400 DNSKEY 257 3 13 nuG5bGcarLzsQRE+9lbsOVgA0Ufd5aEK+q06LEmfBCW2dlFmIQWbbTM5YONrdwU/MaOPggJBhgglXyoZLNfdkw==

Et tada, vous avez vos records magiques, à envoyer par courrier recommandé avec A/R à votre registrar !

Knot est un bon mélange de la performance d'NSD et de la puissance de BIND. Je l'utilise gérer mes luclu7.fr ou nsa.ovh, le nombre de record supporté est impressionant, et il reste pour autant super rapide (oui je me répète).