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