Configuration de Bind9

Bind9, qu'est ce que c'est?

Bind9 est un serveur DNS, c'est à dire que Bind9 se charge de traduire un nom de domaine en une ip. C'est ce qui permet d'avoir des adresses telles que http://www.exemple.com au lieu de http://111.222.111.222/exemple.com

Rappel:

DNS = Domain Name Server (Serveur de nom de domaine)

La page d'aide de la configuration de bind9

Pour obtenir de l'aide au sujet de la configuration de bind9, il suffit de faire ceci:

man named.conf

Configuration de Bind9

Jetons un œil sur le fichier de configuration de bind9.

À la fin du fichier de configuration, un fichier est inclut (include "/etc/bind/named.conf.local";)
c'est dans ce fichier que se trouverons nos déclarations de zones.

nano /etc/bind/named.conf

// 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";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

jetons un œil également sur /etc/bind/named.conf.options

Pour éviter que notre serveur ne serve de relai DNS ouvert. Vérifier la présence de :

allow-recursion { 127.0.0.1; }; OU allow-recursion { localhost; }; ce qui revient au même

nano /etc/bind/named.conf.options

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        // forwarders {
        //      0.0.0.0;
        // };

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        listen-on { any; };
        allow-recursion { 127.0.0.1;};
};

Déclaration des zones

On va maintenant ajouter nos zones dns, pour chaque site internet que vous hébergerez sur ce serveur vous devrez rajouter un zone dns dans le fichier /etc/bind/named.conf.local

Ici le nom de domaine est toujours exemple.com et la configuration de la zone pour exemple.com se fera dans le fichier /etc/bind/db.exemple.com

nano /etc/bind/named.conf.local

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

//___________________________________________________
// ZONE DE RESOLUTION DE DOMAINE exemple.com         |
//___________________________________________________|
zone "exemple.com" {
  type master;
  file "/etc/bind/db.exemple.com";

  allow-transfer {213.186.33.199;};  // autorise le transfert vers ns.kimsufi.com
  notify yes;                                       // notification aux serveurs esclaves quand une zone est mise a jour
};

//____________________________
// ZONE DE RESOLUTION INVERSE |
//____________________________|
zone "444.333.222.111.in-addr.arpa" {
  type master;
  file "/etc/bind/444.333.222.111.in-addr.arpa";
  // autorise le transfert vers ns.kimsufi.com
  allow-transfer {213.186.33.199;};
  notify no;
};

On créé le fichier de résolution de zone /etc/bind/db.exemple.com

nano /etc/bind/db.exemple.com

$ttl 1H
exemple.com.          IN      SOA     ksxxxxx.kimsufi.com. [email protected]. (
                                        2011041902 ; Serial
                                        1H ; Refresh
                                        15M ; Retry
                                        2W ; Expire
                                        3M ; Minimum TTL
                                        )
exemple.com.  IN      NS              ksxxxxx.kimsufi.com.
exemple.com.  IN      NS              ns.kimsufi.com.
exemple.com.  IN      MX              10 mail.exemple.com.
exemple.com.  IN      A               111.222.111.222
mail          IN      A               111.222.111.222

On créé le fichier de résolution inverse:

nano /etc/bind/444.333.222.111.in-addr.arpa

$TTL 1H
@          IN              SOA             ksxxxxx.kimsufi.com. [email protected]. (
           2011042201 ; Serial
           1H              ; Refresh
           15M             ; Retry
           2W              ; Expire
           3M              ; Minimum TTL
)
           IN NS   ksxxxxx.kimsufi.com.
           IN NS   ns.kimsufi.com.
           IN PTR  exemple.com.

Explications:

exemple.com. C'est votre nom de domaine, attention: ne pas oublier le point après le ndd
IN Signifie internet, c’est à dire que la zone après le IN est destinée à internet
SOA Star Of Authority indiquant le serveur de nom faisant autorité c’est à dire votre DNS principal.
ksxxxx.kimsufi.com. DNS principal de votre domaine
[email protected] adresse email (valide de préférence)
il faut remplacer le @ par un point et on termine par un point également.
1H $TTL TTL (Time to Live) pour cette zone. Nombre de secondes pendant lesquels les informations de la zone peuvent être considérées comme valides et être mises en cache
2011041902 Serial N° de série à incrémenter à chaque modification de ce fichier. Par convention, on écrit: année-mois-jour-numéro_à_2_chiffres. doit comporter 10 chiffres
1H Refresh A l'expiration du délai Refresh exprimé en secondes, le serveur esclave va entrer en communication avec le maitre, si il ne le trouve pas, il fera une nouvelle tentative au bout du délai Retry, si au bout du délai Expire il
considérera que le serveur n'est plus disponible.
15M Retry Nombre de secondes avant d'effectuer une nouvelle demande au serveur maître en cas de non réponse.
2W Expire Temps (en secondes) d'expiration du serveur principal en cas de non réponse.
3M Minimum TTL Durée de vie minimum du cache en secondes
111.222.111.222 IP l'ip de votre serveur
MX Mail eXchange, qui dit où doit se diriger le courrier envoyé à un nom d'espace particulier contrôlé par cette zone

Configuration du DNS secondaire sur le manager de votre hébergeur

Notre hébergement pour notre serveur dédié étant So You Start (soyoustart.com), on se connecte au manager de So You Start, dans notre espace de notre serveur dédié, on va sur la page suivante:

DNS > Ajouter un DNS secondaire

on remplit le formulaire

So You start, ajout de dns secondaire

domaine: example.com
IP block: en principe ce champs est pré-remplit
IP: l'IP de votre serveur

Pour la validation (avant de valider), on vous demande de rajouter un code d'authentification dans votre configuration DNS: rejouter la ligne ownercheck avec le code fournit dans le formulaire.

nano /etc/bind/db.exemple.com

$ttl 1H
exemple.com.          IN      SOA     ksxxxxx.kimsufi.com. [email protected]. (
                                        2011041902 ; Serial
                                        1H ; Refresh
                                        15M ; Retry
                                        2W ; Expire
                                        3M ; Minimum TTL
                                        )
exemple.com.  IN      NS              ksxxxxx.kimsufi.com.
exemple.com.  IN      NS              ns.kimsufi.com.
exemple.com.  IN      MX              10 mail.exemple.com.
exemple.com.  IN      A               111.222.111.222
mail          IN      A               111.222.111.222

ownercheck              IN      TXT "zer4f12z65"

et on note le nom d'host secondaire sur un bout de papier et l'adresse ip secondaire.

On redémarre bind9 pour qu'il prenne en compte les changements.

/etc/init.d/bind9 restart

Vérification de la configuration de bind9

Vérification des fichiers de configuration:

named-checkconf /etc/bind/named.conf.local

Si aucun message n'apparait alors c'est tout bon !

Vérification des fichiers de zone


named-checkzone exemple.com /etc/bind/db.exemple.com
named-checkzone exemple.com /etc/bind/444.333.222.111.in-addr.arpa

Vérification du serveur dns


nslookup exemple.com ksxxxxx.kimsufi.com
nslookup 111.222.111.222 ksxxxxx.kimsufi.com

Test du serveur DNS secondaire


dig exemple.com +nssearch
IMPORTANT: Si le serveur secondaire ne répond pas, c’est qu’il n’a pas encore chargé vos fichiers de zone. Il faudra attendre que cela soit fait pour continuer la configuration de bind9.

Modification des dns du domaine

Etant donné que nous avons choisit OVH comme hébergement pour notre serveur dédié:

Dans le manager ovh dans la partie nom de domain de exmple.com il faut changer les parametre dns

page d'ovh: Mutualisé -> Dommaine & DNS -> Nom de domaine -> Serveurs DNS

Et il faut maintenant attendre la propagation des dns

ovh, serveur DNS

Remarque pour les .fr

Pour les sites en .fr vous devez faire un checkup sur le site de l'afnic : http://www.afnic.fr/outils/zonecheck/form
ATTENTION, en cas d'erreur fatale les dns ne seront pas validés...

vérification afnic

Remarque : mieux vaut ouvrir le port 53 (dns) en tcp et udp, car il peu y avoir des soucis de validation des dns avec un .fr

Vérification de toutes vos zones:

named-checkconf -z
Vos commentaires
Christophe a écrit le 02-06-2019 :

Bonjour et merci pour cet excellent tuto, J'ai une question, dans le cas où je souhaite héberger le nom de domaine "exemple.com" sur un serveur web qui est chez moi (Debian 9.6) derrière une box (J'ai déjà ouvert les ports 80,443,21 et 53 pour bind). Que dois je mettre dans les 2 fichiers de config à la place du serveur principal qui pour vous est "ksxxxxx.kimsufi.com". Vous remerciant par avance pour votre réponse. PS : je suis conscient des risques d'héberger chez soi, j'ai aussi plusieurs serveurs et VPS chez OVH que j'ai configuré à la base grâce à vos tutos. Christophe


Répondre à ce(s) commentaires(s)
david albertini a écrit le 25-02-2019 :

Bonjour, J'ai un sacré problème que je vais vous lister ci-dessous sur un serveur centos7 plesk 17.8 et je ne sais pas comment m'en sortir: --- systemctl status named-chroot.service ● named-chroot.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Mon 2019-02-25 17:21:47 CET; 13s ago Process: 5368 ExecStartPre=/usr/sbin/named-checkconf -t /var/named/chroot -z /etc/named.conf (code=exited, status=1/FAILURE) Main PID: 8611 (code=exited, status=0/SUCCESS) Feb 25 17:21:47 s16251634 named-checkconf[5368]: zone domain.com/IN: not loaded due to errors. Feb 25 17:21:47 s16251634 named-checkconf[5368]: _default/domain.com/IN: bad hex encoding Feb 25 17:21:47 s16251634 named-checkconf[5368]: dns_rdata_fromtext: domain.fr:25: near eol: bad hex encoding Feb 25 17:21:47 s12345678 named-checkconf[5368]: zone domain.fr/IN: loading from master file domain.fr failed: bad hex encoding Feb 25 17:21:47 s12345678 named-checkconf[5368]: zone domain.fr/IN: not loaded due to errors. Feb 25 17:21:47 s12345678 named-checkconf[5368]: _default/domain.fr/IN: bad hex encoding Feb 25 17:21:47 s12345678 named-checkconf[5368]: zone domain.com/IN: loaded serial 2019022504 Feb 25 17:21:47 s12345678 systemd[1]: Failed to start Berkeley Internet Name Domain (DNS). Feb 25 17:21:47 s12345678 systemd[1]: Unit named-chroot.service entered failed state. Feb 25 17:21:47 s12345678 systemd[1]: named-chroot.service failed. -------- Et ensuite: # named-checkconf -z zone 0.0.127.IN-ADDR.ARPA/IN: loading from master file localhost.rev failed: file not found zone 0.0.127.IN-ADDR.ARPA/IN: not loaded due to errors. _default/0.0.127.IN-ADDR.ARPA/IN: file not found zone domain.fr/IN: loading from master file domain.fr failed: file not found zone domain.fr/IN: not loaded due to errors. _default/domain.fr/IN: file not found ----- Et c'est ainsi pour tous les domaines du serveur. Merci de ce que vous pourrez faire pour m'aider étant plus que largué David


Répondre à ce(s) commentaires(s)
stc a écrit le 30-11-2018 :

Bonjour, j'ai fait une config similaire, mais j'ai ajouté www IN CNAME exemple.com. sousdomaine IN A 111.222.111.222 exemple.com passe nickel les tests sous zonemaster par contre www.exemple.com et sousdomaine.exemple.com me donne une erreur "Aucun enregistrement de type "NS" renvoyé par la zone parente pour la zone testée. Les tests complémentaires sur ces serveurs sont annulés. " Bien que les url soient accessible je trouve ça gênant. Savez vous d'ou ça vient ? Cordialement.


1 réponse(s) :
https://www.installerunserveur.com a répondu le 05-02-2019 :

Bonjour

Désolé de la réponse tardive, j'espère que vous avez trouver la solution à votre problème, si tel est le cas, n'hésitez pas à nous en faire part.
Cordialement
Christophe


Répondre à ce(s) commentaires(s)
vincent a écrit le 27-09-2017 :

Bonjour, Une petite suggestion : évitez les adresses IP dont un des 4 octets est supérieur à 255. Cela fera plus sérieux. Merci pour le reste. Cordialement, Vincent


1 réponse(s) :
https://www.installerunserveur.com a répondu le 25-11-2017 :

bonjour, merci pour la suggestion

je remplace donc les IPs qui me servent d'exemple par : 111.222.111.222

Cordialement


Répondre à ce(s) commentaires(s)
toky a écrit le 28-04-2015 :

comment editer le type master et slave?


1 réponse(s) :
https://www.installerunserveur.com a répondu le 25-11-2017 :

aucune idée, désolé


Répondre à ce(s) commentaires(s)

Laisser un commentaire

Votre commentaire sera en attente de modération, validation NON automatique

Votre nom (obligatoire) :


Email ou site internet (facultatif) (nécessaire si vous souhaitez être prévenu d'une réponse):


Image/photo (facultatif) (JPG, JPEG, PNG ou GIF) (image de partition concernant le question par exemple):

Javascript doit être activé