Outils pour utilisateurs

Outils du site


services:dnssec

DNSSEC

Configuration de DNSSEC sur gurvant

Pour l’installation, voir https://www.swordarmor.fr/gestion-automatique-de-dnssec-avec-opendnssec-et-nsd.html, le DNS a été migré sur knot le 08 avril 2018 (suite à la réinstallation de gurvant en FreeBSD), il faut donc lire https://www.swordarmor.fr/gestion-automatique-de-dnssec-avec-knot.html.

Mise à jour de la zone grifon.fr

grifon.fr est signée avec DNSSEC, il y a donc une procédure un peu particulière à suivre pour mettre à jour la zone.

La zone non signée se trouve dans

/var/db/knot/grifon.fr.nodnssec

C’est ce fichier qu’il faut éditer.
Par (bonne) habitude, c’est pas mal d’avoir un serial de la forme AAAAMMJJNN (date-serie), par exemple pour la première modification de la zone le 24 août 2016 ça donne 2016082400, pour la deuxième 2016082401, pour le 25 2016082500, etc. Si le serial du SOA n’est pas correctement renseigné, cela risque de perturber la mise à jour de la zone. En effet, avec la rotation des clés de DNSSEC, la zone est automatiquement mise à jour par knot. Le serial dans le fichier non signé n’est donc pas forcément celui servi.

Une fois les modifications faites, il faut demander copier la zone non-signée sur l’ancinne et demander à knot de la resigner :

# cp /var/db/knot/grifon.fr.nodnssec /var/db/knot/grifon.fr.zone && knotc zone-reload grifon.fr

Signatures dans le DNS

TLSA

Nous publions le TLSA de chaque service utilisant un certificat SSL. Cela inclus donc tous les services web et le mail.
Nous partirons du principe que nous utilisons un RR de type 3 0 2. Dans ce cas, pour publier un TLSA il faut déterminer le sha512sum du certificat complet puis le publier dans un enregistrement ressemblant à $port.$protocole.$cible. Par exemple, pour ce wiki ça donne :

alarig@gurvant:~$ openssl x509 -noout -fingerprint -sha512 -in /etc/ssl/nginx/wiki.grifon.fr-chained.crt | tr -d : | sed 's/^.*=//'
F7F8438FC6E2081A00D3337833CBFB89675DCBF018AF8FAFD363A76D9CDBD7312A1D015CEFB4EB8C4082567D24AECA1E575631C0A1BAEC9FC4EF65E39BF104CC

Ce qui amène a écrire 443.tcp.wiki IN TLSA (3 0 2 F7F8438FC6E2081A00D3337833CBFB89675DCBF018AF8FAFD363A76D9CDBD7312A1D015CEFB4EB8C4082567D24AECA1E575631C0A1BAEC9FC4EF65E39BF104CC) dans son fichier de zone.

Si nous ne voulons publier que la clé publique (par exemple parce que LE renouvelle le certificat tous les trois mois), nous devons utiliser le type 3 1 2 et la commande

openssl x509 -in cert-chained.crt -noout -pubkey | openssl pkey -pubin -outform DER | sha512sum

.

SSHFP

Nous publions également les empreintes SSH de nos machines. Ainsi, si le client a l’option VerifyHostKeyDNS yes dans sa configuration client, OpenSSH ira chercher ces empreintes dans le DNS et pourra dire si elles sont valides sans devoir les demander à un autre administrateur.
Pour générer un enregistrement SSHFP, il faut se connecter sur la machine et taper la commande ssh-keygen -r $(hostname). | sed -E 's/([0-9])/(\1/;s/($)/\1)/' puis copier/coller la sortie dans la zone. Comme il faut se connecter à la machine une première fois avant de publier les empreintes, il faut être sûr du réseau que l’on utilise.

Avec l’option de vérification des clés dans le DNS, une première connexion ressemble à ça (il est important de noter la ligne « Matching host key fingerprint found in DNS. ») :

alarig@pikachu ~ % ssh alarig@gurvant.grifon.fr 
The authenticity of host 'gurvant.grifon.fr (2a00:5884::2)' can't be established.
ECDSA key fingerprint is SHA256:maAOmOwYMniyC7LVXnqG2oohsmXsHV1rQ/BLXFx09sU.
Matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gurvant.grifon.fr,2a00:5884::2' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/alarig/.ssh/id_rsa': 
services/dnssec.txt · Dernière modification : 2019/04/03 19:47 de 127.0.0.1