http://www.isetinfo.com - RSI 1 25/02/22
ISET MAHDIA
ISET MAHDIA OCTOBERE 2011 OCTOBERE 2011
Prof : GRASSA Noureddine Prof : GRASSA Noureddine
Réseaux Systèmes Informatique Réseaux Systèmes Informatique
- - DNS DNS - -
DOMAIN NAME SYSTEM
Le Domain Name System (ou DNS, système de noms de domaine) est un service permettant d'établir une correspondance entre une adresse IP et un nom de domaine et, plus généralement, de trouver une
information à partir d'un nom de domaine
Les Serveurs DNS Les Serveurs DNS
Ils sont en place pour permettre la résolution de de FQDN en adresses IP (et réciproquement, si
nécessaire). En utilisation courante, nous
exploitons un serveur DNS « récursif » dont
l'adresse IP est généralement fournie par DHCP ou RADIUS, suivant le cas.
Ces serveurs savent effectuer les recherches
nécessaires dans une architecture arborescente que nous allons voir en détail, pour résoudre n'importe quel nom d'hôte.
Objectifs de ce cours Objectifs de ce cours
L'objectif avoué est double :
fournir des informations de base nécessaires à la compréhension de la résolution des noms ;
Donner des informations approfondies sur les mécanismes utilisés à ceux qui souhaitent
comprendre plus en profondeur le fonctionnement de DNS.
25/02/22 3
Pourquoi installer un serveur DNS Pourquoi installer un serveur DNS
Éviter de tenir à jour la table hosts de chaque poste client d’un réseau.
Avoir un cache DNS qui accélère la recherche des noms.
Sur un réseau locale, un serveur DNS permet d’accélérer le trafic sur le réseau car de
nombreux services ont besoins d’un serveur DNS bien configuré pour fonctionner correctement
(WEB, POP, SMTP,..)
Découverte du Serveur DNS (win) Découverte du Serveur DNS (win)
25/02/22 5
Découverte du Serveur DNS (Linux)
Découverte du Serveur DNS (Linux)
Analyse d’un FQDN Analyse d’un FQDN
25/02/22 7
Pourquoi « serveur récursif » ? Pourquoi « serveur récursif » ?
A priori, un serveur DNS récursif n'a par lui-
même aucune réponse, du moins aucune réponse
« qui fait autorité ». en revanche il sait
exactement rechercher qui et dans quel ordre il faut interroger pour obtenir une réponse
Notre serveur DNS récursif va conserver dans sa mémoire pendant « un certain temps » les
résultats de recherche qu'il a obtenus et s'en servira en priorité, pour avoir moins de travail
L'arborescence L'arborescence
25/02/22 9
Commençant par la racine
Commençant par la racine
25/02/22 11
25/02/22 13
Construire un Serveur DNS Construire un Serveur DNS
aptitude install bind9 bind9-host
En l'état, notre bind est fonctionnel, c'est un serveur DNS récursif qui sait par lui-même
répondre à toutes les demandes de résolution de FQDN de l'internet. La preuve ?
25/02/22 15
Construisons le domaine : Construisons le domaine : rs5.iset ( Voir Annexe ) rs5.iset ( Voir Annexe )
Avant d’installer le serveur DNS , il faut configurer /etc/hosts et /etc/resolv.conf
En installant bind , on a entre autres 4 fichiers importants dans /etc/bind
named.conf
named.conf.local
named.conf.options
named.conf.default-zones
Quelques définitions : Quelques définitions :
Une Zone : rs5.iset sur notre LAN
$TTL : les serveurs DNS récursifs conserveront en cache les informations récoltées prendant la durée indiquée en paramètre.
SOA : Start Of Authority. Serveur maitre et les répliques. (voir la capture au dessous).
Serial : numero_serie++ à chaque modification de la zone utile pour les serveurs esclaves.
Refresh: le temps en seconde où les serveurs esclaves devront demander à rafraichir leur données pour cette zone.
25/02/22 17
Retry : Indique en secondes au bout de combien de temps un serveur esclave doit ré-essayer de se synchroniser si la tentative a échoué après le
temps refresh
Expire : Si toutes les tentatives de
synchronisation échouent, indique le temps (en secondes) au bout duquel les serveurs secondaires devront considérer qu'ils ne savent plus répondre aux requêtes concernant cette zone.
Negative cache TTL : Pour bind9, indique le
temps pendant lequel les caches (DNS récursifs) conserverait l'information NXDOMAIN, « le
domaine n'existe pas », lorsqu'un incident s'est produit.
25/02/22 19
NS,A,AAAA,CNAME ,MX,@...etc. :
Le champ NS (Name Server) indique le nom d'un serveur de noms. Pour une zone donnée, s'il y a plusieurs serveurs de noms, il y aura plusieurs champs NS.
Le champ A (Address) fait correspondre un nom à une adresse IPv4, alors que le champ AAAA fera correspondre un nom à une adresse IPv6.
Le champ CNAME (Common Name) fait
correspondre un alias à un « vrai nom ». Le « vrai nom » doit disposer par ailleurs d'un champ A, dans la même zone ou dans une autre, sur le même serveur ou sur un autre (nous en avons vu
MX : (Mail eXchanger), utile pour le protocole SMTP
@ : Dans un fichier de configuration de zone, ce symbole représente exactement le nom de
domaine de la zone.
Par exemple, lorsque nous allons créer notre zone rs5.iset, au lieu d’écrire :
rs5.iset. IN SOA ...
Nous pourrons écrire :
@ IN SOA ...
25/02/22 21
Et après ce petit tour , est ce que ça Et après ce petit tour , est ce que ça
marche ????
marche ????
25/02/22 23
A priori on a un serveur DNS local qui marche mais c’est pas fini !!!!! , Dans une entreprise généralement on a un serveur DNS primaire ( maitre) et un autre secondaire ( esclave).
Que faut il faire pour mettre en place un serveur DNS secondaire esclave ????
Qu’en est il de la sécurité sur un serveur DNS ??
25/02/22 25
Installer un serveur secondaire Installer un serveur secondaire
esclave (slave) esclave (slave)
Avoir un 2ème serveur et y installer bind
Sur le serveur principal, il faut modifier les zones du fichier « /etc/bind/named.conf », pour ajouter la ligne « notify yes ». Exemple :
zone “rs5.iset" { type master;
notify yes;
file "/etc/bind/db.rs5.iset";
forwarders{};
Sur le serveur principal, il faut ajouter dans chaque zone à exporter une ligne « NS » pour chaque serveur esclave. Exemple :
NS ServeurEsclave1.rs5.iset.
NS ServeurEsclave2.rs5.iset.
Sur le serveur principal, il faut autoriser Bind à transférer les données vers le serveur secondaire en ajoutant cette ligne dans
« /etc/bind/named.conf.options » :
allow-transfer { 192.168.1.x; };
Remarque : Il faut remplacer l’adresse IP par celle de votre serveur esclave
25/02/22 27
Configuration du serveur esclave Configuration du serveur esclave
Sur le serveur esclave, il faut ajouter dans le
fichier « /etc/bind/named.conf.local », les zones à importer du serveur principal. Voici un
exemple :
zone “rs5.iset" { type slave;
file "db.rs5.iset";
masters {192.168.1.4; };
};
zone “1.168.192.in-addr.arpa" { type slave;
file “db.rs5.iset.inv";
masters {192.168.1.4; };
};
Sur le serveur esclave, il faut l’autoriser à
s’envoyer des notifications pour éviter d’avoir des messages d’erreurs dans les logs. Pour cela, il faut ajouter cette ligne dans le fichier
« /etc/bind/named.conf.options » :
allow-notify { 192.168.1.x; };
25/02/22 29
Et voila on arrive presque à la fin. La sécurité sur les serveurs DNS ne fera pas l’objet de ce cours
Les sources de cette présentation est dans :
http://irp.nain-t.net/doku.php
http://coagul.org
Pour la sécurité d’un serveur DNS :
http://www.faqs.org/docs/securing/index.html
Annexe Annexe
25/02/22 31
25/02/22 33
25/02/22 35