Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine

Aujourd’hui, nous allons mettre en place DNSSEC afin d’ajouter une couche de sécurité supplémentaire dans la gestion des DNS de notre domaine.

Principe de fonctionnement du DNS

Le DNS (Domain Name System) est un maillon clé du fonctionnement d’Internet car la quasi-totalité des services en ligne utilisent des noms de domaine à un moment ou à un autre.

Le DNS est organisé sous la forme d’une arborescence inversée, avec une « racine » dont dépendent les différentes « branches ».

Au premier niveau de l’arborescence se trouvent les « Top Level Domains » (TLD) ou domaines de premier niveau, comme les .fr, .com, .net etc.

Au second niveau, nous avons les noms de domaine « classiques » comme « skyminds.net ».

Fonctionnant comme une base de données distribuée sur des millions de machines, le DNS repose sur des interactions entre ces machines permettant d’identifier celle qui est la plus susceptible de pouvoir répondre à la requête d’un internaute.

Serveur dédié : mise en place de DNSSEC pour sécuriser les DNS d'un nom de domaine photo 2

Dans l’exemple ci-dessus, l’utilisateur veut se connecter au site http://www.wikipedia.fr. Il envoie sa requête via son navigateur. Celle-ci est reçue par un serveur dit « résolveur » qui a pour première mission d’identifier la machine sur laquelle est installé le nom de domaine wikipedia.fr.

Le résolveur s’adresse d’abord à la « racine » du DNS, qui lui indique quels sont les serveurs « faisant autorité » (c’est-à-dire compétents) pour .fr puisque le nom de domaine est en .fr.

Dans un second temps, les serveurs du .fr indiquent à leur tour au résolveur que le nom de domaine wikipedia.fr est hébergé sur tel serveur.

Celui-ci est alors en mesure d’indiquer au navigateur l’adresse IP du serveur web hébergeant les contenus du site web www.wikipedia.fr.

Ce schéma se vérifie quel que soit le site web auquel on souhaite accéder.

DNSSEC : authentifier l’origine et l’intégrité des données

DNSSEC, acronyme de Domain Name System Security Extensions, désigne un ensemble défini d’extensions de sécurité du protocole DNS, standardisé par l’IETF dans la RFC 4033.

Serveur dédié : mise en place de DNSSEC pour sécuriser les DNS d'un nom de domaine photo

DNSSEC signe cryptographiquement les enregistrements DNS et met cette signature dans le DNS. Ainsi, un client DNS méfiant peut récupérer la signature et, s’il possède la clé du serveur, vérifier que les données sont correctes.

Cela permet de s’assurer que les données obtenues par résolution DNS proviennent de la zone légitime du nom de domaine (authentification de l’origine des données) et que les données ne sont pas altérées lors du transfert (intégrité des données).

Ces extensions de sécurité font de DNSSEC une composante essentielle des communications Internet qui nécessitent un haut niveau de confiance dans l’infrastructure DNS.

DNSSEC utilise un mécanisme reposant sur une paire de clés ayant des rôles complémentaires. La première clé, privée, crée une signature par chiffrement; alors que la seconde clé, publique, vérifie les signatures par déchiffrement:

Serveur dédié : mise en place de DNSSEC pour sécuriser les DNS d'un nom de domaine photo 4

Contrairement à d’autres protocoles comme SSL/TLS, DNSSEC ne sécurise pas juste un canal de communication mais il protège les données et les enregistrements DNS, de bout en bout. Ainsi, il est efficace même lorsqu’un serveur intermédiaire trahit l’intégrité des données (DNS menteur).

Les attaques par empoisonnement de cache

DNSSEC répond spécifiquement aux attaques par empoisonnement de cache : le résolveur est alors “intoxiqué” pour qu’il considère le serveur « pirate » comme légitime, en lieu et place du serveur d’origine.

Cette opération permet notamment de capter et de détourner les requêtes vers un autre site web sans que les utilisateurs puissent s’en rendre compte : ils risquent alors de confier leurs données personnelles en se croyant sur le site légitime.

Serveur dédié : mise en place de DNSSEC pour sécuriser les DNS d'un nom de domaine photo 3

Le bon fonctionnement du DNS dépend donc de la fiabilité des données transmises à chaque étape. Les extensions de sécurité du DNS cherchent à répondre à cette contrainte en assurant l’intégrité des données transitant sur le réseau, notamment entre résolveurs et serveurs faisant autorité.

Pré-requis avant de configurer DNSSEC

Avant de commencer, voici quelques pré-requis essentiels :

1. votre domaine doit être correctement configuré auprès de votre registrar et hébergeur au niveau DNS,

2. votre serveur possède suffisamment d’entropie pour la génération des clés de sécurité,

3. vous avez fait une copie de sauvegarde : site, base de données, enregistrements DNS, configuration BIND.

Vérifiez que vous êtes bien prêt. Ce tutoriel prend à peu près 30 minutes à réaliser.

Mise en place de DNSSEC sur le serveur

Pour les besoins du tutoriel et afin d’éviter toute erreur de saisie ou copie, nous optons pour les définitions suivantes:

  • skyminds.net est notre nom de domaine,
  • skyminds.net.hosts est notre fichier de zone actuel, qui se trouve dans /etc/bind,
  • skyminds.net.hosts.signed sera notre fichier de zone signé, après toutes les étapes du tutoriel.

Notre répertoire de travail sera /etc/bind :

cd /etc/bind

Voilà, cela vous permettra de vous y retrouver plus facilement et de savoir quoi modifier pour votre domaine.

Génération des clés ZSK et KSK

On crée une Zone Signing Key (ZSK) avec une clé de 4096 bits en RSASHA256 :

dnssec-keygen -a RSASHA256 -b 4096 -n ZONE skyminds.netCode language: CSS (css)

Résultat:

Generating key pair...................................................................++ ............++ 
Kskyminds.net.+008+55176Code language: CSS (css)

On crée maintenant une Key Signing Key (KSK), toujours avec une clé de 4096 bits en RSASHA256 :

dnssec-keygen -f KSK -a RSASHA256 -b 4096 -n ZONE skyminds.netCode language: CSS (css)

Résultat:

Generating key pair..................++ ..................................................................................++ 
Kskyminds.net.+008+36124Code language: CSS (css)

Les deux commandes précédentes ont créé quatre nouveaux fichiers de clés dans notre répertoire – une paire de clés publiques/privées pour ZSK et une autre paire de clés publiques/privées pour KSK.

Ajout des clés publiques dans le fichier de zone

Ajoutons maintenant les clés publiques qui contiennent les enregistrements DNSKEY dans le fichier de zone, avec une boucle :

for key in `ls Kskyminds.net*.key`
do
echo "\$INCLUDE /etc/bind/$key">> skyminds.net.hosts
doneCode language: JavaScript (javascript)

Signature de la zone

On signe maintenant notre zone :

dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o skyminds.net -t skyminds.net.hostsCode language: JavaScript (javascript)

Résultat:

Verifying the zone using the following algorithms: RSASHA256.
Zone fully signed:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
 ZSKs: 1 active, 0 stand-by, 0 revoked
skyminds.net.hosts.signed
Signatures generated: 42
Signatures retained: 0
Signatures dropped: 0
Signatures successfully verified: 0
Signatures unsuccessfully verified: 0
Signing time in seconds: 0.378
Signatures per second: 110.937
Runtime in seconds: 0.442Code language: CSS (css)

Notre zone est maintenant signée et un nouveau fichier, skyminds.net.hosts.signed, vient d’être créé.

Ajout de la zone signée dans la configuration BIND

On commence par éditer le fichier de configuration de BIND:

nano /etc/bind/named.conf.options

et dans le bloc options{}, on rajoute les instructions DNSSEC:

options {
    // ...
    // DNSSEC
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
};Code language: JavaScript (javascript)

On enregistre. Il reste maintenant à informer BIND de cette nouvelle zone signée:

nano /etc/bind/named.conf.local

avec:

zone "skyminds.net" {
 type master;
 // zone : normale
 //file "/etc/bind/skyminds.net.hosts";
 // zone : signed by DNSSEC
 file "/etc/bind/skyminds.net.hosts.signed";
 allow-transfer { 213.186.33.199; };
 allow-query { any; };
 notify yes;
};Code language: JavaScript (javascript)

On sauvegarde le fichier et on recharge la nouvelle configuration de BIND:

service bind9 reload

Ajout des DS chez le registrar

Notre domaine est actuellement enregistré chez Gandi. Donc, une fois identifiés sur leur console d’administration, on sélectionne le domaine et on clique sur le lien Gérer DNSSEC.

Voici à quoi ressemble l’interface d’ajout des clés publiques ZSK et KSK:

Serveur dédié : mettre en place DNSSEC pour un nom de domaine photo

Il suffit d’ajouter le contenu de ces deux clés dans le formulaire pour que les deux DNSKEYs soient ajoutées au registre de votre domaine.

Test de la configuration

Voici quelques tests pour vérifier que notre configuration est en ordre :

dig +dnssec skyminds.net aCode language: CSS (css)

Résultat:

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> +dnssec skyminds.net a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10094
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;skyminds.net.			IN	A

;; ANSWER SECTION:
skyminds.net.		70501	IN	A	213.251.185.98
skyminds.net.		70501	IN	RRSIG	A 8 2 84600 20151108174124 20151009174124 55176 skyminds.net. LnXkTAvGSf4tbY5aWz08wVslEJ87tAeKRkDw0OS/kAXv4P89n/ZW7Iah tJ6gg7vlgA84OfUjKeT8PZTF2ZlP74V8tgV9CA3Qzmqwoe3fCf/juxA7 cYnlUZhOQ4TBm6oE4nORPhggglyTVHktUZYeGRRVKuZIT3QE/eEhOvcq 9yLeA7uUIzmvaGSw+diP50sXGwrImt0dP/UsW5F3WiNfQ3Fgm2E712jW 4r6yRYY4jd9AIayrRc+vN8dZMC+ml/I4zzTC6t4lBET0knF3rZxN0PyO Sv30aYin0AxtGgXFECzhOxXyPBlSBy9ogJ/hAMnA6BKJ0C4r/tayeh1Y SUHfzl9HqXPPRhnM8jQEL14hQYjbrf6Afw5r+AKDdJIMiBfeQhW2CfaA NgGhnoCHeSIsMFae1RulAQ8XK/Evbn/IYnWyxlzuwNnXwcIl/8OCM5Sj O4Qfk26TI6NmY/cXB/Mq6iowrxbQY4ysKD8OGqsVj41aflVjieyuHWfH Um19ygJPsHjYmGSdIvdJShqwuw3uxMZ/o8564TrXLXZ/KuGMbtnKICxM GNz0OtlyGjkkz/1NVejNGJ9SNPUgpOmh71m88vJHrPOohMP2xz1ajxPG jt53A6odfTAvQEOC4fXae9adMirjMIbH+RRRajo86ihYgEKNKCSFgcHu tCysj/1L1QU=

;; AUTHORITY SECTION:
skyminds.net.		70501	IN	NS	ks35755.kimsufi.com.
skyminds.net.		70501	IN	NS	ns.kimsufi.com.
skyminds.net.		70501	IN	RRSIG	NS 8 2 84600 20151108174124 20151009174124 55176 skyminds.net. rcCgBtfH6aFuJIOzLHU9hNa4a0K6M9Sroq1qKnsjcYChdPQ99XUerd7u 8hS1GfD18TMfSOGinp9V0Xq2YJg7suzRF4XuR4HggXegGplMDxmaBmfr Zc8BZHDTBUMYL2c1W3q3v0x5BJpqSeMVULhItmCyWYleG1He2+T+j1M2 UMUEKijGdpXEMa+pPip8uCcwh8uF5x8V5L75eZMeiUjUz9mOvzRW3de3 TbsLpGn9l1cm0dSiFMOhMLS0IkaknpACqb76quky4Xk5MCO4277/315i 13zIungoOjGSvASC5DImqq5AgmiGTugPdIpDG7EiwET4voMw4hw3NtgF R8DK4IlHuuDQeWZHRwzLDUNTMpqUBm08RW70F6iGUyVJuz7qQBP2A11D og/jfRT0tECPd83P4SKNY4PajSXO29cgStgj4relDG6giA1NonY6tmmL U3zft96i2BZD6W0UTZfsBraITaJoFgZi5y+i12fY/3Qh8OvsWEy3l2mr +/axJM2pDx41LH8yCsRlySVBQpcXfExWgQ1HstGMUmQa6NqJMwRV7/Jt BFtgrSuDYEIgyev9dFuu6E/4O+ExAME3g9AsAqi0eaVlO+sAGVBzMeTe yfKbr0n9UWl7Afh5e1ENc8VBX3Z5Ht1o2ueKJ3PLnsgjc8sZs4q3QUVt BTNPHgp2bBY=

;; Query time: 38 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Oct 12 20:40:02 CEST 2015
;; MSG SIZE rcvd: 1219Code language: PHP (php)

et un autre test avec :

dig +cd +multi skyminds.net dnskeyCode language: CSS (css)

Résultat:

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> +cd +multi skyminds.net dnskey
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24047
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;skyminds.net.		IN DNSKEY

;; ANSWER SECTION:
skyminds.net.		49079 IN DNSKEY	256 3 8 (
				AwEAAdUD6t1gAmN1kZR7RpSOysSOX2fHlAN1Fx6Uqyue
				O8YslDxM06ZVVBKsLxb/IavvOcNW8oNHvJaY5Fk5kcpe
				KpCwrYv4ZQBDg/qAiA4MsVqVGBq4c5gJjAwqrwxCt9iL
				AyX0S1O1FM8vgEJZ2lffHUBZOa0WLkD6KTosLbTQmtjy
				44vmcEoDCcE7+Scjmo+8laOHkuOoR3hxxRU8AlQFsUm9
				/rWxrygcXqpznCUkLAZMudu8Kq+0Vn/ODzD3h0SQ0hGM
				OYIcc1kcqfQPyUecoVnkYObHsdCXN4hXhHk980t57y52
				qrndnlzTtjPxbcXJDL9pkjRzMAImKeSpuGR/B8jApom4
				nudqk8n1wLNT4bR958gApaXaTPCPz4naK6nA98OjePu6
				oTzhuktlXnCbGlHOJm/FgAiwoEuu5WdOmca1klEaMDnj
				iHgv0QYniXxnjP4xnZJgQWorQL/dtdqSeW5yt7jlNxhn
				/L0wZ6rSm4Dn7R0KxGov945VUDCT0UI8LDgj1C2JRLDK
				HXLkv+8hns3ZhKf+sTjBA0wiXQTrJFuMdtjsJ5nkodE2
				bKSFkaI0sQB+wNKjClP9bFqU1LaePsPHEUCjUtxy7ghy
				pOs+EdrXr5IyifsF0GAFDN0Vb8Wrm4BY4E8yKyeiLtEW
				YO2f4B0LL+Sng68TOUC2V+FFM/vf
				) ; ZSK; alg = RSASHA256; key id = 55176
skyminds.net.		49079 IN DNSKEY	257 3 8 (
				AwEAAcReSuMvQLt540OJKqv/464pe/uqK2egicMv14Sv
				uVGgSI4xJ4Si/i06008LPZrxSgP1JHw9yfVdpSo2eVwA
				ETCjwOVWLVobHBdKSFt/U3IuANsxeM1cZhg18earKX1T
				/g+M1ytAdHdj4A3BkJV6ZvcLsqPLL3T7yMCzg3AP0F+9
				foJuVWQU3jQDHyijTNr6h5dPkLzrHi/qaJyytOklLW6y
				ykwrS0EDKt1pWOEhb/73oKO6mO677GEQWBFjNgfYoKGt
				8ECln0wzzs13MLM3Er5E2r7zJFTNVy+vgN3OC1CONlhv
				2K0u7tbbGyMolttV2tZnnTZZMVtRoDJ7+yyC68ehUf/k
				0ridVoRQwNWmw3RdxNknnt/Sol+F4lDPj3CyrmcJ5dUl
				oim1qMt6MbXf/LEJr8cVfQzhYTSqbM8Hynbed7fMVO43
				w87f8MKsadbWu3j8PGtbykWyZJAmkM7l8LegnoRmnObR
				XhBUTfAcOsmjMUHnXAE2gpgjB6PyTETjoHM6k94/C9Sy
				JqcdrTmlblK+mJsTte789SWUXgPES69naqlBq4jPSFi4
				C4yKkBLbOK2cBXe+OvfPgTbeomSRF+lP/GPPSpXsH+1e
				IfsH5p/z/s8whyB5LWeP1CVOkCwwg+J0KzfEjE8x8uF8
				p5oQFm1/rF9qmUkEQ+mxy5kw82Sl
				) ; KSK; alg = RSASHA256; key id = 36124

;; Query time: 40 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Oct 12 20:13:18 CEST 2015
;; MSG SIZE rcvd: 1105
Code language: PHP (php)

Si tout va bien, vous devriez voir des enregistrements de type DNSKEY (DNS Key record) et RRSIG (la signature DNSSEC) apparaître.

Vérifiez maintenant que votre domaine est bien signé par DNSSEC avec l’outil DNSSEC Debugger ou sur DNSviz, un outil de visualisation DNS.

Voilà ce que l’on obtient avec DNSSEC Debugger :

Serveur dédié : mise en place de DNSSEC pour sécuriser les DNS d'un nom de domaine photo 1

Script bash pour signer la zone automatiquement

A chaque fois que vous éditez votre fichier de zone pour ajouter ou retirer des enregistrements, il faudra le re-signer pour que tout fonctionne. Et la signature du fichier de zone n’est valable par défaut que pendant 30 jours, c’est donc quelque chose qu’il faut bien anticiper et prévoir.

Bash

Nous allons donc automatiser le processus de signature avec un script bash qui va:

  1. modifier le numéro de série de notre fichier de zone pour lui attribuer la date du jour et l’incrémenter,
  2. créer un fichier de zone signé avec DNSSEC,
  3. redémarrer BIND,
  4. puis envoyer un email à l’administrateur pour l’informer de la signature de la zone.

On crée donc notre script bash dans le fichier dnssec-zonesigner.sh:

nano /etc/bind/dnssec-zonesigner.sh

On y ajoute :

#!/bin/sh
# -----------------------------------------------------#
# Script Name: DNSSEC Zone Signer
# Script URI: https://www.skyminds.net/?p=8236
# Version: 1.0
# Description: Takes a DNS zone file, updates its serial to the day's date and increments it, signs the zone file for DNSSEC, and restarts the DNS service in charge. To be used with a crontab.
# Author: Matt
# Author URI: https://www.skyminds.net
# Licence: Beerware
# Donations: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ETTG7RVBJAS2A
# Amazon Wishlist: http://www.amazon.fr/registry/wishlist/1G41TTHE51MYL?&tag=skymindsnet-21
# -----------------------------------------------------#
#
# Usage: dnssec-zonesigner.sh  
#
# More details: https://www.skyminds.net/?p=8236
#
# -----------------------------------------------------#
# -------------------- CHANGELOG ----------------------#
# -----------------------------------------------------#
# --- version 1.1
#	-> [fix] add full path for commands
#	-> [fix] enhance script styles
#
# --- version 1.0 : initial release
# -----------------------------------------------------#
# -------------------- EDIT HERE ----------------------#
# -----------------------------------------------------#
#
# ZONEDIR : the location of your zone file
ZONEDIR="/etc/bind"
# The DNS service that you are using : bind9, named ...
DNSSERVICE="bind9"
#
# -----------------------------------------------------#
# -------------------- STOP EDITS ---------------------#
# -----------------------------------------------------#
# ZONE : the zone (passed as first argument)
ZONE=$1
# ZONEFILE : the zone file (passed as second argument)
ZONEFILE=$2
# Here we go !
cd $ZONEDIR
# check what's currently loaded
/usr/sbin/named-checkzone $ZONE $ZONEFILE.signed
# Grab serial from zone file
OLDSERIAL=`/usr/sbin/named-checkzone $ZONE $ZONEFILE | egrep -ho '[0-9]{10}'`
# Generate new serial with today's date: YYYYMMDDHH (year, month, day, hour)
NEWSERIAL=`date +%Y%m%d%H -d "today"`
# if $NEWSERIAL is less than or equal to $OLDSERIAL
# then it means the zone file has already been generated today
# so let's compute the difference and increment +1
if [ "$NEWSERIAL" -lt "$OLDSERIAL" ]; then
	DIFF=$(($OLDSERIAL-$NEWSERIAL))
	NEWSERIAL=$(($NEWSERIAL+$DIFF+1))
fi
# Write new serial +1 in zone file
sed -i 's/'$OLDSERIAL'/'$(($NEWSERIAL+1))'/' $ZONEFILE
# Sign zone and increment serial of signed file
/usr/sbin/dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o $1 -t $2
# restart DNS service to load newly-signed zone file
/usr/sbin/service $DNSSERVICE reload
# Show what's currently loaded
/usr/sbin/named-checkzone $ZONE $ZONEFILE.signed
CHECKRESULT=`/usr/sbin/named-checkzone $ZONE $ZONEFILE.signed`
# email admin with update info
# Admin email to send notifications to
MAILTO="root@$ZONE"
echo "Hi admin,\n\nYour domain, $ZONE, has just been DNSSEC-signed.\n\nThe former serial was $OLDSERIAL. The new serial has been incremented to $NEWSERIAL.\nYour DNS service, $DNSSERVICE, has been reloaded to reflect the changes.\n\nHere are the check results for the newly-generated $ZONEFILE.signed:\n------------------------------------------------------------------------------------------------------------\n\n$CHECKRESULT \n\n------------------------------------------------------------------------------------------------------------\n\n-- \nDNSSEC Zone Signer\nhttps://www.skyminds.net \n" | mail -s "[OK] $ZONE has just been DNSSEC-signed" "$MAILTO"
# That's all folks. Enjoy your DNSSEC-signed zone.
Code language: PHP (php)

On enregistre le fichier et on le rend exécutable :

chmod +x /etc/bind/dnssec-zonesigner.sh

Pour signer une zone, voici comment l’utiliser :

sh /etc/bind/dnssec-zonesigner.sh

Il suffit d’invoquer le script bash suivi du domaine et du fichier de zone original (non-signé). Chez moi, cela donne donc:

sh /etc/bind/dnssec-zonesigner.sh skyminds /etc/bind/skyminds.net.hosts

Il nous reste à ajouter une nouvelle tâche planifiée avec un cron. On édite donc crontab:

crontab -e

et on ajoute une nouvelle tâche qui va signer notre zone tous les 3 jours et recharger la configuration BIND:

0       0       */3     *       *       sh /etc/bind/dnssec-zonesigner.sh skyminds /etc/bind/skyminds.net.hostsCode language: JavaScript (javascript)

A présent, toute modification au niveau des enregistrements DNS du domaine sera à faire dans le fichier de zone non-signé, étant donné qu’il servira de source au fichier de zone signé et généré automatiquement par notre script.

Mise à jour des clés ZSK et KSK

Dans quelques mois, vous aurez à générer de nouvelles clés ZSK et KSK afin de garantir la sécurité des clés de chiffrement pour DNSSEC.

Vous devez conserver les anciennes clé un certain temps avant de les supprimer définitivement, le temps que les résolveurs mettent leur enregistrements à jour avec les nouvelles clés tout en garantissant les connexions avec les anciennes clés.

Je vous suggère donc de garder les anciennes clés pendant 10 jours dans votre fichier de zone et de rajouter les nouvelles clés. Au bout de ce délai, vous pourrez supprimer les anciennes clés.

Il vous suffit donc de recommencer ce tutoriel : générer de nouvelles clefs KSK et ZSK, ajouter vos nouvelles clés publiques dans le fichier de zone, resigner votre zone avec le script bash et reconfigurer les clés au niveau de la zone mère chez votre registrar.

Conclusion

Voilà, vous venez d’activer DNSSEC sur votre domaine. A titre préventif, il est recommandé de changer les clés régulièrement et de ne pas oublier de les ajouter au niveau du registrar.

Source des schémas : AFNIC.

Synopsis » Monter un serveur dédié de A à Z

  1. Serveur dédié : installation d’Apache, PHP, MySQL et Webmin
  2. Serveur dédié : créer la base de données MySQL et importer WordPress
  3. Serveur dédié : créer et activer un Virtual Host sous Apache
  4. Serveur dédié : changer les DNS du nom de domaine et le faire pointer vers le serveur
  5. Serveur dédié : sécurisation des services avec iptables et fail2ban
  6. Serveur dédié : sécurisation de la couche TCP/IP
  7. Serveur dédié : création d’un serveur mail Postfix (sécurisé avec Saslauthd et certificat SSL) et Courier (accès POP et IMAP) utilisant une base MySQL d’utilisateurs/domaines virtuels
  8. Serveur dédié : sécuriser Apache 2 avec ModSecurity
  9. Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande
  10. Serveur dédié : installer APC comme système de cache et configurer Varnish comme reverse-proxy pour Apache pour améliorer les performances
  11. Serveur dédié : afficher la véritable IP derrière un reverse-proxy comme Varnish
  12. Serveur dédié : intégrer SSH à WordPress pour mettre à jour le core, les plugins et les thèmes
  13. Serveur dédié : installer la dernière version d’APC par SVN
  14. Serveur dédié : analyse des performances du serveur
  15. Serveur dédié : mettre à jour le noyau Debian de la Kimsufi
  16. Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH
  17. Serveur dédié : configurer la limite mémoire pour PHP et Suhosin
  18. Bash : supprimer tous les fichiers et sous-répertoires d’un répertoire
  19. Serveur dédié : impossible de se connecter à un port distant
  20. Rsync: rapatrier les fichiers du serveur à la maison
  21. Bash : réparer les tables MySQL en cas de crash
  22. Serveur dédié : création d’une seedbox avec Transmission
  23. Serveur dédié : des paquets LAMP à jour sous Debian
  24. Serveur dédié : mise à jour vers Debian 7 Wheezy
  25. Serveur dédié : activer X11 forwarding pour SSH
  26. Serveur dédié : optimiser toutes les images JPG et PNG avec OptiPNG et JpegOptim
  27. Postfix : résoudre l’erreur “fatal: www-data(33): message file too big”
  28. Serveur dédié : mise en place de l’IPv6
  29. WordPress : accorder les bonnes permissions aux fichiers et dossiers avec chown et chmod
  30. WordPress : héberger les images sur un sous-domaine
  31. Serveur dédié : ajouter l’authentification SPF, Sender-ID et DKIM à Postfix et Bind9 avec opendkim
  32. Apache : lorsque le domaine seul (sans WWW) renvoie une erreur 403
  33. Serveur dédié : sécuriser Apache avec HTTPS (HTTP avec la couche TLS/SSL) en Perfect Forward Secrecy
  34. Serveur dédié : passer WordPress en HTTPS (TLS/SSL)
  35. Serveur dédié : configurer Webmin en TLS avec un certificat SSL
  36. Serveur dédié : configurer Transmission pour accéder au WebUI via TLS-SSL
  37. Serveur dédié : installer et configurer Varnish 4
  38. Serveur dédié : passage au mod FastCGI et PHP-FPM avec Apache MPM Worker
  39. Récupérer un serveur Kimsufi après un plantage de kernel avec le mode rescue OVH
  40. Serveur dédié : configurer Postfix et Courier pour utiliser TLS-SSL en Perfect Forward Secrecy
  41. Serveur dédié : retirer Varnish, devenu inutile avec HTTPS
  42. Serveur dédié : installer la dernière version d’OpenSSL sous Debian
  43. Serveur dédié : activer l’IP canonique du serveur sous Apache
  44. Serveur dédié : mise à jour vers PHP 5.6
  45. MySQL : convertir les tables MyISAM au format InnoDB
  46. Serveur dédié : optimiser toutes les images GIF avec GIFsicle
  47. Serveur dédié : migration de MySQL vers MariaDB
  48. BASH : lister, bloquer et débloquer des adresses IP avec iptables
  49. Serveur dédié : produire une meilleure réserve d’entropie avec haveged
  50. Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine
  51. Serveur dédié : mise en place du protocole DANE
  52. 8 règles d’or pour bien déployer DNSSEC et DANE
  53. Serveur dédié : installer PHP7 FPM avec FastCGI sous Debian
  54. Serveur dédié : optimiser la couche TCP
  55. Fail2Ban: protéger Postfix contre les attaques DoS de types AUTH, UNKNOWN et EHLO
  56. Serveur dédié : mettre à jour Apache pour HTTP/2
  57. Serveur dédié : ajouter le domaine à la liste HSTS preload
  58. Serveur dédié : ajouter l’authentification DMARC à Postfix et BIND
  59. Serveur dédié : à la recherche de l’inode perdue ou comment résoudre le problème “no space left on device”
  60. Serveur dédié : installer NginX avec support HTTP2 et certificat SSL, PHP, MariaDB sous Debian

Recherchez-vous un expert WordPress ou WooCommerce sur qui vous pouvez compter? Ne cherchez plus.

Faites confiance à mon expertise »

Articles conseillés :

Matt

Matt Biscay est développeur WordPress et WooCommerce certifié chez Codeable, ainsi que sysadmin qualifié et enseignant-chercheur. Passionné par le code performant et les solutions sécurisées, je m'efforce d'offrir une expérience utilisateur exceptionnelle sur chaque projet.

Vous avez aimé cet article ? Vous avez un projet en tête et vous pensez que je pourrais vous aider à le concrétiser ? N'hésitez pas à me contacter, je serais ravi de discuter avec vous de votre projet !

4 pensées sur “Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine”

      • Salut, J’ai retenté l’aventure, donc ça se passe toujours aussi bien, mais “No DS records found for —.com in the com zone”.
        —.com Mise à jour des DS records 03/01/2020 15:49 03/01/2020 15:50 03/01/2020 15:50 Terminée
        Cependant, ils n’apparaissent toujours pas … Je contacterai l’assistance OVH la semaine prochaine et te tiendrai au courant.

Opinions