Presentation DNS - Ingénierie Système et Réseaux Informatique

Download Report

Transcript Presentation DNS - Ingénierie Système et Réseaux Informatique

ISET MAHDIA OCTOBERE 2011
Prof : GRASSA Noureddine
Réseaux Systèmes Informatique
- 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
13/04/2015
http://www.isetinfo.com - RSI
1
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.
Cette architecture arborescente est construite au
niveau mondial .
13/04/2015
2
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.
13/04/2015
3
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,..)
13/04/2015
4
Découverte du Serveur DNS (win)
13/04/2015
5
Découverte du Serveur DNS (Linux)
13/04/2015
6
Analyse d’un FQDN
13/04/2015
7
Pourquoi « serveur récursif » ?


A priori, un serveur DNS récursif n'a par luimê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
13/04/2015
8
L'arborescence
13/04/2015
9
Commençant par la racine
13/04/2015
10
13/04/2015
11
13/04/2015
12
13/04/2015
13
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 ?
13/04/2015
14
13/04/2015
15
Construisons le domaine :
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
13/04/2015
16
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.
13/04/2015
17
13/04/2015
18
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.
13/04/2015
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
un exemple avec www.isetinfo.com
13/04/2015
20






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 ...
13/04/2015
21
Et après ce petit tour , est ce que ça
marche ????
13/04/2015
22
13/04/2015
23
13/04/2015
24

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 ??
13/04/2015
25
Installer un serveur secondaire
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{};
};
13/04/2015
26





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
13/04/2015
27
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; };
};
13/04/2015
28



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; };
13/04/2015
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




13/04/2015
30
Annexe
13/04/2015
31
13/04/2015
32
13/04/2015
33
13/04/2015
34
13/04/2015
35