Comme dans le tutoriel précédent, je me base sur une Debian
les commandes commençant par # sont à taper en root, et celle commençant par § à taper en utilisateur normal
1. Pourquoi ?
Je sens venir la question du "Pourquoi un DNS alors que mon FAI m'en fournit un ?"
3 points à mes yeux :
* Vous avez votre propre domaine (il convient donc alors d'avoir un contrôleur si vous créez des hôtes différents pour vos services - SMTP/Pop, Web, FTP, ... - mais ce n'est pas obligatoire).
* Vous partagez votre connection internet entre plusieurs postes et vous souhaitez améliorer votre débit réseaux en mettant un cache DNS locale
* Votre FAI est un manche et n'est pas capable de fournir un serveur DNS stable digne de ce nom.
Pour cela, je vais expliquer les 3 domaines de configuration possible.
2. Installation
Le serveur DNS sous Linux s'appelle Bind (lien Wiki)
Pour l'installer, on tapera
Code : Tout sélectionner
# apt-get install bind9
3. Mode cache DNS simple
Dans ce mode là, on va tout simplement dire de chercher les adresses qui ne sont pas dans le cache chez le FAI.
Pour ce faire vous devez posséder les adresses des DNS de votre FAI (regarder bien sur vos papier, il a du vous les donner

Vous allez alors éditer le fichier /etc/bind/named.conf.options :
où 111.111.111.111 et 222.222.222.222 sont les adresses DNS de votre FAI.named.conf.options a écrit :options {
directory "/var/cache/bind";
forwarders {
111.111.111.111;
222.222.222.222;
};
auth-nxdomain no;
};
ensuite, éditez le fichier /etc/resolv.conf :
normalement, maintenant, votre machine devrait prendre son DNS en locale.resolv.conf a écrit :search liste_de_domaines_pour_les_noms_DNS_dont_le_domaine_n'est_pas_précisé
nameserver 127.0.0.1
nameserver 111.111.111.111
nameserver 222.222.222.222
Pour que d'autres machines de votre réseau utilisent ce DNS, indiquez l'adresse IP de la machine ayant le serveur DNS pour qu'elles lui demandent.
Et voilà normalement, ça marche

4. Mode cache DNS avancé
Dans ce cas, vous allez vous affranchir des serveurs DNS de votre FAI. Je vous conseille de ne l'utiliser que si les serveurs DNS de votre FAI ont trop souvent tendance à tomber en panne ou sont extrêmement lent.
Pour le mettre en place, c'est facile : vous éditez le fichier named.conf.options et vous commentez les lignes écrites au dessus
et vous éditez le fichier resolv.conf (vous commentez les adresses du FAI - facultatif)named.conf.options a écrit :options {
directory "/var/cache/bind";
//forwarders {
// 111.111.111.111;
// 222.222.222.222;
//};
auth-nxdomain no;
};
Normalement, maintenant, votre serveur DNS devrait directement faire les requêtes DNS auprès d'autres serveurs DNS.resolv.conf a écrit :search liste_de_domaines_pour_les_noms_DNS_dont_le_domaine_n'est_pas_précisé
nameserver 127.0.0.1
#nameserver 111.111.111.111
#nameserver 222.222.222.222
4. Un serveur DNS primaire
Dans ce cas, vous avez votre nom DNS (si vous en avez pas, cela ne sert vraiment pas à grand chose...

Nous allons modifier le fichier named.conf cette fois-ci :
PS : (en gras ce qu'il faut rajouter)/etc/bind/named.conf a écrit :// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
zone "mondomaine.com" {
type master;
file "/etc/bind/db.mondomaine";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.mondomaine.inv";
};
// zone "com" { type delegation-only; };
// zone "net" { type delegation-only; };
// From the release notes:
// Because many of our users are uncomfortable receiving undelegated answers
// from root or top level domains, other than a few for whom that behaviour
// has been trusted and expected for quite some length of time, we have now
// introduced the "root-delegations-only" feature which applies delegation-only
// logic to all top level domains, and to the root domain. An exception list
// should be specified, including "MUSEUM" and "DE", and any other top level
// domains from whom undelegated responses are expected and trusted.
// root-delegation-only exclude { "DE"; "MUSEUM"; };
include "/etc/bind/named.conf.local";
ensuite, vous créez le fichier db.mondomaine :
Les alias permettent de définir l'adresse à renvoyer quand on demande un service (par exemple, [url=http:///]www.mondomaine.com[/url] indiquera qu'il faut envoyer la requête à bidochon...)/etc/bind/db.mondomaine a écrit :$TTL 604800
@ IN SOA janine.mondomaine.fr. root.domaine.fr. (
20070212 ; Serial -> N° de série à incrémenter à chaque modif
; de ce fichier. Ce n° est utilisé par les
; serveurs esclaves pour lui indiquer qu'il
; doit mettre à jour sa base. Par commodité
; ce n° est une date à l'envers.
604800 ;Refresh -> A l'expiration du délai Refresh exprimé en
; secondes, le serveur esclave va entrer en
; communication avec le maitre et si il ne
; le trouve pas, il fera une nouvelle
; tentative au bout du délai Retry et si au
; bout du délai Expire il considera que le
; serveur n'est plus disponible.
86400 ; Retry
2419200 ; Expire
604800 ) ; Minimum -> Durée de vie minimum du cache en secondes
;** Les 3 lignes suivantes permettent au serveur de se retrouver lui même
NS janine.mondomaine.fr. ;Nom du serveur
name A 192.168.1.1 ;Adresse IP du serveur de noms (en locale)
debian HINFO "Présentation..." "Nom de la mchine..." ;Info complémentaire
;** Les lignes suivantes définissent la table entre les noms et les IPs
janine A 192.168.1.1
bidochon A 192.168.1.24
gertrude A 192.168.1.25
;** Les lignes suivantes sont des alias entre des noms et des autres noms
www CNAME bidochon
ldap CNAME gertrude[/color]
On va également faire le fichier inverse (même s'il n'est pas vitale pour le fonctionnement) :
N'oubliez pas, il faut que votre serveur soit accessible de toute les personnes qui voudront faire des requêtes sur votre domaine (donc le rendre accessible d'internet si nécessaire)./etc/bind/db.mondomaine.inv a écrit :$TTL 604800
@ IN SOA server.mondomaine.com. root.mondomaine.com. (
20070212
604800
86400
2419200
604800 )
NS server.mondomaine.com.
1 PTR server
24 PTR bidochon
25 PTR gertrude
Après cela, n'oubliez pas que globalement, les serveurs DNS représentes des vulnérabilités souvent utilisés lors d'attaques réseaux. Donc, si les 2 premiers choix ne posent pas de problème de sécurité si vous avez un routeur / Firewall, le 3ème l'est beaucoup plus