Serveur DNS
Introduction
Définition du DNS
Le DNS (Domain Name Server) - signifiant en français Serveur de Nom de Domaine - est un protocole permettant de faire correspondre à un nom de machine une adresse IP et réciproquement.
Une adresse IPv4 est composé de 4 blocs de 8 octets ou pour IPv6 de 8 bloc de 16 octets. Quelques exemples d'adresses :
- IPv4 : 193.54.12.3; 192.168.5.7, 10.255.1.7.
- IPv6 : 2001:0045:f8b5:c101::5.
Ces adresses sont particulièrement difficiles à mémoriser et cela n'est pas exploitable dans l'usage du web par exemple. Sans DNS, au lieu de saisir le nom d'un site web - par exemple http://google.fr - il faudrait à la place saisir l'adresse IP du serveur hébergeant le site web en question : http://173.194.34.63.
Vocabulaire
- Nom de domaine : Un nom de domaine désigne une adresse internet. Il se compose principalement du domaine et de l'extension. Ces deux parties étant séparée par un point. Exemple : ncad.fr avec le domaine ncad et son extension fr.
- Récursif : Se dit d'un serveur qui va résoudre des noms de domaine dont il n'héberge pas les zones.
- Zone DNS : La zone DNS est matérialisé par un fichier texte contenant tous les enregistrements nécessaires au fonctionnement de la zone et à sa résolution. Ce fichier est consulté et mis à jour par le serveur DNS chargé de sa propagation sur Internet.
- Enregistrement : Les enregistrements sont utilisés pour renseigner une zone DNS. Ils sont divers et régissent la déclaration de la zone, la durée de vie de cette dernière, les serveurs de messagerie et DNS hébergeant la zone.
Enregistrements DNS
Les enregistrements DNS permettent de configurer une zone DNS. Il existe plusieurs types d'enregistrement avec des usages bien précis.
A : Permet d'affecter une adresse IPv4 à un nom de domaine.
AAAA : Permet d'affecter une adresse IPv6 à un nom de domaine.
CNAME : Permet de rediriger un nom de domaine vers un autre nom de domaine.
MX : Permet de définir les serveurs de messagerie du nom de domaine.
PTR : Permet d'affecter un nom de domaine à une adresse IP.
SOA : Permet de déclarer la zone DNS du nom de domaine.
SPF : Permet de définir les serveurs mails autorisés à délivrer les messages dont l'adresse expéditeur comporte le nom de domaine.
Installation
Dépôts Ubuntu
Depuis un serveur Ubuntu il suffit d'installer le paquet bind9 :
|
|
Configuration
Fichier /etc/bind/named.conf.options
Il est possible de restreindre l'utilisation du serveur DNS. Par exemple, n'autoriser que certaines machines ou réseau à lui soumettre des requêtes. Pour cela, la directive allow-query sera utilisée :
allow-query { 10.0.0.0/28; 10.0.0.32/28; 10.255.254.253; };
|
En supprimant cette directive le serveur écoutera toutes les requêtes qui lui seront soumises sur le port TCP/UDP 53. |
Serveur récursif
Par défaut, Bind est configuré pour fonctionner en mode récursif. C'est à dire, si la zone à résoudre n'est pas hébergée localement par Bind, il va consulter des serveurs DNS tiers pour obtenir la résolution.
- Pour activer / désactiver cette option, il suffit de renseigner la directive resive
recursion <yes|no>; allow-query { any; };
|
Chaque déclaration se termine par un ";" - de même pour l'accolade finale. |
Fichier /etc/bind/named.conf.local
Ce fichier regroupe l'ensemble des zones gérées par le serveur. C'est dans ce fichier que doit être déclaré la zone à gérer par Bind en y renseignant notamment :
- le nom dns de la zone;
- le mode de gestion (maître/esclave);
- le chemin vers le fichier de configuration de la zone.
On va par exemple déclarer ici trois zones :
- net.ncad.fr qui correspond au nom de domaine net.ncad.fr;
- 0.0.10.in-addr.arpa qui correspond à la gestion du reverse DNS pour le réseau 10.0.0.0/24.
- 0.0.a.b.0.f.e.f.0.d.1.4.1.0.0.2.ip6.arpa qui correspond à la gestion du reverse DNS pour le réseau "2001:41d0:fef0:ba00/64".
La déclaration de ces zones dans le fichier /etc/bind/named.conf.options donne les lignes suivantes :
zone "net.ncad.fr" { type master; file "/etc/bind/db.net.ncad.fr"; };
zone "0.0.10.in-addr.arpa" { type master; notify no; file "/etc/bind/db.10"; };
zone "0.0.a.b.0.f.e.f.0.d.1.4.1.0.0.2.ip6.arpa" { type master; notify no; file "/etc/bind/db.0.0.a.b.0.f.e.f.0.d.1.4.1.0.0.2"; };
Définition des zones DNS
Dans ce cas précis il faudra créer deux fichiers de configuration à la racine /etc/bind/ :
- db.net.ncad.fr; pour notre nom de domaine;
- db.10; pour notre reverse DNS.
Création d'une zone DNS
Nous définissons en premier lieu les informations de la zone :
$TTL 604800 @ IN SOA a-ncad-dns.net.ncad.fr. tech.ncad.fr. ( 2012071201 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 38400 ) ; Negative Cache TTL ; @ IN NS a-ncad-dns.net.ncad.fr. a-ncad-dns IN A 10.0.0.37
Ensuite nous pouvons ajouter des enregistre additionnels :
machine-a IN A 10.0.0.30
Ce qui nous donne au final le fichier de configuration suivant :
$TTL 604800 @ IN SOA a-ncad-dns.net.ncad.fr. tech.ncad.fr. ( 2012071202 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS a-ncad-dns.net.ncad.fr. a-ncad-dns IN A 10.0.0.37 machine-a IN A 10.0.0.30
A chaque modification de ce fichier - ajout/suppression d'enregistrements - vous devez incrémenter le Serial (synthaxe du sérial : aaaammjjvv). |
Création d'une zone DNS inverse (IPv4)
Comme pour le fichier précédent, nous devons renseigner les informations de la zone :
$ttl 38400 0.0.10.in-addr.arpa. IN SOA a-ncad-dns.net.ncad.fr. tech.ncad.fr. ( 2012071101 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 38400 ) ; Negative Cache TTL 0.0.10.in-addr.arpa. IN NS a-ncad-dns.net.ncad.fr.
Dans le fichier précédent nous avions attribué le nom machine-a.net.ncad.fr à l'adresse IP 10.0.0.30. Ici nous allons faire l'inverse : associer l'IP 10.0.0.30 au nom de machine machine-a.net.ncad.fr.
30.0.0.10.in-addr.arpa. IN PTR machine-a.net.ncad.fr
Au final, nous obtenons le fichier de configuration suivant :
$ttl 38400 0.0.10.in-addr.arpa. IN SOA a-ncad-dns.net.ncad.fr. tech.ncad.fr. ( 2012071102 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 38400 ) ; Negative Cache TTL 0.0.10.in-addr.arpa. IN NS a-ncad-dns.net.ncad.fr. 30.0.0.10.in-addr.arpa. IN PTR machine-a.net.ncad.fr
A chaque modification de ce fichier - ajout/suppression d'enregistrements - vous devez incrémenter le Serial. |
Création d'une zone DNS inverse (IPv6)
|
Cet {{{1}}} est en cours de rédaction. |
Filtrage DNS via RPZ
|
Cette fonctionnalité est disponible depuis la version 9.8.0 de Bind. |
Principe de fonctionnement
On définit sur le serveur DNS une zone DNS RPZ. Lorsqu'une requête de résolution DNS sera soumise à Bind, il va vérifier si la zone demandée est présente dans la zone RPZ. Si c'est le cas, le serveur DNS retournera un code d'erreur indiquant au client qu'il n'a pas été en mesure de résoudre le nom de domaine.
Cette solution de filtrage est contournable : il suffit d'interroger un autre serveur DNS. Cependant, si le protocole DNS est limité seulement à l’envoi de requête sur le serveur DNS filtré il ne sera pas possible d'utiliser un service DNS tiers.
Déclaration de la zone RPZ
La déclaration de la zone s'effectue dans le fichier /etc/bind9/named.conf. Il faut y ajouter une section nommée response-policy dans la section options et y renseigner le nom de la zone RPZ :
options { ... response-policy {zone "rpz.lan"} }
Création de la zone
Renseignement de la zone
Commandes utiles
Recharger la configuration
Une fois l'édition des fichiers terminés, il faut redémarrer Bind9. Pour cela, il suffit de taper en ligne de commande :
|
|