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_lycee.fr,
il faut alors que ce serveur puisse "forwarder" les requêtes vers
un serveur dns officiel.
Il est clair qu'ici mon_lycee.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_lycee.fr et comme première machine
mon_serveur.
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_lycee.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.
Configurer Bind.
Il faut pour cela configurer les différents fichiers que nous venons de voir.
On cherche ici à configurer un domaine mon_lycee.fr avec comme adresse de réseau 192.168.0.0.
named.conf | |
; ;Fichier d'amorçage du serveur primaire pour mon_lycee.fr ; options { directory "/var/named"; forward first; forwarders { 195.98.246.50 }; 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_lycee.fr" in { notify no; type master; file "mon_lycee.fr"; }; zone "0.168.192.in.addr.arpa" in { notify no; type master; file "db.192.168.0"; }; |
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). 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_lycee.fr est la zone que vous souhaitez créer et qui a comme fichier mon_lycee.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. 195.98.246.50 est le dns de l'académie de Créteil. 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. |
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 | |
@ IN SOA
mon_serveur.mon_lycee.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 NS mon_serveur.mon_lycee.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_lycee.fr | |
@ IN SOA
mon_serveur.mon_lycee.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_lycee.fr. ;adresses IP des machines localhost IN A 127.0.0.1 mon_serveur IN A 192.168.1.1 mon_serveur_web IN A 192.168.1.2 ;Alias www IN CNAME mon_serveur_web ftp IN CNAME mon_serveur_web pop IN CNAME mon_serveur ; Serveur smtp mon_serveur_smtp IN A 192.168.1.3 IN MX 10 mon_serveur_smtp.mon_lycee.fr. |
Vous indiquez dans ce fichier, les machines que vous
souhaitez pouvoir appeler par leur nom (équivalent au fichier host
enregistrement de type A).
|
db.192.168.0 | |
@ IN SOA
mon_serveur.mon_lycee.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_lycee.fr. ; adresses IP inverses 1 IN PTR mon_serveur.mon_lycee.fr. 2 IN PTR mon_serveur_web.mon_lycee.fr. 3 IN PTR mon_serveur_smtp.mon_lycee.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. |
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_lycee.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-util. 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.
© Philippe Chadefaux - 10/10/2000 -