TP :DNS sous LINUX Bind
Transcription
TP :DNS sous LINUX Bind
TP : DNS sous LINUX Bind Un serveur DNS est un serveur qui transforme l'adresse de type http://be.soft.free.fr en adresse IP, qui sont les seules adresses valides sur internet. Lorsque vous souhaitez naviguer sur internet, vous devez obligatoirement avoir configuré le DNS de votre machine, sinon il vous sera impossible d'atteindre le moindre site web, à moins de connaître son adresse IP, ce qui est assez difficile à retenir. Le serveur DNS à une autre fonctionnalité qui est d'indiquer le serveur SMTP (serveur de messagerie) qui est autorisé à recevoir les messages pour votre domaine, ainsi lorsque vous envoyez un message à [email protected] vous n'indiquez pas le serveur besoft.fr, qui a la charge de remettre ce message au bon serveur. Le serveur DNS Bind que nous allons installer est le serveur le plus utilisé sur internet. 1. Objectif La raison pour laquelle on peut avoir besoin d'un serveur DNS dans un établissement scolaire peut être double. La première disposer d'un serveur cache DNS, afin d'accélérer les requêtes. La seconde, qui n'est pas incompatible avec la première, est de simplifier l'adressage des machines internes à votre établissement. Ainsi je veux que les élèves ne soient pas obligés de taper l'adresse IP de la machine web (intranet), mais puissent y arriver avec www.mon_domaine.fr, il faut alors que ce serveur puisse "forwarder" les requêtes vers un serveur dns officiel. Il est clair qu'ici mon_domaine.fr est un sous domaine complètement inventé, il n'a pas de valeur légale sur internet. Ainsi je vous conseille vivement de ne pas utiliser un domaine existant. Un domaine n'existe au sens légal que s' il a été déposé officiellement auprès d'un organisme autorisé (Voir le nic france pour plus d'informations). Cela serait la troisième possibilité de configuration d'un serveur DNS, vouloir installer un serveur public (officiel). Cette solution n'est pas envisageable pour un établissement scolaire. Donc pour revenir à ce que l'on souhaite faire, on va se créer un domaine rien que pour nous, avec comme nom mon_domaine.fr et comme première machine mon_serveur. 2. Installer le serveur bind Pour installer bind, il vous suffit d'installer le rpm bind-8....rpm (je n'indique pas ici de version, utilisez de préférence la dernière), et rpm -i bind-8.....rpm et le paquet caching-nameserver (ce paquet n'est pas nécessaire mais il vous installe les fichiers named.conf et /var/named/named.ca et /var/named/named.local, il installe aussi named.boot qui n'est plus utilisé dans la version 8 de bind) il permet de configurer un cache dns (on peut bien sûr compiler les sources). En passant installer aussi le paquet bind-util nous l'utiliserons pour tester la configuration. Vous obtenez alors les fichiers suivants : /etc/named.conf Contient les paramètres généraux. /var/named/named.ca Indique les serveurs dns racines. /var/named/named.local résolution locale des adresses loopback Il vous faut en fonction de ce que vous voulez faire créer les fichiers suivants : /var/named/mon_domaine.fr fichier qui fait correspondre le nom de machine et son adresse IP /var/named/db.192.168.0 fichier de zone inverse qui fait correspondre l'adresse IP avec le nom de machine. 1 3. Configurer Bind. Il faut pour cela configurer les différents fichiers que nous venons de voir. On cherche ici à configurer un domaine mon_domaine.fr avec comme adresse de réseau 192.168.0.0. named.conf options définit les options du serveur dans son ensemble. On peut configurer plus finement en plaçant les options dans les zones (si vous gérez plusieurs domaines ou des sous domaines par exemple). ; ;Fichier d'amorçage du serveur primaire pour mon_domaine.fr ; options { directory "/var/named"; forward first; forwarders { 193.252.19.3 }; query-source address * port 53; allow-query { 127/8; ! 192.168.1.10; 192.168.1/24; }; allow-transfert { ! *; }; allow-update {! *; }; listen-on port 53 { *; }; }; logging { category statistics { null; }; category security{ default_syslog; default_debug; }; category default { null; }; }; zone "." { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" { type master; file "named.local"; }; zone "mon_domaine.fr" in { notify no; type master; file "mon_domaine.fr"; }; zone "0.168.192.in.addr.arpa" in { notify no; type master; file "db.192.168.0"; }; zone définit les options s'appliquant à des zones particulières. La zone 0.0.127.in-addr.arpa crée une zone pour le réseau loopback. La zone . indique l'emplacement du root du serveur du domaine internet. Un forward only ne nécessite pas de zone . La zone mon_domaine.fr est la zone que vous souhaitez créer et qui a comme fichier mon_domaine.fr. logging permet de configurer les logs de named. On peut les envoyer vers deux canaux syslog ou un fichier ou null. Il existe plusieurs types de "category" (statistics, security, default,..). Vous pouvez paramétrer très finement cela. directory indique le répertoire ou se trouve les fichiers. Vous pouvez à la place indiquer le chemin complet. forward peut avoir plusieurs options (first, only) first redirige les requêtes aux serveurs se trouvant dans la liste forwarders, si les hôtes ne répondent pas, le serveur tentera de répondre. only redirige sans réponse aux serveurs se trouvant dans la liste forwarders forwarders indique les serveurs vers lesquelles les requêtes sont envoyées. 193.252.19.3est le dns de la connexion wanadoo query-source indique que le port 53 est le port d'échange (source et destination) entre les serveurs DNS. Très utile lorsqu'il y a un firewall. allow-query contient une liste des adresses dont le serveur acceptera ou refusera les requêtes. L'ordre compte, le premier l'emporte. 127/8 autorise localhost, j'interdis la machine 192.168.1.10 et autorise les autres (un exemple seulement). allow-transfert interdit les transferts de requête de zone. Par défaut cela est autorisé de partout. allow-update refuse les instructions de mises à jour de la base de données de zone. Par défaut les mises à jour sont refusées. listen-on port 53 indique le port en écoute pour les clients et les interfaces. Indiquer * pour écouter sur toutes les interfaces, ou l'adresse IP de la carte. category statistics génère un rapport périodique d'activité. category security requêtes acceptées/refusées. category default default est équivalent à toutes catégories. type déclare le type d'entrée, il en existe de plusieurs types (master, hint) master déclare ce serveur comme étant primaire. Si vous créez un serveur secondaire indiquez slave. hint déclare que cette entrée n'est qu'un endroit ou débuter les recherches. notify no pour ne pas informer les autres serveurs s'il y a des changements dans la zone. 2 Named.ca Je ne donne pas d'exemple ici. Vous n'avez pas à modifier ce fichier. Il contient les adresses des serveurs root. named.local ou named.conf.local @ IN SOA mon_serveur.mon_domaine.fr. postmaster.mon_serveur.mon_domaine.fr.( 2000101500 ; numéro de série 28800 ; rafraîchissement toutes les 8 heures 14400 ; nouvel essai toutes les 4 heures 604800 ; expiration dans 7 jours 86400 ) ; temps de vie minimal 24 heures NS mon_serveur.mon_domaine.fr. 1 PTR localhost. Normalement vous n'avez pas à changer les valeurs qui sont dans ce fichier. La première partie est identique dans les trois fichiers, si vous devez faire une modification sur un fichier vous devez modifier le numéro de série afin de faire connaître cette modification aux autres serveurs dns. 20001015 correspond au 15 oct 2000 changer cela lorsque vous faites une modification. Si vous devez faire plusieurs modifications dans la même journée incrémenté le 00. mon_domaine.fr @ IN SOA mon_serveur.mon_domaine.fr. postmaster.mon_serveur.monlycee.fr.( 2000101500 ; numéro de série 28800 ; rafraîchissement toutes les 8 heures 14400 ; nouvel essai toutes les 4 heures 604800 ; expiration dans 7 jours 86400 ) ; temps de vie minimal 24 heures ; serveur de nom IN NS mon_serveur.mon_domaine.fr. ;adresses IP des machines localhost IN A mon_serveur IN A mon_serveur_web IN A 127.0.0.1 192.168.1.1 192.168.1.2 ;Alias www ftp pop mon_serveur_web mon_serveur_web mon_serveur IN CNAME IN CNAME IN CNAME Vous indiquez dans ce fichier, les machines que vous souhaitez pouvoir appeler par leur nom (équivalent au fichier host enregistrement de type A). Indiquez aussi le serveur SMTP de votre domaine (enregistrement de type MX). Les CNAME (alias) permettent de définir les alias sur des machines. Ainsi lorsque vous tapez www.free.fr www est un alias sur la machine web du rectorat, qui possède en fait un autre nom. l'avantage étant de pouvoir changer de machine sans être obligé de faire de grosses modifications. N'hésitez donc pas à utiliser les alias. Ce fichier est celui que vous allez modifier le plus, pensez donc à changer le numéro de série. ; Serveur smtp mon_serveur_smtp IN A 192.168.1.3 IN MX 10 mon_serveur_smtp.mon_domaine.fr. db.192.168.0 @ IN SOA mon_serveur.mon_domaine.fr. postmaster.mon_serveur.monlycee.fr.( 2000101500 ; numéro de série 28800 ; rafraîchissement toutes les 8 heures 14400 ; nouvel essai toutes les 4 heures 604800 ; expiration dans 7 jours 86400 ) ; temps de vie minimal 24 heures ; serveur de nom IN NS mon_serveur.mon_domaine.fr. Fichier des reverses. Une entrée de type A dans ce fichier doit avoir une correspondance dans ce fichier, enfin normalement. Le 1, 2, 3 correspondent à respectivement l'adresse 192.168.1.1, et ainsi de suite. ; adresses IP inverses 1 IN PTR mon_serveur.mon_domaine.fr. 2 IN PTR mon_serveur_web.mon_domaine.fr. 3 IN PTR mon_serveur_smtp.mon_domaine.fr. 3 4 Remarques : - Pensez à toujours mettre un point à la fin des noms de machine + domaine. - Vous n'aurez certainement pas le besoin d'un serveur SMTP, il est là pour l'exemple. Si vous deviez en ajouter un deuxième indiquer un poids supérieur (IN MX 15 mon_autre_serveur_smtp). Si vous souhaitez en faire votre SMTP principal indiquez un poids inférieur. - Les numéros de série peuvent être différents d'un fichier à un autre. Vous n'avez qu'à modifier celui du fichier que vous modifiez. - Postmaster doit être un compte existant sur votre machine. ce qui est normalement le cas. Il recevra tout le courrier concernant ce domaine. - Un serveur DNS n'est pas simple à mettre en oeuvre. Il faut entre autre éviter de monter la ligne à chaque fois qu'une requête est envoyée au serveur web local. Je n'ai pas ici donné toutes les options disponibles, mais toutefois , il peut être utile d'enregistrer certains logs de votre dns. Voir les paramétrages du fichiers named.conf. Attention à ne pas enregistrer toutes les requêtes et entre autres les requêtes qui aboutissent, car vous auriez alors des fichiers énormes. Pensez à configurer votre fichier /etc/resolv.conf qui doit contenir les lignes suivantes : domain mon_domaine.fr nameserver 127.0.0.1 (autant utiliser le dns que vous venez de configurer, vous pouvez éventuellement en indiquer un autre). 5 Tester son serveur DNS Une fois que votre installation est terminée, vous devez la tester. Pensez avant tout à lancer le daemon named, sinon vous risquez de ne rien voir :-). Pour cela, vous avez installé bind-utils. Vous pouvez utiliser alors l'utilitaire nslookup. 6 Configurer les clients Je ne vais pas ici vous apprendre à configurer le dns de vos clients, par contre pensez à utiliser le dns, que vous venez de mettre en oeuvre, et donc de le placer en première position de vos dns. TP 1 : INSTALLER LE SERVEUR BIND SUR VOTRE MACHINE. CONFIGURER BIND DE FAÇON À DISPOSER D'UN DNS LOCAL CAPABLE DE FORWARDER LES REQUÊTES OFFICIELLES. 4