Installation d`un serveur DNS (Bind9) sur Ubuntu

Transcription

Installation d`un serveur DNS (Bind9) sur Ubuntu
Installation d'un serveur DNS (Bind9) sur Ubuntu
Cet article présente l'installation et la configuration d'un serveur DNS.
L'installation est faite sur une distribution Ubuntu 12.04 LTS
Pré-requis
Savoir ce qu'est le système DNS :
Pour l'ensemble du tuto, nous partirons du principe, que la configuration réseau de votre serveur est fonctionnelle.
Ma configuration
Adresse IP du serveur : 192.168.2.30
Adresse IP de mon routeur (ou de la "box") : 192.168.2.254
Domaine : prof.ig Nom fqdn du serveur dns1.prof.ig
Les noms des ordinateurs et les ip souhaitées:
poste1 (windows XP) => 192.168.2.246
1) Installation
La première chose à faire est d'installer le paquet bind sur le serveur :
#apt-get install bind9
Votre serveur de nom démarre après l’installation. L’utilisateur bind et le groupe bind ont été crée, une clé de crryptage a
été généré. Le service lancé s’appelle « named »
Vérifiez avec #ps –ef | grep named
le service est lancé par l’utilisateur bind
Votre serveur est-il à l’écoute de client éventuel ?
Le paquet Nmap doit être installé
#nmap –sU ip_du_serveur
Bts SIO
| jm Debroise
U=Udp
T=Tcp
Serveur de noms
Bind
1
Conclusion : Le serveur Dns écoute sur le port :______
2) Configuration du serveur
Vous devez retrouvez les fichiers installés, comment procédez-vous ?
Avez-vous le paquet « locate » , si non installez-le et mettez à jour votre base. #updatedb
Le daemon se trouve dans /usr/sbin/named,
Les fichiers de configurations dans etc/bind/……
etc/bind/named.conf
Vous l'aurez certainement remarqué, plusieurs fichiers sont inclus, du coup je vous invite aussi à
regarder à quoi ils ressemblent ne serait-ce que pour savoir ce qui est configuré.
les fichiers utilisés seront :
Bts SIO
| jm Debroise
named.conf.options
named.conf.local
named.conf.default-zones
Serveur de noms
Bind
2
Le premier « include » concerne ce fichier
/etc/bind/named.conf.options
Vous devez ici indiquez l’ip d’un serveur DNS qui sera interrogé par votre serveur de nom quand
celui-ci ne saura pas répondre, quand il ne fera pas autorité. Ex : résolution de www.bic.com.
Ici j’utilise les Dns de mon FAI (free)
Vous venez configurez le forwarding, testez-le !
Attention commencez par modifier la configuration réseau de votre machine.
Changer votre dns dans etc/resolv.conf ou etc/network/interfaces et mettez l’adresse de votre serveur.
Bts SIO
| jm Debroise
Serveur de noms
Bind
3
Le fichier named.conf.default-zones contient des indications indispensables au bon fonctionnement
de la résolution des noms.
L’Include : /etc/bind/named.conf.local, c'est dans ce fichier que nous allons rajouter les
informations de notre zone (du domaine) que nous souhaitons configurer.
A présent il vous faut compléter les fichiers nécessaires à déclarer votre zone (domaine)
Pour chaque domaine, il est nécessaire de configurer deux zones, la zone principale, et la zone de
recherche inversée.
•
•
la zone principale permet de faire pointer un nom de domaine pleinement qualifié (FQDN =
Full Qualified Domain Name) sur une adresse IP, pour information un nom de domaine
pleinement qualifié est de la forme : nom_hôte.domaine.ext
la zone de recherche inversée, permet de faire, comme son nom l'indique, l'inverse, c'est-àdire de faire pointer une adresse IP sur un FQDN.
Bts SIO
| jm Debroise
Serveur de noms
Bind
4
Création de la zone principale
Dans le fichier /etc/bind/named.conf.local nous allons rajouter les informations suivantes :
zone "prof.ig" {
type master;
file "/etc/bind/prof.ig.hosts";
};
Ces informations vont créer le domaine : prof.ig, la zone est de type master (c'est-à-dire maitre), le
fichier qui contiendra le détail des machines de mon domaine est /etc/bind/prof.ig.hosts
Création de la zone de recherche inversée
Toujours dans le fichier /etc/bind/named.conf.local nous allons rajouter les informations suivantes :
zone "2.168.192.in-addr.arpa" {
type master;
file "/etc/bind/prof.ig.inverse";
};
Il s'agit en fait de l'adresse de votre réseau inversé, si les adresses ip de votre réseau sont de la forme,
192.168.2.X, la zone inverse sera : 2.168.192.in-addr.arpa, la fin (in-addr.arpa).
Configuration de la zone principale
(prenez modèle sur etc/bind/db.empty)
Dans la section principale, on a défini que le fichier /etc/bind/prof.ig.hosts contiendrait la définition
des hôtes de notre réseau.
Il faut donc créer ce fichier, et le remplir.
@
IN SOA unbuntu.prof.ig. webmaster.prof.ig. (
2009110401 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
@ IN NS unbuntu.prof.ig.
unbuntu IN A 192.168.2.20
pcprof
IN A 192.168.2.246
Un fichier de zone DOIT toujours commencer par la définition d'un SOA (Start Of Authority) :
Le "@" spécifie la zone définie dans le fichier configuration
Ensuite "IN" précise qu'il s'agit d'une zone Internet, il s'agit "presque" de la valeur par défaut, j'ai
bien dis "presque", en effet, les cas où vous aurez a préciser un autre type de zone sont très rares ...
Ensuite on précise le mot clé SOA suivi du FQDN du serveur qui héberge la zone (unbuntu.prof.ig.),
puis, sur la même ligne une adresse email de contact (webmaster.prof.ig.).
Dans ce dernier cas, le premier "." est considéré comme un "@" (il s'agit d'une convention)
Attention : Les "." à la fin de unbuntu.prof.ig. et webmaster.prof.ig. sont obligatoires !
Ensuite il faut définir les éléments suivant :
•
Le numéro de série (serial), généralement la date du jour suivi d'un incrément :
YYYYMMDDxx.
Bts SIO
| jm Debroise
Serveur de noms
Bind
5
•
•
•
•
Le temps de rafraichissement (refresh), ici 6 heures.
Le temps entre deux essais (retry), ici 1 heures.
Le temps d'expiration (expire) ici 1 semaine.
La valeur TTL minimum (minimum TTL), ici, 1 jour.
Toutes les valeurs de temps sont précisées en secondes ...,
Il est possible de préciser 1W pour une semaine, ou encore 1H pour une heure ...
Tout de suite aprés l'enregistrement SOA, il faut préciser le serveur DNS a consulter :
@ IN NS unbuntu.prof.ig.
Signification : la machine unbuntu.prof.ig est un serveur de nom (NS = Name server) pour la zone.
Ensuite nous avons la définition des machines de notre réseau:
unbuntu
IN
A
192.168.2.20
pcprof
IN
A
192.168.2.246
Chaque ligne Précise :
le nom du pc - le type de zone - le type d'enregistrement - l'adresse IP de la machine
le type d'enregistrement A (A pour Alias) permet donc de pointer, par exemple, unbuntu sur l'adresse
ip 192.168.2.20)....
Mais avant configurons la zone de recherche inversée :
Configuration de la zone de recherche inversée (prenez modèle sur etc/bind/db.127)
@
IN SOA unbuntu.prof.ig. webmaster.prof.ig. (
2009110401 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
@ IN NS unbuntu.prof.ig.
20 IN PTR unbuntu.prof.ig
246 IN PTR pcprof.prof.ig
192.168.2., mon serveur à l'adresse ip 192.168.2.20 alors on doit mettre 20 en face de son FQDN.
Le type d'enregistrement est PTR.
Configuration des clients Sous Linux
Editez le fichier /etc/resolv.conf, puis renseignez-le comme suit :
domain prof.ig
nameserver 192.168.2.20
Bts SIO
| jm Debroise
Serveur de noms
Bind
6
Test de la configuration
Les outils
Losrque vous avez installé le paquet bind sur votre distribution préférée, certains outils ont été ajoutés :
•
•
named-checkconf : Permet de tester si vos fichiers de configurations sont correctement écrits
named-checkzone : permet de tester une zone, syntaxe :
#named-checkzone prof.ig /etc/bind/prof.ig.hosts
•
•
nslookup : permet d'interroger un serveur de nom. (installer le paquet dnsutils)
dig : permet aussi d'interroger un serveur de nom.
Si les tests de configuration sont correctement passés, redémarrez votre serveur :
#/etc/init.d/bind9 restart
Utilisation des CNAME
Nous allons voir un autre type d'enregistrement utile : le type : CNAME (pour Canonical Name).
Ce type d'enregistrement permet de faire pointer un nom différent sur une machine précise et sans
passer par l'adresse ip ...
Le meilleur exemple pour ce type d'enregistrement est le nom d'hôte : www
On va dire par exemple que notre serveur contient aussi un serveur web, il serait alors intéressant
dans ce cas d'avoir www.prof.ig qui pointe sur notre serveur.
Reprenons le fichier de zone principal :
@
IN SOA unbuntu.prof.ig. webmaster.prof.ig. (
2009110401 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expires after 1 week
86400 ) ; minimum TTL of 1 day
@ IN NS unbuntu.prof.ig.
unbuntu
IN A 192.168.2.20
pcprof
IN A 192.168.2.246
www
Bts SIO
IN
CNAME unbuntu
| jm Debroise
Serveur de noms
Bind
7
Autre commande à utiliser #dig
Exemple de fichiers :
etc/bind/named.conf.local
etc/bind/labo.sio.hosts
etc/bind/labo.sio.inverse
etc/bind/named.conf.options
Bts SIO
| jm Debroise
Serveur de noms
Bind
8