ZW3B :-: API Client * Contents * Docs by LAB3W.ORJ

Translate this page

Name : BETA-TESTERS

Project name : ZW3B-API-BETA-TESTERS

Authorized. - 200 - Client API Name and Origin Wildcard OK

¿Comment? 'Ou' ¿Que faire?, OS GNU/Linux, Serveurs, Configuration BIND9 Masters et Slaves

Comment configurer le serveur DNS (Domain Names Services) de nom de domaines #BIND9 (Berkeley InterNet Domain) / NAMED avec son/ses #DNS secondaire(s) par #TSIG (Transaction SIGnature) - Mise à jour par nsupdate..

Author : O.Romain.Jaillet-ramey

NdM : 2023/02/10 - Modification rédactionnel (Ajout d'informations ? nsupdate)

Je vous explique comment-faire pour configurer un (2) serveur(s) DNS maître / serveur DNS esclave - authoritaire/non-authoritaire.

Ci-dessous les adresses de mes serveurs "Domain Name Service" qui sont des DNS public accessible depuis n'importe quel ISP.

L'un se trouve vers Montréal (Canada)

L'autre se trouve toujours vers Montréal (Canada)

Et.. Un se trouve à Francfort (Allemagne)

Pour informations : host dns.ipv10.net retourne mes DNS ??


NdM : Pour upgrader une version , par exemple de la BIND 9.9.5 vers 9.10.3 sur Ubuntu Trusty : ajouter le dépot add-apt-repository ppa:lamont/ppa, mettre à jour la liste des dépots apt update et faite une upgrade apt upgrade.


Ces 2 machines sont sur un réseau VPN par IPSec + XL2TP - docs sur le site (lien en bas de page).


Premièrement vous devez installer le démon BIND9 et le configurer.

Je vous transmet un lien Web pour configurer les fichiers de loggin (copier/coller "Sample Logging Configuration" ;) ) et la documentation bind9 sur readthedocs.io

Ci-joint l'installation et la configuration du serveur BIND9 depuis une distribution Linux Debian et/ou depuis une distribution Linux Ubuntu .

Installation du serveur DNS BIND9 / NAMED (master / slaves)

Installer le démon BIND9 et quelques paquets supplémentaires.

Script avec 2 lignes

001apt install bind9 
002apt install dnsutils net-tools opendnssec mtr traceroute iputils-ping whois
Retirer les numéros de lignes

Créer un fichier /etc/bind/named.conf.log comme sur cette page pour avoir les fichiers de logs adéquat.

Nous avons donc le fichier des include /etc/bind/name.conf, le fichier des options /etc/bind/name.conf.options et le fichier des qui déclare nos zones DNS /etc/bind/name.conf.local que nous allons configurer.

Sur les 2 machines (NS1 : 10.101.150.1) et (NS2 : 10.105.150.1)

Script avec 1 ligne

001mkdir /etc/bind/masters/ /etc/bind/slaves/
Retirer les numéros de lignes

Reverses IPv4 Locales Area Networks (LAN)

Nous allons créer les reverses IPv4 LAN (Locales Area Networks) sur les 2 machines NS1 et NS2, pour ensuite les transferer/updater, de la zone "master" vers la zone "slave", selon où elles se trouvent (les zones).

Cela permet :

En quelques sortes, pour que vous compreniez, si une zone DNS de type "master" est modifiée, elle sera transférée sur toutes les machine(s) sur lesquelles cette même zone DNS est configurées en type "slave".

Reverses IPv4 DNS (réseau IPv4 LAN master NS1 de la zone IPv4 : 10.101.150.0/24 - slave des autres zones)

Sur la machine (NS1) nous allons créer les reverses IPv4 LAN (Locales Area Networks) dans le fichier /etc/bind/masters/150.101.10.in-addr.arpa qui pourait ressembler à cela - Les IPv4 de ce/notre réseau :

Script avec 24 lignes

001$ttl 86400 # (1 jour) - 604800 (7 jours)
002@   IN      SOA     ns1.lab3w.loc. hostmaster.lab3w.loc. (
003			2020040302      ; serial, yearmonthdayserial
004			20              ; refresh, seconds / default:21600
005			5               ; retry, seconds / default:3600
006			420             ; expire, seconds / default:604800
007			60 )            ; minimum, seconds / default:3600
008
009;-------------------------------------------------------
010; SERVER DNS OF DOMAIN
011;-------------------------------------------------------
012@		IN	NS		ns1.lab3w.loc.
013@		IN	NS		ns2.lab3w.loc.
014
015;-------------------------------------------------------
016; IFORMATIONS OF DOMAIN
017;-------------------------------------------------------
018@		IN	TXT		"LAB3W.LOC : Reverse file (10.101.150.0/24)"
019
020;-------------------------------------------------------
021; ADDR REVERSE IP (PTR) OF SERVERS
022;-------------------------------------------------------
0231		IN	PTR		ns1.lab3w.loc.
02410		IN	PTR		ww1.lab3w.loc.
Retirer les numéros de lignes

Reverses IPv4 DNS (réseau IPv4 LAN master NS2 de la zone IPv4 : 10.105.150.0/24 - slave des autres zones)

Sur la machine (NS2) nous allons créer les reverses IPv4 LAN (Locales Area Networks) dans le fichier /etc/bind/masters/150.105.10.in-addr.arpa qui pourait ressembler à cela - Les IPv4 de ce/notre réseau :

Script avec 24 lignes

001$ttl 86400 # (1 jour) - 604800 (7 jours)
002@   IN      SOA     ns2.lab3w.loc. hostmaster.lab3w.loc. (
003			2020040302      ; serial, yearmonthdayserial#
004			20              ; refresh, seconds / default:21600
005			5               ; retry, seconds / default:3600
006			420             ; expire, seconds / default:604800
007			60 )            ; minimum, seconds / default:3600
008
009;-------------------------------------------------------
010; SERVER DNS
011;-------------------------------------------------------
012@		IN	NS		ns1.lab3w.loc.
013@		IN	NS		ns2.lab3w.loc.
014
015;-------------------------------------------------------
016; IFORMATIONS OF DOMAIN
017;-------------------------------------------------------
018@		IN	TXT		"LAB3W.LOC : Reverse file (10.105.150.0/24)"
019
020;-------------------------------------------------------
021; ADDR REVERSE IP (PTR) OF SERVERS
022;-------------------------------------------------------
0231		IN	PTR		ns2.lab3w.loc.
02410		IN	PTR		ww2.lab3w.loc.
Retirer les numéros de lignes

Cela permet d'afficher le nom du serveur en demandant l'informations d'une adresse IP - Qu'une IPv4 retourne le nom (host 10.105.150.10).
En utilisant par exemple la commande suivante :

Script avec 2 lignes

001host 10.101.150.1
0021.150.101.10.in-addr.arpa domain name pointer ns1.lab3w.loc.
Retirer les numéros de lignes

Script avec 2 lignes

001host 10.105.150.1
0021.150.105.10.in-addr.arpa domain name pointer ns2.lab3w.loc.
Retirer les numéros de lignes

NdM 2022/01/10 : Petite explication complèmentaire (hors adressage du tutoriel) ;-)

Imaginer dans un premier temps que vous ayez plusieurs "amis" - un amis à Paris, un autre à Montréal, un autre à Londres et que vous ayez un serveur (en commun) dans un datacenter qui se trouve à Bruxelles.

Chacun gère un serveur DNS avec ses fichiers reverse DNS et ses fichiers DNS de noms de domaines.

Par contre vous et chacun de vos amis veulent avoir accés à la configuration de l'autre - sur sa machine DNS local - et/ou disponible.

Pour cela c'est très simple :
Chacun des admins (amis) configurent LEURS zones en master et configure le transfert et l'update vers le serveur général de Bruxelles.

Ce qui correspondt à dire :

Important : dans la configuration des serveurs DNS (fichier /etc/resolv.conf) - Ajouter le serveur général (de Bruxelles) après votre serveur local.

Par exemple sur la machine DNS elle-même :

Script avec 5 lignes

001# DNS sur cette machine
002nameserver ::1
003nameserver 127.0.0.1
004# DNS général (Bruxe11es)
005nameserver 2607:5300:60:9389:15:1:a:1000

Par exemple sur votre réseau local (en imaginant que vous pouvez attraper l'IPv4 du DNS 10.0.2.1) :

Script avec 5 lignes

001# DNS sur le réseau local
002nameserver 2607:5300:60:9389:58:0:2:1
003nameserver 10.0.2.1
004# DNS général (Bruxe11es)
005nameserver 2607:5300:60:9389:15:1:a:1000

Une fois configurés (les rndc keys, les fichiers zones et leurs configurations), dès que quelqu'un fera une mise à jour à un de ses fichiers celle-ci sera transférée jusqu'à votre serveur en local.


;-)



Cordialement,
Romain


NdMoi-même :

Script avec 4 lignes

001# Sur NS1 
002named-checkzone 150.101.10.in-addr.arpa arpa/150.101.10.in-addr.arpa
003zone 150.101.10.in-addr.arpa/IN: loaded serial 2020040302
004OK
Retirer les numéros de lignes

Script avec 4 lignes

001# Sur NS2 
002named-checkzone 150.105.10.in-addr.arpa arpa/150.105.10.in-addr.arpa
003zone 150.101.10.in-addr.arpa/IN: loaded serial 2020040302
004OK
Retirer les numéros de lignes

Jusque là nous avons configuré 2 fichiers de zones arpa (pour les adresses IPv4). Nous pouvons configurer les zones DNS MASTER et SLAVES. IL faut avant tout configurer les options globales du serveur DNS, des zones, des requêtes.

Configuration du fichier /etc/bind/name.conf

Ce fichier permet par exemple de configurer les fichiers à inclure.

Le fichier /etc/bind/name.conf pourait ressembler à cela :

Script avec 10 lignes

001// Gerer les fichiers de logs
002include "/etc/bind/named.conf.log";
003
004include "/etc/bind/named.conf.options";
005include "/etc/bind/named.conf.local";
006include "/etc/bind/named.conf.default-zones";
007
008// Les clefs du server
009include "/etc/bind/bind.keys";
010include "/etc/bind/rndc.key";
Retirer les numéros de lignes

Le fichier /etc/bind/rndc.key permet de sécurisé les transaction entre serveur maître et esclaves.

Par défaut le fichier ressemble à cela et a les droits lire et écrire pour l'utilisateur -rw-r----- et appartient à l'utilisateur bind et goupe bind :

Script avec 4 lignes

001key "rndc-key" {
002        algorithm hmac-md5;
003        secret "EWpZdK4VZZEZYtgWXFFKwU=";
004};
Retirer les numéros de lignes

La sécurité TSIG permet de réduire les conséquences de l'IP spoofing entre les DNS primaires et secondaires.

La technologie de clé secrète partagée de TSIG permet à de multiples hôtes de partager la même clé secrète. Ce type de clé est plus vulnérable que les clés publique et privée que DNSSEC utilise, et donc TSIG n'est pas aussi sûr que DNSSECurisé.

On peut utiliser TSIG pour authentifier des transactions de messages DNS comme des requêtes et réponses, des mises à jour dynamiques, et des transferts de zones. On peut, par exemple, utiliser TSIG entre les serveurs DNS et les serveurs DNS des ISP ou des partenaires pour sécuriser ces communications. Si votre serveur BIND utilise une zone DDNS (Dynamic DNS), vous pouvez utiliser TSIG pour authentifier les mises à jour dynamiques provenant des clients, des serveurs DHCP, et des autres serveurs supportant TSIG. Ce type d'authentification des mises à jour dynamiques est plus sûr que l'authentification par adresse IP. On peut également utiliser TSIG pour authentifier les transferts de zones du serveur DNS primaire vers les serveurs DNS secondaires.

Nsupdate, supporte également TSIG à l'aide d'une option de clé secrète. Supposons que l'on veuille utiliser TSIG entre deux hôtes, host1 et host2. Il faut commencer par générer une clé secrète pour les hôtes. Pour cela, on dispose de la commande dnssec-keygen.

Script avec 2 lignes

001dnssec-keygen -a HMAC-MD5 -b 512 -n HOST "ns-dns"
002w²Kns-dns.+157+00811 
Retirer les numéros de lignes

L'option -a de cette commande définit l'algorithme de signature numérique que la clé générée utilisera. RFC 2845 spécifie HMAC-MD5 comme l'algorithme obligatoire pour l'interopérabilité TSIG, et BIND n'accepte que HMAC-MD5 pour TSIG. La longueur de clé maximale pour HMACMD5 est de 512 bits.

On recupére la clef encodée HMAC-MD5 512bits version base64 dans le fichier Kns-dns.+157+00811.private que l'on assigne à la la valeur "secret" de notre fichier /etc/bind/rndc.key. On fait de même pour les machines slaves.

Script avec 9 lignes

001#key "rndc-key" {
002#        algorithm hmac-md5;
003#        secret "EWpZdK4VZZEZYtgWXFFKwU=";
004#};
005key "ns-dns" {
006        algorithm hmac-md5;
007        secret "0YS2dJFTy8LOoKJTJw7eaOTvaXO7V4xMAdjN1QA0HvN0qW2BOQHEE8BSbqBYZjiCgEl3v7jtBMLwSk3hPrKnYQ==";
008};
009
Retirer les numéros de lignes

On pourrait se créer plusieurs clées, pour différents serveurs, personnes, entitités.

Configuration du fichier /etc/bind/name.conf.options

On trouve dans ce fichier plusieurs options sur lequelles vous pouvez vous renseigner ici .

Le fichier /etc/bind/name.conf.options pourait ressembler à cela :

Script avec 56 lignes

001 # Fichier de configuration server NS1
002options {
003        directory "/var/cache/bind";
004        key-directory "/etc/bind/keys/";
005
006        forwarders {
007                2001:4860:4860::8888;
008                8.8.8.8;
009                2001:4860:4860::8844;
010                8.4.8.4;
011        };
012
013        dnssec-enable yes;
014        dnssec-validation yes;
015        dnssec-lookaside . trust-anchor dlv.isc.org.;
016
017        auth-nxdomain no;    # conform to RFC1035
018
019        // Ecouter sur ces adresses
020        listen-on-v6 {
021                ::1;
022                2607:5300:60:9389:58:0:1:1;
023        };
024        listen-on {
025                127.0.0.1;
026                10.101.150.1;
027                158.69.126.137;
028        };
029
030        // Ne pas transférer les informations de zones aux DNS secondaires
031        // allow-transfer { none; }; # La configuration directement dans les fichiers zones
032
033        allow-notify { 10.101.150.1; }; # permettre de notifier les ips des serveurs
034        // Contient les DNS secondaires non officiels, cela permet de les prévenir immédiatement si une mise à jour d'une zone est effectuée
035        also-notify { 10.105.150.1; }; # notifier également les ips des serveurs
036        
037        allow-query { any; };
038        
039        recursion yes;
040        
041        allow-recursion {
042        	127.0.0.0/8;
043        	10.106.0.0/24;
044        	10.101.150.0/24;
045        };
046        
047        // Port d'échange entre les serveurs DNS
048//      query-source address * port 953;
049
050        dump-file               "data/cache_dump.db";
051        statistics-file         "data/named_stats.txt";
052        memstatistics-file      "data/named_mem_stats.txt";
053
054        additional-from-auth yes ; // par default
055        additional-from-cache yes ; // par default
056};
Retirer les numéros de lignes

Configuration du fichier /etc/bind/name.conf.local

Nous allons maintemant configurer le fichier du serveur DNS principal où l'on déclare nos zones DNS. Celui appelle les fichiers de zones DNS.

Script avec 35 lignes

001//-----------------------------------------------------------------
002// REVERSE LOCAL 
003// le fichier du réseau 10.101.150.0/24 sera transféré/updaté sur le(s) serveur(s) distant(s).
004//-----------------------------
005
006    zone "150.101.10.in-addr.arpa" {
007        type master;
008        file "/etc/bind/masters/150.101.10.in-addr.arpa";
009
010        allow-transfer { key "ns-dns"; }; # la clef pour les transferts entre serveurs
011        allow-update { key "ns-dns"; }; # la clef pour les nsupdate entre serveurs
012
013//      notify master-only;
014        notify yes;
015    };
016
017//-----------------------------------------------------------------
018// REVERSE DISTANT 
019// le fichier du réseau 10.105.150.0/24 sera transféré/updaté sur cette machine.
020//-----------------------------
021
022    zone "150.105.10.in-addr.arpa" {
023        type slave;
024        file "/etc/bind/slaves/150.105.10.in-addr.arpa";
025        masterfile-format text;
026
027        masters { 10.101.150.1; };
028
029//      allow-notify { 10.101.150.1; };
030        
031        notify master-only;
032//      notify yes;
033    };
034
035//-----------------------------------------------------------------
Retirer les numéros de lignes

Voilà nous avons configurer notre zone master et notre zone du serveur distant. Faire la même chose avec vos fichiers de zones DNS (comme d'habitude).

Inverser la configuration sur les serveurs DNS slaves.

Modifier le fichier /etc/bind/rndc.key pour les transactions entre serveurs DNS

Il faut modifier le fichier /etc/bind/rndc.key pour ajouter les adresses IPs des serveurs qui pourront s'intéroger. Faire la même chose sur les autres serveurs DNS en changant l'adresse IP.

Script avec 4 lignes

001server 10.105.150.1 {
002#	transfer-format many-answers;
003	keys { "ns-dns"; };
004};
Retirer les numéros de lignes

On peut ajouter les adresses IP des serveurs qui sont autorisés à faire des update par la commande nsupdate !


Jusque là, je viens de vous expliquer comment configuer un (2) serveur(s) DNS en vous expliquant avec les adresses de reverse IPv4 pour que vous compreniez le fait de(s) maitre(s) et de(s) esclave(s).

Créer un fichier pour une zone lab3w.loc

Pour le bien fait du tutorial, je vous ajoute un fichier zone "exemple" de nom de domaine.

Vous devez configurer un fichier de zone lab3w.loc pour qu'un nom retourne son adresse IP (host ww2.lab3w.loc) !

Par exemple le fichier /etc/bind/masters/lab3w.loc.hosts sur 1 des 2 serveurs :

Script avec 35 lignes

001$ttl 86400 # (1 jour) - 604800 (7 jours)
002@   IN      SOA     ns1.lab3w.loc. ns2.lab3w.loc. hostmaster.lab3w.loc. (
003			2020040302      ; serial, yearmonthdayserial#
004			20              ; refresh, seconds / default:21600
005			5               ; retry, seconds / default:3600
006			420             ; expire, seconds / default:604800
007			60 )            ; minimum, seconds / default:3600
008
009;-------------------------------------------------------
010; SERVER DNS
011;-------------------------------------------------------
012@				IN	NS		ns1.lab3w.loc.
013@				IN	NS		ns2.lab3w.loc.
014
015;-------------------------------------------------------
016; IFORMATIONS OF DOMAIN
017;-------------------------------------------------------
018@				IN	TXT		"LAB3W.LOC : Web and networks laboratory - InterNet engineering"
019
020;-------------------------------------------------------
021; ADDR IPv4 OF SERVERS (A)
022;-------------------------------------------------------
02310.101.150.1		IN	A		ns1.lab3w.loc.
02410.101.150.10		IN	A		ww1.lab3w.loc.
025
02610.105.150.1			IN	A		ns2.lab3w.loc.
02710.105.150.10			IN	A		ww2.lab3w.loc.
028
029;-------------------------------------------------------
030; ALIAS OF SERVERS (CNAME)
031;-------------------------------------------------------
032www				IN	CNAME		ww2.lab3w.loc.
033
034dns				IN	CNAME		ns1.lab3w.loc.
035dns				IN	CNAME		ns2.lab3w.loc.
Retirer les numéros de lignes

Puis il faut déclarer la nouvelle zone en master (sur le serveur où on la gère/modifie) dans le fichier /etc/bind/name.conf.local et déclarer la zone en slave sur les serveurs secondaire pour la récupération.

Script avec 15 lignes

001//-----------------------------------------------------------------
002// DOMAIN GESTION LOCAL 
003// le fichier du réseau lab3w.loc.hosts sera transféré/updaté sur le(s) serveur(s) distant(s).
004//-----------------------------
005
006    zone "lab3w.loc" {
007        type master;
008        file "/etc/bind/masters/lab3w.loc.hosts";
009
010        allow-transfer { key "ns-dns"; }; # la clef pour les transferts entre serveurs
011        allow-update { key "ns-dns"; }; # la clef pour les nsupdate entre serveurs
012
013//      notify master-only;
014        notify yes;
015    };
Retirer les numéros de lignes

Le fichier lab3w.loc.hosts sera transférait sur les serveurs secondaires dans le répertoire /etc/bind/slaves/.

Je n'ai pas ajouté d'adresse IPv6 - pour la simplicité - sur la zone LAN lab3w.loc mais on pourait le faire.

Pour informations : le tag (mot clef) est AAAA pour configurer un champ d'adresse IPv6 - En IPv4 c'est A.

Ajouter aux fichiers /etc/bind/name.conf.local des 2 serveurs :

Une fois que vous aurez configurer la zone lab3w.loc la commande suivante retournera l'adresse IP du serveur :

Script avec 2 lignes

001host ww2.lab3w.loc
002ww2.lab3w.loc has address 10.105.150.10
Retirer les numéros de lignes

En passant, n'oubliez pas d'ajouter à votre fichier /etc/resolv.conf l'adresse IP de votre serveur. Par exemple comme ci-dessous :

Script avec 3 lignes

001nameserver 127.0.0.1 # addr loop
002nameserver 10.101.150.1 # addr local (ns1)
003nameserver 10.105.150.1 # addr slan (ns2)
Retirer les numéros de lignes

Ici, vous avons configurer seulement vos serveurs DNS. Tout doit fonctionner s'ils répondent.

Si vous êtes derrière un firewall, il faut ouvir le port UDP:53. J'ai écris un tutorial Firewall ICMPv6 pour les plus aguérri.

Faire vos Reverses IPv6 c'est (encore plus) important et c'est une plus belle configuration d'un(e) host master ;)

Il suffit de prendre l'adresse IPv6, par exemple : 2607:5300:60:9389:15:1:a:1000 et de demander l'arpa avec la commande host (et ne pas oublier le . après ip6.arpa) :

Script avec 2 lignes

001host 2607:5300:60:9389:15:1:a:1000
0020.0.0.1.a.0.0.0.1.0.0.0.5.1.0.0.9.8.3.9.0.6.0.0.0.0.3.5.7.0.6.2.ip6.arpa domain name pointer ns1.ipv10.net.
Retirer les numéros de lignes

Script avec 2 lignes

001host 2607:5300:60:9389:15:2:a:1000
0020.0.0.1.a.0.0.0.2.0.0.0.5.1.0.0.9.8.3.9.0.6.0.0.0.0.3.5.7.0.6.2.ip6.arpa domain name pointer ns2.ipv10.net.
Retirer les numéros de lignes

NdMoi-même : Pour faire un transfert, une update manuelle de zone on peut utiliser la commande dig -t AXFR 0.101.10.in-addr.arpa @10.101.150.1 pour récupérer la zone 150.101.10.in-addr.arpa sur la machine 10.101.150.1.

rndc reload permet de transférer hors intervalles réguliers suivant les valeurs refresh, retry et expire spécifiées dans l'enregistrement SOA de la zone depuis le serveur maître (la zone master).
rndc retransfer domain.tld permet de transférer depuis l'esclace un zone master modifiée.

Mise à jour de zone par la commande nsupdate

Si par exemple vous avez installé DNSSec sur votre serveur DNS et que vous souhaitez mettre à jour vos enregistrements DNS sans devoir ré-générer le fichier entier d'une zone pour ré-générer le cryptage des RR (Ressource Record), je vous explique ci-dessous comment faire.

Il faut :

  1. Avoir configuré la variable allow-update { key "maj-nsupdate"; }; dans les zones que vous souhaitez pouvoir mettre à jour.
  2. Et ajouter le(s) serveur(s) qui peuvent faire les mise à jour server 10.10.10.10 { transfer-format many-answers; keys { "maj-nsupdate"; }; }

Après, depuis la machine, celle authorisée, que vous venez de configurer (par exemple sans serveur DNS, un serveur Web).

Il faut utiliser les commandes de l'utilitaire nsupdate ? server, zone, update, et send.

Par exemple un script qui va se connecter sur mon DNS (ns1.lab3w.com) et faire une mise à jour de la zone zw3b.fr :

On créait par exemple le fichier : vim nsupdate-zw3b_fr.nsupdate

Script avec 28 lignes

001; NSUPDATE
002;----------------------
003; Server DNS authoritaire
004;------
005server ns1.lab3w.com
006;----------------------
007; ZW3B.FR
008;------
009zone zw3b.fr
010;----------------------
011; Suppression si besoin d'un enregistrement
012;------
013update del www.zw3b.fr. 3600 A 1.2.3.4
014;----------------------
015; Ajout d'un enregistrement
016;------
017update add www.zw3b.fr. 3600 A 135.125.133.51
018update add www.zw3b.fr. 3600 AAAA 2001:41d0:701:1100::6530
019;----------------------
020; Modification d'un enregistrement
021;------
022update del wwd.zw3b.fr. 3600 A 1.2.3.4
023update add wwd.zw3b.fr. 3600 A 2.3.4.5
024;----------------------
025; Envoie des mises à jour au serveur DNS
026;------
027send
028
Retirer les numéros de lignes

Et la commande pour lancer la mise à jour depuis le serveur web 10.10.10.10 :

Script avec 1 ligne

001web:~# nsupdate -k Kmaj-nsupdate.+157+098354.private nsupdate-zw3b_fr.nsupdate
Retirer les numéros de lignes

La clée est celle créait par la commande : dnssec-keygen -a HMAC-MD5 -b 512 -n HOST "maj-nsupdate" qui créait une clef en 512bits au format MD5 (qui doit être configuré dans le serveur DNS authoritaire (par exemple dans le fichier rndc.key).

Voilà comment mettre à jour, supprimer, ajouter des enregistrements DNS à la volé (les mises à jour sont instantanés sur les serveurs DNS mondiaux).

??


J'ajoute ce lien qui explique très bien comment installer DNSSEC sur un Authoritative BIND DNS - pour vos zones - pour se protéger contre l'usurpation d'identité de chaque nom de sous-domaine :)

How To Setup DNSSEC on an Authoritative BIND DNS Server

En résumé, il y a que 3 lignes de commandes !

C'est toujours agréable de savoir que personne puisse usurper l'adresse de nos sites Web et de nos noms de domaine.

NTP (Network Time Protocol)

Je vous ajoute l'adresse de mon serveur NTP (Network Time Protocol) qui permet à toutes mes machines d'être à la même heure.

Si les serveurs DNS (masters/slaves - authoritaire/non-autohoritaire) ne sont pas à la même heure (minute) ; les transferts de zones ne fonctionnent pas.

Vous pouvez ajouter : une tâche planifiée pour la mise à jour de l'heure de votre machine.

Comme cela - ouvrir vos tâches planifiées : crontab -e - puis ajouter cette ligne.

Script avec 1 ligne

00105 */1 * * *    sleep $(shuf -i 0-30 -n1); /usr/sbin/ntpdate -6 ntp.lab3w.com 1>>/var/log/syslog 2>/dev/null 2>&1
Retirer les numéros de lignes

Pour faire une mise à jour toutes les heures à "5 minutes" (05 */1 * * *) et attendre N secondes comprises entre 0 et 30 (sleep $(shuf -i 0-30 -n1);), depuis mon serveur NTP accessible seulement en IPv6 ;)

Vous remarquerez une ligne dans /var/log/syslog de type :

Script avec 1 ligne

00120 Jun 14:05:11 ntpdate[25604]: adjust time server 2607:5300:60:9389:58:0:2:101 offset 0.171356 sec
Retirer les numéros de lignes


Bon adressage de noms ^^ moi c'est Olivier Romain Jaillet-ramey ;p alias ORJ (LAB3W ) - Freelance, consultant LAMP : Développeur OPérating Systems, W3C.Master confirmé, +15 ans d'eXPériences, spécialiste des technologies IHM et des architectures systèmes et réseaux double-piles IPs.

Cordialement,
Romain


Sources de documentations du serveur de noms de domaine BIND9 / NAMED

Informations sur les reqêtes DIG pour interroger votre serveur de noms de domaine BIND9 / NAMED

Sécuriser votre serveur de noms de domaine BIND9 / NAMED

DMARC (Domain-based Message Authentication, Reporting and Conformance)

Je vous ajoute des infos sur DMARC (Message basé sur l'Authentification du Domain avec Rapports de Conformité) pour se protèger contre l'usurpation des emails (at) nos noms de domaines.