Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. LINUX
  3. Domain Name Server
Extrait - LINUX Préparation à la certification LPIC-2 (examens LPI 201 et LPI 202) - 5e édition
Extraits du livre
LINUX Préparation à la certification LPIC-2 (examens LPI 201 et LPI 202) - 5e édition
2 avis
Revenir à la page d'achat du livre

Domain Name Server

Prérequis et objectifs

1. Prérequis

Les connaissances nécessaires à la certification LPIC-1 :

Commandes de suivi des processus.

Édition de fichiers.

Commandes de gestion de répertoires et de fichiers.

Les connaissances acquises dans les précédents chapitres, notamment :

Gestion du réseau local.

Gestion des services.

2. Objectifs

À la fin de ce chapitre, vous serez en mesure de :

Connaître l’architecture et les principes de fonctionnement de DNS.

Configurer différents types de serveurs DNS BIND (cache, récursif, principal, secondaire).

Créer et maintenir des fichiers de zone.

Suivre et administrer les services BIND.

Configurer et gérer un serveur BIND en environnement sécurisé.

Domain Name Server

Ce sujet est divisé en trois parties de poids différents.

1. Configuration de base d’un serveur DNS

Poids

3

Objectifs

Configurer un serveur BIND ayant autorité sur une zone DNS et un serveur de cache récursif. Cela inclut la gestion de l’activité du serveur et la configuration des logs.

a. Compétences principales

  • Terminologie, fichiers de configuration et utilitaires de BIND 9.x.

  • Détermination de l’emplacement des fichiers de zone dans la configuration de BIND.

  • Rechargement des fichiers de configuration et de zone après modification.

  • Connaissance d’autres serveurs DNS : dnsmasq, djbdns et PowerDNS.

b. Éléments mis en œuvre

  • /etc/named.conf

  • /var/named/

  • rndc

  • named-checkconf

  • kill

  • host

  • dig

2. Création et gestion des zones DNS

Poids

3

Objectifs

Créer un fichier de zone pour une zone directe ou inverse, et un fichier de déclaration des serveurs de niveau racine.

Cela inclut la configuration correcte des enregistrements, l’ajout de noms d’hôtes dans une zone et de zones dans DNS.

Délégation de zones auprès d’un autre serveur DNS.

a. Compétences principales

  • Terminologie, fichiers de configuration et utilitaires de BIND 9.x.

  • Utilitaires d’interrogation d’un serveur DNS.

  • Format, contenu et emplacement des fichiers de zone DNS.

  • Différentes méthodes pour ajouter un hôte...

Configuration de base d’un serveur DNS

DNS (Domain Name System) est un protocole de résolution de noms, permettant de faire la relation entre un nom d’hôte ou de service et une adresse IP. Il a été créé en 1983 par Paul Mockapetris et Jon Postel, et défini à l’origine dans les RFC 882 et 883 (remplacées depuis par les RFC 1034 et 1035). Il est devenu le standard de fait pour la résolution de noms sur Internet.

1. Principes de DNS

DNS est un système de résolution de noms structuré en arborescence. Cette arborescence virtuelle est organisée en domaines et sous-domaines. Chaque domaine ou sous-domaine constitue un nœud de l’arborescence et peut contenir des noms associés à des adresses IP. Il existe également une branche de l’arborescence permettant de résoudre des adresses IP en noms d’hôtes ou de services (résolution inverse).

Les domaines et sous-domaines sont gérés par des serveurs de noms DNS qui coopèrent entre eux pour fournir aux clients DNS la relation entre des noms et des adresses IP. Ces dernières peuvent être des adresses IPv4 ou IPv6.

L’arborescence DNS peut être privée ou publique. La plus grande arborescence DNS publique est celle d’Internet.

a. Clients et serveurs DNS

Un client DNS (resolver) interroge un serveur DNS pour connaître la ou les adresses IP correspondant à un nom (résolution de nom), ou inversement pour connaître le ou les noms correspondant à une adresse IP (résolution d’adresse ou résolution inverse). Le serveur DNS répond s’il a les éléments suffisants, sinon il interroge d’autres serveurs DNS et répond finalement à son client, en fournissant les éléments demandés ou un code réponse d’échec de la résolution.

Un nom peut être un nom de machine (nom d’hôte) ou un nom de service (par exemple, serveur de noms, serveur de messagerie…). Un nom peut correspondre à plusieurs adresses IP, une adresse IP peut correspondre à plusieurs noms.

Pour pouvoir gérer un très grand nombre de noms, en perpétuelle évolution, de façon fiable et décentralisée, le système...

Création et gestion des zones DNS

Un serveur primaire DNS gère une ou plusieurs zones, correspondant chacune à un domaine ou à un sous-domaine d’une arborescence DNS. Il peut éventuellement fournir une copie d’un fichier de zone, en lecture seulement, à un ou plusieurs serveurs secondaires. Ces derniers peuvent ainsi fournir des réponses faisant autorité à des demandes de résolution concernant des enregistrements de la zone. Par contre, seul le serveur primaire peut mettre à jour le contenu du fichier de zone.

Un serveur DNS peut être serveur primaire pour une ou plusieurs zones et serveur secondaire pour d’autres zones.

À chaque fichier de zone devrait correspondre un fichier de zone de recherche inverse, permettant la résolution inverse (fournir le nom DNS correspondant à une adresse IP). Il faudrait de même un fichier de zone de recherche inverse pour les adresses IPv6.

Le contenu d’un fichier de zone obéit à une syntaxe précise et contraignante, la moindre erreur peut empêcher son chargement par un serveur DNS.

1. Fichier de zone de recherche

La zone doit être déclarée dans le fichier de configuration named.conf par une directive zone spécifiant le nom de la zone, son type et le nom du fichier de zone.

Le fichier de zone doit se trouver dans le répertoire de données déclaré dans le fichier de configuration named.conf, par l’option directory (par défaut /var/named ou /var/cache/bind).

Exemple

Déclaration d’une zone dans le fichier named.conf :

zone "lpic2test.fr" IN { 
       type master; 
       file "lpic2.zone"; 
}; 

Il s’agit d’une zone de type master, pour laquelle le serveur DNS joue le rôle de serveur principal.

Un fichier de zone contient un enregistrement de type SOA, décrivant les caractéristiques de la zone, et un ensemble d’enregistrements de ressources (type RR) pour chaque nom d’hôte ou de service de la zone.

Dans un fichier de zone, les commentaires vont du caractère ; jusqu’à la fin de la ligne. Le séparateur de champs est une suite de caractères espace ou tabulation, le séparateur d’enregistrements est la fin de ligne (sauf...

Sécuriser un serveur DNS

Un serveur DNS est susceptible de recevoir des demandes issues de l’inter-réseau auquel il participe, demandes pouvant provenir de clients DNS ou d’autres serveurs DNS. Il peut donc constituer un point d’entrée vers l’organisation dont il dépend, et être utilisé pour recueillir des informations sensibles (adresses et noms de machines ou de services réseau).

D’autre part, dans l’hypothèse d’une faille de sécurité dans le programme exécutable de BIND, un serveur DNS pourrait être utilisé pour prendre le contrôle du système sur lequel il s’exécute, ou pour fournir des informations sensibles (comptes utilisateurs, etc.).

Différentes techniques permettent de sécuriser un serveur BIND :

  • Limiter les clients et serveurs DNS autorisés à communiquer avec lui.

  • Répartir les données noms/adresses entre plusieurs serveurs.

  • Restreindre les possibilités de lecture-écriture du serveur à une branche de l’arborescence du système de fichiers global (chroot jail).

1. Contrôle des clients autorisés

Un serveur BIND peut être configuré pour ne traiter les demandes que d’hôtes autorisés et/ou pour refuser les demandes de certains hôtes. La sélection peut se faire en spécifiant des adresses IP ou des identifiants de réseau/sous-réseau.

a. L’option allow-query

L’option allow-query, dans la directive options du fichier de configuration named.conf, permet de spécifier les clients DNS autorisés à interroger le serveur BIND.

Syntaxe

allow-query {Liste}; 

La liste est composée d’éléments délimités par un caractère ’;’. Un élément peut être :

  • une adresse IP, IPv4 ou IPv6,

  • un identifiant de réseau, IPv4 ou IPv6, en notation CIDR,

  • un mot-clé prédéfini : none (aucun), any (tous), localhost (machine locale), localnets (réseaux de la machine locale),

  • l’identifiant d’une liste définie au préalable (acl),

  • l’un des éléments précédents, précédé du caractère ! pour l’exclure de la liste autorisée.

Pour simplifier...

Validation des acquis : questions/réponses

Répondez à ces questions ouvertes, comparables à celles qui pourront vous être posées lors de la certification, mais ces dernières seront sous forme de QCM ou demandant une réponse courte saisie au clavier.

1. Questions

1 Quelle commande demande au serveur DNS local de recharger le fichier de la zone xxx.yyyy.fr ?

2 Quel fichier détermine le serveur DNS par défaut du système local ?

3 Quelle commande permet de vérifier la syntaxe du fichier de configuration du daemon BIND ?

4 Sur réception du signal 1, que fait le daemon BIND ?

5 Que signifie SOA ?

6 Quelle est la différence entre un enregistrement de type A et de type AAAA ?

7 Quels sont les types d’une zone principale et d’une zone secondaire ?

8 Quelle option ou quel argument de la commande dig permet d’interroger un serveur DNS spécifique ?

9 Quelle option de la commande named lance le daemon en mode chroot jail ?

10 Quelle commande permet de générer des clés DNSSEC pour des échanges signés numériquement ?

11 Que signifie DANE ?

2. Résultat

Référez-vous aux pages suivantes pour contrôler vos réponses. Pour chacune de vos bonnes réponses, comptez un point.

Nombre de points :    /11

Pour ce chapitre, votre score minimum doit être...

Travaux pratiques

Ces travaux pratiques proposent trois ateliers mettant en œuvre certains des points abordés dans ce chapitre. Pour chaque étape est donné un exemple commenté de réalisation, à adapter suivant la configuration de vos systèmes.

1. Installation d’un serveur DNS de cache

On configure un serveur BIND 9 en tant que serveur de cache, sur une distribution de type Red Hat.

Commandes et fichiers utiles

  • yum

  • /etc/named.conf

  • named-checkconf

  • rndc

  • systemctl

  • /etc/nsswitch.conf, /etc/resolv.conf

  • firewall-cmd

  • host

  • dig

Manipulations

1.

Vérifiez que le paquet logiciel BIND9 est installé.

2.

Configurez le serveur DNS BIND 9 en tant que serveur de cache.

3.

Démarrez ou redémarrez le serveur DNS BIND 9.

4.

Configurez le système local comme client DNS de son serveur DNS.

5.

Testez la résolution de noms depuis le système local.

6.

Configurez un autre système comme client DNS du serveur DNS.

7.

Testez la résolution de noms depuis l’autre système.

8.

Configurez le daemon named en démarrage automatique, via systemd.

Résumé des commandes et résultat à l’écran

1.

Vérifiez que le paquet logiciel BIND9 est installé.

[root@srvrh ~]# yum list bind 
Paquets installés 
bind.x86_64 32:9.11.36-3.el8 @rhel-8-for-x86_64-appstream-rpms 

Le paquet logiciel est installé.

2.

Configurez le serveur DNS BIND 9 en tant que serveur de cache.

On vérifie la configuration du serveur BIND :

[root@srvrh ~]# vi /etc/named.conf 
// 
// named.conf 
// 
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 
// server as a caching only nameserver (as a localhost DNS resolver only). 
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files. 
// 


options { 
        listen-on port 53 { 127.0.0.1; }; 
        listen-on-v6 port 53 { ::1; }; 
        directory       "/var/named"; 
        dump-file       "/var/named/data/cache_dump.db";...