Skip to content

Serveur DNS avec Bind

I- Installation et configuration d'un serveur primaire :

Installation :

apt install bind9

Le fichier named.conf.options

Modifier le fichier /etc/bind/named.conf.options :

Définir le serveur DNS qui répondra si le votre ne connait pas un nom de domaine. En général il faut choisir celui du FAI ou celui de votre entreprise, si il y en a déjà un. Si vous ne connaissez pas l'adresse du serveur DNS, choisissez un DNS public qui ne vous espionne pas, par exemple ceux de FDN :

forwarders {
    80.67.169.12;
    80.67.169.40;
};

Les autres options ne sont pas à changer.

Créer une zone primaire :

Ajouter à la suite du fichier /etc/bind/named.conf.local une zone (votre nom de domaine) :

zone "mondomaine.com" {
    file "/etc/bind/mondomaine.com.zone";
    type master;
};

Puis allez dans le fichier de zone (pour moi /etc/bind/mondomaine.com.zone)

Le fichier de zone :

Le fichier de zone /etc/bind/mondomaine.com.zone est à créer.

Dans ce fichier, vous devez commencer par écrire les lignes suivantes (remplacez mondomaine.com par votre nom de domaine) :

$TTL    86400
$ORIGIN esiee.fr.
@               IN      SOA     ns.mondomaine.com. hostmaster.mondomaine.com. (
        2019022187      ; Serial
        7200    ;
        3600    ;
        604800  ;
        86400 ) ;

Toujours dans votre fichier de zone, continuez en tapant les lignes suivantes (remplacez mondomaine.com par votre nom de domaine) :

IN NS ns.mondomaine.com.
IN MX 10 mail.mondomaine.com.

Puis renseignez l'adresse de votre serveur (pour l'exemple 1.1.1.1) puis le nom et l'adresse de toutes les machines que vous voulez renseigner, puis tous les alias :

ns     IN A 192.168.0.1
mail   IN A 192.168.0.2
www    IN A 192.168.0.10

Enfin, vous pouvez donner des alias aux noms déjà créé, par exemple :

smtp   IN CNAME mail.mondomaine.com.
pop    IN CNAME mail.mondomaine.com.
imap   IN CNAME mail.mondomaine.com.
www2   IN CNAME www.mondomaine.com.

II- Serveur secondaire :

Pour faire un serveur secondaire, vous devez déclarer une nouvelle zone en tant qu'esclave et simplement indiquer l'adresse du serveur principal dans masters :

zone "mondomaine.com" {
    type slave;
    masters {192.168.251.202;} ;// Adresse du principal
    file "/var/cache/bind/mondomaine.com";
};

Pour vérifier que la zone est transférée, redémarrez le serveur secondaire et vérifiez que le fichier de zone (ici /var/cache/bind/mondomaine.com) a bien été rempli automatiquement.

III- Sécurité des transferts de zones :

Pour éviter qu'une machine non connue puissent obtenir l'intégralité des fichiers de zones, il est très important de sécuriser les transferts de zone, le plus simple étant de définir une clé partagée entre le serveur principal et le(s) serveur(s) secondaire(s).

Création du secret :

On commence par installer les outils de sécurité DNS :

apt install opendnssec

Puis on crée une clé partagée :

dnssec-keygen -a hmac-md5 -b 512 -n HOST primaire-secondaire

Dans le fichier named.conf.options du principal, indiquez la clé de la manière suivante :

key primaire-secondaire. {
    algorithm hmac-md5;
    secret "d8e8fca2dc0f896fd7cb4cb0031b2dc0f896fd7cb4cb0031ba249";
};

Dans le fichier named.conf.options du serveur secondaire :

key primaire-secondaire. {
    algorithm hmac-md5;
    secret «d8e8fca2dc0f896fd7cb4cb0031b2dc0f896fd7cb4cb0031ba249»;
};

server 192.168.0.1 {
    keys {
        key primaire-secondaire.;
    }
};

IV- Vérifications :

Côté serveur :

Redémarrer le serveur Bind avec :

service bind9 restart

Vous pouvez vérifier les fichiers named.conf avec la commande :

named-checkconf

Si vous n'avez pas de réponse, tout va bien !

Vous pouvez vérifier les fichiers de zone avec la commande :

named-checkzone mondomaine.com /var/cache/bind/mondomaine.com

Si la dernière ligne dit OK, tout va bien !

Le journal système permet de consulter les erreurs et les avertissements :

tail /var/log/syslog

Côté client :

N'oubliez pas de faire pointer votre client DNS vers votre serveur :

Sous Windows dans les paramètres IP et sous Linux avec cette commande :

echo "nameserver <IP du serveur DNS>" > /etc/resolv.conf

Testez votre serveur avec la commande nslookup :

nslookup mondomaine.com