La principale fonction d'un serveur de noms (Domain Name System) est
de traduire un nom de domaine
en une (ou plusieurs) adresses IP
.
La mise en place d'un serveur DNS
sur un réseau permet de remplacer
les adresses IP des machines par un nom. Ainsi, il est même possible
d'associer plusieurs noms à la même machine pour mettre en évidence
les différents services possibles.
Nous devons disposer de deux machines linux. On doit installer le service bind9 dans les deux hôtes avec la commande 1):
apt-get install bind9
Quelques notions essentielles avant de configurer les serveurs.
On utilisera le nom de domaine mederis.net et deux Addresses IP :
62.210.103.156
pour le master
et 62.210.139.88
pour le slave
.
bind
a les bonnes permission /etc/bind/
-rw-r--r-- 1 root bind 463 Jan 15 2018 named.conf
named.conf.options
, dans la section options
options { ... dnssec-enable yes; dnssec-validation auto; auth-nxdomain no; /* conform to RFC1035 */ listen-on { 127.0.0.1; 62.210.103.156; /* l'addresse IP du Master */ }; allow-transfer { 62.210.139.88; /* l'addresse IP du Slave */ }; ... };
zones
dans le dossier bind et crée un fichier avec votre nom de domaine, ce dernier contiendra la configuration de votre zone$TTL 3600 test.mederis.net. IN SOA ns1.test.mederis.net. admin.test.mederis.net. ( 20 /* ;Serial */ 600 /* ;Refresh */ 3600 /* ;Retry */ 604800 /* ;Expire */ 3600 /* ;Minimum */ ) /* ;Nameservers */ test.mederis.net. IN NS ns1.test.mederis.net. test.mederis.net. IN NS ns2.test.mederis.net. /* ;Resolve Nameserver IPs */ ns1.test.mederis.net. IN A 62.210.103.156 ns2.test.mederis.net. IN A 62.210.139.88 /* ; Main Ip resolution */ test.mederis.net. IN A 62.210.139.88 /* ; CNAMEs */ lola.test.mederis.net. IN CNAME test.mederis.net.
A
et l'autre de type NS
chez votre fournisseur DNS./* # A records */ ns1.test.mederis.net. 900 A 62.210.103.156 # addresse IP Master ns2.test.mederis.net. 900 A 62.210.139.88 # addresse IP Slave /* # Name server */ test.mederis.net. 900 NS ns2.test.mederis.net. test.mederis.net. 900 NS ns1.test.mederis.net.
reverse
dans le dossier /etc/bind/zones/
/* # /etc/bind/db.62.210.103 */ $TTL 3600 103.210.62.in-addr.arpa. IN SOA ns1.test.mederis.net. admin.test.mederis.net. ( 14 /* ; Serial */ 1h /* ; Refresh [1h] */ 10m /* ; Retry [10m] */ 1d /* ; Expire [1d] */ 10m) /* ; Negative Cache TTL [1h] */ /* ; Name Server */ 103.210.62.in-addr.arpa. IN NS ns1.test.mederis.net. /* ; PTR Records */ 158.103.210.62.in-addr.arpa. IN PTR ns1.test.mederis.net.
/* # /etc/bind/db.62.210.139 */ $TTL 3600 139.210.62.in-addr.arpa. IN SOA ns2.test.mederis.net. admin.test.mederis.net. ( 14 /* ; Serial */ 1h /* ; Refresh [1h] */ 10m /* ; Retry [10m] */ 1d /* ; Expire [1d] */ 10m) /* ; Negative Cache TTL [1h] */ /* ; Name Server */ 139.210.62.in-addr.arpa. IN NS ns2.test.mederis.net. /* ; PTR Records */ 158.103.210.62.in-addr.arpa. IN PTR ns2.test.mederis.net.
reverse
dans le fichier named.conf.local
... zone "103.210.62.in-addr.arpa" { type master; file "/etc/bind/zones/db.62.210.103"; notify yes; }; zone "139.210.62.in-addr.arpa" { type master; file "/etc/bind/zones/db.62.210.139"; notify yes; };
Bind9
en utilisant la commande (PS: À chaque reload après modification dans l'un des fichiers ne pas oublier pas d'incrémenter le numéro de série (serial) du fichier zone de votre domaine)sudo rndc reload # OR sudo systemctl restart bind9
Dans la configuration du Slave on va installer les mêmes dépendances qu'on a déjà installées dans le Master. Le but est que les deux serveurs puissent communiquer. Le serveur Master doit pouvoir faire un transfert de zone aux Slave
named.conf.options
options{ ... dnssec-validation auto; auth-nxdomain no; /* # conform to RFC1035 */ allow-query { 127.0.0.1; 62.210.139.88; }; listen-on { 127.0.0.1; 62.210.139.88; }; listen-on { any; }; listen-on-v6 { any; }; allow-transfer { 51.15.188.118; 127.0.0.1; }; };
named.conf.local
zone "test.mederis.net" IN { type slave; file "/etc/bind/zones/test.mederis.net"; masters { 62.210.103.156; }; }; zone "103.210.62.in-addr.arpa" { type slave; file "/etc/bind/zones/db.62.210.103"; masters { 62.210.103.156; }; }; zone "139.210.62.in-addr.arpa" { type slave; file "/etc/bind/zones/db.62.210.139"; masters { 62.210.103.156; }; };
Le DNSSEC
permet de sécuriser l’authenticité de la réponse DNS. La
sécurité des données est effectuée à l’aide d’un mécanisme de clés
(KSK
pour Key Signing Key & ZSK
pour Zone Signing Key) qui signe
les enregistrements DNS de sa propre zone.
KSK
& ZSK
dans le dossier /etc/bind/
(dans ce cas on a utilisé l'algorithme NSEC3RSASHA1)# Passer à root pour pouvoir générer les clefs dnssec-keygen -a NSEC3RSASHA1 -b 4096 -n ZONE test.mederis.net # Generate ZSK KEYS dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE test.mederis.net # Generate KSK KEYS # Changer les noms des deux clefs générées par un nom symbolique mv Ktest.mederis...+0..key Ktest.mederis.net.ksk.key #ZSK public key mv Ktest.mederis...+0..key Ktest.mederis.net.ksk.private #ZSK private key mv Ktest.mederis...+0..key Ktest.mederis.net.ksk.key #KSK public key mv Ktest.mederis...+0..key Ktest.mederis.net.ksk.private #KSK private key
/etc/bind/zones/test.mederis.net
$INCLUDE "/etc/bind/Ktest.mederis.net.ksk.key" ; $INCLUDE "/etc/bind/Ktest.mederis.net.zsk.key" ;