Installation du serveur DNS

Nous allons installer bind.

root@aijan:/home/ericadmin# apt install bind9
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
The following additional packages will be installed:
  bind9utils libirs141
etc ...

root@aijan:/home/ericadmin# service bind9 start
root@aijan:/home/ericadmin# netstat -tlpn
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 192.168.111.240:53      0.0.0.0:*             LISTEN      13815/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*             LISTEN      13815/named
tcp        0      0 0.0.0.0:22              0.0.0.0:*             LISTEN      594/sshd
tcp        0      0 127.0.0.1:953           0.0.0.0:*             LISTEN      13815/named
tcp        0      0 0.0.0.0:25              0.0.0.0:*             LISTEN      803/master
tcp6       0      0 :::53                   :::*                  LISTEN      13815/named
tcp6       0      0 :::22                   :::*                  LISTEN      594/sshd
tcp6       0      0 ::1:953                 :::*                  LISTEN      13815/named
tcp6       0      0 :::25                   :::*                  LISTEN      803/master
root@aijan:/home/ericadmin#

Bien, bind a démarré et écoute sur les ports 53 et 953, en IPV4 et IPV6. Il nous reste à configurer les zones et à ouvrir les ports (firewall). Je vais utiliser comme serveur dns secondaire pour la zone yojik.net le serveur que j'utilise déjà pour la zone yojik.eu.

Nous configurerons le serveur dns local pour qu'il transfère les zones automatiquement vers notre serveur dns secondaire.

Voilà la structure générale de mes serveurs DNS:

  • adara.yojik.eu: serveur DNS primaire pour le domaine yojik.eu

  • polis.yojik.eu:

  • serveur DNS secondaire pour le domaine yojik.eu
  • serveur DNS secondaire pour le domaine yojik.net

aijan.yojik.net: serveur DNS primaire pour le site yojik.net

Ce dernier serveur déclarera l'ensemble des machines et serveurs du domaine yojik.net. (ce sont les machines de bureau/portables ainsi que le serveurs hébergés à la maison.)

Les enregistrements glue seront renseignés chez mon registrar (OVH dans mon cas). Les serveurs DNS seront également déclarés chez ce registrar.

Notre zone yojik.net est déclarée dans le fichier /etc/bind/named.conf.local. (en faire une copie de sauvegarde!)

Voici son contenu avant modification:

//
// Do any local configuration here
//

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

Contenu après ajout de la zone yojik.net:

    zone "yojik.net" {
        type master;
        file "/etc/bind/db.yojik.net";
    };

Dans tous les tutorials, vous verrez la déclaration des zones inverses: après de nombreux échanges avec des spécialistes, il s'avère que ce n'est pas nécessaire, car mes serveurs DNS ne seront jamais interrogés pour la résolution inverse: pour cela, il faudrait que mon registrar me délègue la gestion de la zone. Je n'ai qu'une adresse IPV4 associée à ce domaine et pas de délégation.

Création du fichier de zone db.yojik.net dans le répertoire /etc/bind.

root@aijan:/etc/bind# vim db.yojik.net

root@aijan:/etc/bind# cat db.yojik.net
$TTL 86400
$ORIGIN yojik.net.

@    IN    SOA  aijan.yojik.net. hostmaster.yojik.net. (
                2018052001  ; serial à changer à chaque modification
                7200        ; refresh, 12h
                3600        ; retry, 1h
                1209600     ; expire
                86400 )     ; negative cache, 24h


; nameservers
        IN      NS      aijan.yojik.net.
        IN      NS      polis.yojik.eu.



;mail server
        IN      MX      10      aijan.yojik.net.

; domain hosts
yojik.net.     IN       A       82.64.48.5
yojik.net.     IN       AAAA    2a01:e0a:54:c220:3aea:a7ff:fea6:cf93
aijan           IN      A       82.64.48.5
aijan           IN      AAAA    2a01:e0a:54:c220:3aea:a7ff:fea6:cf93

On relance bind et on teste en local:

root@aijan:/home/ericadmin# service bind9 restart
root@aijan:/home/ericadmin# nslookup aijan.yojik.net localhost
Server:     localhost
Address:    ::1#53

Name:   aijan.yojik.net
Address: 82.64.48.5

root@aijan:/home/ericadmin#

Ça marche!

Test de notre enregistrement MX (mail) avec dig:

root@aijan:/etc/bind# dig @localhost aijan.yojik.net MX

; <> DiG 9.10.3-P4-Debian <> @localhost aijan.yojik.net MX
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21275
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;aijan.yojik.net.       IN  MX

;; AUTHORITY SECTION:
yojik.net.      86400   IN  SOA aijan.yojik.net. hostmaster.yojik.net. 2018052003 7200 3600 1209600 86400

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sun May 20 10:27:17 CEST 2018
;; MSG SIZE  rcvd: 91

Il nous reste plusieurs éléments à configurer pour que notre serveur dns soit pris en compte.

  1. Configurer notre box pour rediriger les requêtes extérieures DNS sur notre serveur DNS personnel.
  2. Mettre à jour la configuration de nos enregistrements chez notre registrar.
  3. Ajouter notre zone à notre serveur DNS secondaire (polis.yojik.eu) et mise à jour de la clef de connexion.

Fichier /etc/bind/conf.named.local

zone    "yojik.eu" {
        type slave;
        file    "db.yojik.eu.local";
        masters  { 91.121.72.10; };
};

zone    "yojik.net" {
        type slave;
        file    "db.yojik.net.local";
        masters  { 82.64.48.5; };
};

Configuration des options: fichier /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;
        // };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys. See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        listen-on { any; };
        allow-update { none; };
        allow-recursion { 127.0.0.1; ::1; 91.121.72.10;2001:41d0:1:7d0a::1; 37.187.3.182; 2001:41d0:a:3b6::1; };
        allow-transfer { 37.187.3.182; 2001:41d0:a:3b6::1; };
        version "BIND";
};

Pensez à vérifier que la clef située dans le fichier: /etc/bind/rndc.key est identique sur votre serveur primaire et secondaire.

Configuration de votre box et des enregistrements de votre registrar

Cela étant très dépendant de chaque registrar et de chaque box, je vous laisse chercher sur le net les informations utiles. Sachez tout de même que peu de fournisseurs d'internet autorisent l'installation d'un serveur émail personnel. I8l vous faudra souvent attendre un peu avant que la configuration ne soit prise en compte chez votre registrar.

Vérification de la config DNS:

Allez sur le site toolbox pour tester votre configuration.

Configuration du reverse DNS

Si vous hébergez votre serveur chez vous, vous devrez configurer le reverse DNS dans la page d'administration de votre ligne Internet.

Pour le FAI Free, allez sur la page: "Personnalisez mon reverse DNS", et mettez votre nom de doamine dans le champ adéquat.

Il faut quelques heures pour que la propagation se fasse.