Qu’est-ce que le DNS ?
Le DNS (Domain Name System) est un pilier fondamental d’Internet. Il agit comme un annuaire mondial qui traduit les noms de domaine lisibles par l’humain (comme www.example.com
) en adresses IP (comme 192.0.2.1
), que les machines utilisent pour communiquer entre elles.
Sans DNS, nous devrions nous souvenir de chaînes d’adresses numériques pour accéder à nos sites favoris… pas très pratique, n’est-ce pas ?
🛠️ Comment configurer un serveur DNS ?
1. Choisir un logiciel DNS
Parmi les plus populaires :
- BIND9 (Berkeley Internet Name Domain) — très répandu sur les systèmes Unix/Linux.
- Unbound — léger et sécurisé, idéal pour la récursivité.
- PowerDNS — performant et avec une API pour gestion avancée.
2. Installer le serveur DNS (exemple avec BIND sur Debian)
sudo apt update
sudo apt install bind9 bind9utils bind9-doc
3. Configurer les zones DNS
Tu devras éditer deux fichiers clés :
/etc/bind/named.conf.local
– pour déclarer les zones./etc/bind/db.nomdedomaine.tld
– fichier de zone contenant les enregistrements.
Exemple de configuration :
zone "monsite.com" {
type master;
file "/etc/bind/db.monsite.com";
};
Et dans db.monsite.com
:
$TTL 86400
@ IN SOA ns1.monsite.com. admin.monsite.com. (
2025042201 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Minimum TTL
;
@ IN NS ns1.monsite.com.
@ IN A 192.168.1.10
www IN A 192.168.1.10
4. Redémarrer BIND
sudo systemctl restart bind9
sudo systemctl enable bind9
🔒 Sécuriser son serveur DNS : les bonnes pratiques
Un serveur DNS mal sécurisé peut être une porte d’entrée pour des attaques sérieuses : cache poisoning, amplification DDoS, spoofing, etc. Voici comment le blinder :
1. Limiter les requêtes récursives
Réserve la récursivité à ton réseau local :
allow-recursion { localhost; 192.168.1.0/24; };
2. Désactiver la récursivité publique
Pour un serveur faisant autorité uniquement, désactive :
recursion no;
3. Activer DNSSEC
DNSSEC ajoute une couche de vérification cryptographique aux réponses DNS pour éviter le spoofing.
Dans BIND :
dnssec-enable yes;
dnssec-validation auto;
Pense aussi à signer tes zones DNS avec dnssec-signzone
.
4. Filtrage réseau et firewall
- N’autorise que les ports nécessaires (port UDP 53 en entrée).
- Bloque les requêtes non sollicitées venant de l’extérieur.
5. Utiliser le chiffrement (DoT/DoH)
Bien que BIND ne supporte pas nativement DoT/DoH, tu peux utiliser un proxy comme Stubby ou dnscrypt-proxy pour sécuriser les requêtes DNS via TLS ou HTTPS.
6. Mise à jour régulière
Les failles DNS sont souvent ciblées. Garde ton logiciel à jour :
sudo apt update && sudo apt upgrade
📌 En résumé
Élément | Objectif |
---|---|
BIND / Unbound | Serveur DNS principal ou récursif |
Zones DNS | Définissent la correspondance DNS/IP |
DNSSEC | Protège contre les falsifications DNS |
Firewall | Contrôle l’accès au port 53 |
Requêtes limitées | Réduit le risque d’abus |
Mise à jour système | Corrige les vulnérabilités |
Le DNS est bien plus qu’un simple annuaire : c’est un maillon critique de la sécurité réseau. En le configurant correctement et en appliquant des pratiques de sécurité rigoureuses, tu renforces considérablement ton infrastructure.