Skip to content

Configuration_DNS

Abderrachid BELLAALI edited this page May 15, 2022 · 9 revisions

Configuration DNS

Organisation des fichiers

  • Dockerfile : l'image Docker.

Les fichiers de configurations se trouvent dans le répertoire /etc/bind/.

  • named.conf : la configuration générale du service bind9 et l'enregistrement de la zone m1-5.ephec-ti.be..
  • db.m1-5.ephec-ti.be : le fichier de zone m1-5.ephec-ti.be.

Tout d'abord, nous devons envoyer le Glue Record à l'un des enseignants responsables du domaine ephec-ti.be afin que nous puissions gérer le sous-domaine m1-5.

m1-5          IN       NS          ns.m1-5.ephec-ti.be
ns.m1-5       IN       A           176.96.231.207

Dockerfile

# version LTS
FROM ubuntu:20.04

# Installation de bind9 et d'outils supplémentaires au débugging
RUN apt update && apt full-upgrade -y && \
    apt install bind9 bind9utils dnsutils net-tools nano -y

ENV TZ=Europe/Brussel
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Copie des fichiers d'installations préparé et configuré
COPY named.conf /etc/bind/named.conf
COPY db.m1-5.ephec-ti.be /etc/bind/zones/db.m1-5.ephec-ti.be

# Exposition des ports de l'image sur les ports 53 et 953 en tcp et udp.
EXPOSE 53/udp
EXPOSE 53/tcp
EXPOSE 953/tcp
EXPOSE 953/udp

VOLUME /etc/bind

# Commande réalisé au démarage du conteneur
CMD ["named", "-c", "/etc/bind/named.conf", "-g"]

named.conf

options {
    directory "/etc/bind";

    version "SECRET"; # ne pas avoir de détail sur le Serveur !

    # Active le DNSsec
    # dnssec-enable yes;
    # dnssec-validation yes;
    # dnssec-lookaside auto;

    # Ecoute sur le port 53 en IPv4
    listen-on {
        any;
     };

    # Refus d'écoute en IPv6
    listen-on-v6 {
        none;
        };

    allow-query {
        any;
        };

    # Aucun autre serveur ne peut accéder aux fichiers de zone.
    allow-transfer {
        none;
        };

    allow-update {
        none;
        };

    # N'est pas le résolveur donc refus de la récursion
    allow-recursion {
        none;
        };
    recursion no;
};

# zone du SOA publique
zone "m1-5.ephec-ti.be" {
    type master;
    file "/etc/bind/zones/db.m1-5.ephec-ti.be";
};

db.m1-5.ephec-ti.be

$ORIGIN m1-5.ephec-ti.be.
$TTL 3600      ; 1 hour
@       IN      SOA     ns.m1-5.ephec-ti.be. root.m1-5.ephec-ti.be. (
                                1          ; serial -> incrémentemente de 1 à chaque modification
                                3600       ; refresh (1 hour)
                                3000       ; retry (50 minutes)
                                4619200    ; expire (7 weeks 4 days 11 hours 6 minutes 40 seconds)
                                604800     ; minimum (1 week)
                                )

; name server => RR de type NS
@       IN      NS      ns.m1-5.ephec-ti.be.

; name servers => RR de type A
@       IN      A       176.96.231.207
ns      IN      A       176.96.231.207

; name servers => RR de type AAAA
; @       IN      AAAA    2a01:4f8:1c:c0a::1
; ns      IN      AAAA    2a01:4f8:1c:c0a::1

; service WEB
www     IN      A       176.96.231.209
b2b     IN      A       176.96.231.209

; Mail
mail        IN      A       176.96.231.209
smtp        IN      CNAME   mail

; VoIP
_sip._udp       SRV     0       0       5060        sip
_sip._tcp       SRV     0       0       5060        sip
sip             IN      A       176.96.231.207

Créer l'image Docker et la lancer

docker build -t soa_ext .
docker run -d --name=SOA_EXT --restart=always -p 53:53/udp -p 53:53/tcp -p 953:953/tcp -p 953:953/udp soa_ext

Configurer la clé RNDC.

  1. Générer la clé RNDC.
rndc-confgen

et vous devez avoir quelque chose qui ressemble à ça :

# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-sha256;
        secret "P9NSf020USAJx5lyTQ8BtfModCKnENAVd984dNLd7k=";
};

options {
        default-key "rndc-key";
        default-server 127.0.0.1;
        default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
#       algorithm hmac-sha256;
#       secret "P9NSf020USAJx5lyTQ8BtfModCKnENAVd984dNLd7k=";
# };
#
# controls {
#       inet 127.0.0.1 port 953
#               allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
  1. Créé le fichier qui contiendra cette clé.
nano /etc/bind/rndc.conf
  1. Injecter la clé générer à l'étape 1 dans le fichier rndc.conf
key "rndc-key" {
        algorithm hmac-sha256;
        secret "P9NSf020USAJx5lyTQ8BtfModCKnENAVd984dNLd7k=";
};
  1. Enfin, signaler au fichier named.conf où se trouve notre clé.

Donc ajoutez ces ligne dans le fichier named.conf

controls {
      inet 127.0.0.1 port 953
              allow { 127.0.0.1; } keys { "rndc-key"; };
};

Vérifier que le fichier de zone et de configuration respecte la syntaxe

named-checkzone m1-5.ephec-ti.be /etc/bind/zones/db.m1-5.ephec-ti.be
named-checkconf /etc/bind/named.conf

Redémarrez le service named

service named force-reload
service named restart

Testez la configuration du RNDC

statut rndc

Clone this wiki locally