Supports Physiques - Ethernet 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 11/04/2017 http://www.isetinfo.com - RSI
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 . 11/04/2017
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. 11/04/2017
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,..) 11/04/2017
Découverte du Serveur DNS (win) 11/04/2017
Découverte du Serveur DNS (Linux) 11/04/2017
Analyse d’un FQDN 11/04/2017
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 11/04/2017
L'arborescence 11/04/2017
Commençant par la racine 11/04/2017
11/04/2017
11/04/2017
11/04/2017
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 ? 11/04/2017
11/04/2017
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 11/04/2017
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. 11/04/2017
11/04/2017
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. 11/04/2017
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 11/04/2017
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 ... 11/04/2017
Et après ce petit tour , est ce que ça marche ???? 11/04/2017
11/04/2017
11/04/2017
Qu’en est il de la sécurité sur un serveur DNS ?? 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 ?? 11/04/2017
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{}; }; 11/04/2017
NS ServeurEsclave1.rs5.iset. NS ServeurEsclave2.rs5.iset. 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 11/04/2017
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; }; }; 11/04/2017
zone “1. 168. 192. in-addr. arpa" { type slave; file “db. rs5. iset 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; }; 11/04/2017
Les sources de cette présentation est dans : 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 11/04/2017
Annexe 11/04/2017
11/04/2017
11/04/2017
11/04/2017
11/04/2017