Table des matières

Utiliser un serveur DNS local

Pour comprendre facilement le fonctionnement d'un résolveur DNS, imaginons que notre réseau local est constitué d'un serveur de noms (192.168.1.101) et d'un serveur web ( 192.168.1.102) qui héberge plusieurs sites Internet : nagios.local.net et www.local.net.

Connectons-nous à la machine qui fera office de serveur DNS et commençons par installer ce dont nous avons besoin :

apt-get install bind9

Configurer une zone

Rendons-nous dans le dossier où se trouve les fichiers de configurations :

cd /etc/bind/

Copions le fichier d’exemple pour ajouter les informations qui nous intéresse :

cp db.empty db.local.net
nano db.local.net

Inclure les paramètres suivants :

$TTL    604800
@       IN      SOA     local.net. root.local.net. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.local.net.
@       IN      A       192.168.1.102

ns      IN      A       192.168.1.101
www     IN      CNAME   local.net.
nagios  IN      CNAME   local.net.

Vérifier que la zone ci-dessus est correcte :

named-checkzone local.net /etc/bind/db.local.net

On déclare la zone

nano named.conf.local
zone "local.net" {
        type master;
        file "/etc/bind/db.local.net";
};

On configure le forwarding qui va permettre de rediriger les requêtes non résolus vers un autre serveur :

nano named.conf.options
options {
      forwarders {
             8.8.8.8;
      };
};

On active les logs (optionnel)

nano /etc/bind/named.conf

Puis on peut ajouter ces directives :

logging {
channel "requetes" {
file "/var/log/bind/queries.log" size 10m;
print-time yes;
print-category yes;
};
category queries { "requetes"; };
channel "securite" {
file "/var/log/bind/securite.log" size 5m;
print-category yes;
print-severity yes;
print-time yes;
};
category security { "securite"; };
channel "global" {
file "/var/log/bind/global.log" size 5m;
print-category yes;
print-severity yes;
print-time yes;
};
category general { "global"; };
channel "configuration" {
file "/var/log/bind/config.log" size 5m;
print-category yes;
print-severity yes;
print-time yes;
};
category config { "configuration"; };
};

On définit leur emplacement :

mkdir /var/log/bind
chown bind.adm /var/log/bind/

Depuis un pc client

Pour terminer on renseigne le serveur à la machine cliente :

nano /etc/resolv.conf

On ajoute cette ligne :

nameserver     192.168.1.101

Pour conserver cette configuration à chaque redémarrage, on peut le signaler au près du client DHCP déjà installé :

nano /etc/dhcp/dhclient.conf
prepend domain-name-servers 192.168.1.101;