342 lines
7.1 KiB
Plaintext
342 lines
7.1 KiB
Plaintext
|
|
TP04 – Dynamic DNS — Organisation par GRANDES PARTIES
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 1 — Préparation de la topologie (ddns.imn)
|
|||
|
|
Objectif :
|
|||
|
|
Créer une topologie avec :
|
|||
|
|
* un serveur DNS : osiris
|
|||
|
|
|
|||
|
|
* un serveur DHCP : isis
|
|||
|
|
|
|||
|
|
* des clients (eno, owt, pc1, pc2…)
|
|||
|
|
|
|||
|
|
Ce que tu dois faire :
|
|||
|
|
1. Copier la topologie du TP22 (dns1.imn)
|
|||
|
|
|
|||
|
|
2. Enregistrer sous ddns.imn dans :
|
|||
|
|
~/SCR.3.2/TP04/
|
|||
|
|
|
|||
|
|
3. Assigner :
|
|||
|
|
|
|||
|
|
* osiris : serveur DNS
|
|||
|
|
|
|||
|
|
* isis : serveur DHCP
|
|||
|
|
|
|||
|
|
* Les autres machines : sans IP statique (elles utiliseront DHCP)
|
|||
|
|
|
|||
|
|
Pourquoi ?
|
|||
|
|
Parce que :
|
|||
|
|
* DHCP doit distribuer IP + DNS + nom de domaine,
|
|||
|
|
|
|||
|
|
* DHCP doit envoyer des mises à jour dynamiques au DNS.
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 2 — Préparation des fichiers DNS (osiris)
|
|||
|
|
Objectif :
|
|||
|
|
Créer les fichiers de zone que BIND pourra modifier dynamiquement.
|
|||
|
|
Étapes :
|
|||
|
|
(1) Copier les fichiers du TP22 dans TP04
|
|||
|
|
Tu copies depuis ton dossier TP22 tout ce qui concerne DNS :
|
|||
|
|
named.conf.local
|
|||
|
|
db.tp.scr
|
|||
|
|
db.1.168.192
|
|||
|
|
|
|||
|
|
|
|||
|
|
Tu renommes :
|
|||
|
|
osiris.named.conf.local
|
|||
|
|
osiris.db.tp.scr
|
|||
|
|
osiris.db.1.168.192
|
|||
|
|
|
|||
|
|
|
|||
|
|
(2) Éditer les fichiers de zone
|
|||
|
|
Le TP dit : garder seulement :
|
|||
|
|
* les enregistrements pour osiris,
|
|||
|
|
|
|||
|
|
* ajouter ceux pour isis,
|
|||
|
|
|
|||
|
|
* supprimer toutes les autres machines (eno, owt, pc1, pc2…).
|
|||
|
|
|
|||
|
|
tp04.SCR.3.2
|
|||
|
|
Parce que ces autres machines recevront leurs enregistrements dynamiquement via DHCP, donc pas dans les fichiers statiques.
|
|||
|
|
(3) Déplacer les fichiers dans /var/lib/bind/
|
|||
|
|
Très important : BIND n’a pas le droit d’écrire dans /etc/bind/.
|
|||
|
|
Les fichiers de zones finalisés doivent être placés dans :
|
|||
|
|
/var/lib/bind/db.tp.scr
|
|||
|
|
/var/lib/bind/db.1.168.192
|
|||
|
|
|
|||
|
|
|
|||
|
|
Pourquoi ?
|
|||
|
|
* Parce que named tourne sous l’utilisateur bind,
|
|||
|
|
|
|||
|
|
* Il doit créer un fichier journal .jnl pour les mises à jour dynamiques,
|
|||
|
|
|
|||
|
|
* /etc/bind n’est pas modifiable par bind.
|
|||
|
|
|
|||
|
|
tp04.SCR.3.2
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 3 — Génération et configuration de la clé TSIG (sécurité)
|
|||
|
|
Objectif :
|
|||
|
|
Permettre à DHCP (isis) de mettre à jour DNS (osiris) en toute sécurité.
|
|||
|
|
Générer la clé sur osiris :
|
|||
|
|
tsig-keygen -a md5 tp.scr-key > ddns.key
|
|||
|
|
|
|||
|
|
|
|||
|
|
Installer la clé :
|
|||
|
|
Sur osiris :
|
|||
|
|
/etc/bind/ddns.key
|
|||
|
|
chmod 640 ddns.key
|
|||
|
|
chown root:bind ddns.key
|
|||
|
|
|
|||
|
|
|
|||
|
|
Sur isis :
|
|||
|
|
/etc/dhcp/ddns.key
|
|||
|
|
chmod 640 ddns.key
|
|||
|
|
chown root:bind ddns.key
|
|||
|
|
|
|||
|
|
|
|||
|
|
Pourquoi ?
|
|||
|
|
TSIG = Transaction Signature
|
|||
|
|
→ sécurité = le DNS n’accepte des updates que du DHCP, pas d’un intrus.
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 4 — Configuration DNS dynamique (osiris)
|
|||
|
|
Objectif :
|
|||
|
|
Dire au serveur DNS de permettre les mises à jour dynamiques venant de isis.
|
|||
|
|
Modifier /etc/bind/named.conf.local (renommé ici en osiris.named.conf.local)
|
|||
|
|
Exemple :
|
|||
|
|
include "/etc/bind/ddns.key";
|
|||
|
|
|
|||
|
|
|
|||
|
|
zone "tp.scr" IN {
|
|||
|
|
type master;
|
|||
|
|
file "/var/lib/bind/db.tp.scr";
|
|||
|
|
allow-update { key tp.scr-key; };
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
zone "1.168.192.in-addr.arpa" IN {
|
|||
|
|
type master;
|
|||
|
|
file "/var/lib/bind/db.1.168.192";
|
|||
|
|
allow-update { key tp.scr-key; };
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
Pourquoi ?
|
|||
|
|
* allow-update { key ... } = autoriser DHCP uniquement.
|
|||
|
|
|
|||
|
|
* Le fichier de zone est dans /var/lib/bind/ pour que BIND puisse écrire le .jnl.
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 5 — Configuration DHCP avec DDNS (isis)
|
|||
|
|
Objectif :
|
|||
|
|
Faire en sorte que DHCP :
|
|||
|
|
* attribue des IP aux clients,
|
|||
|
|
|
|||
|
|
* génère automatiquement :
|
|||
|
|
|
|||
|
|
* un enregistrement A (nom → IP)
|
|||
|
|
|
|||
|
|
* un enregistrement PTR (IP → nom)
|
|||
|
|
|
|||
|
|
* envoie les mises à jour signées au DNS.
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
Modifier /etc/dhcp/dhcpd.conf (fichier isis.dhcpd.conf)
|
|||
|
|
Exemple minimal :
|
|||
|
|
include "/etc/dhcp/ddns.key";
|
|||
|
|
|
|||
|
|
|
|||
|
|
ddns-update-style standard;
|
|||
|
|
update-static-leases on;
|
|||
|
|
|
|||
|
|
|
|||
|
|
option domain-name "tp.scr";
|
|||
|
|
option domain-name-servers 192.168.1.158; # osiris
|
|||
|
|
|
|||
|
|
|
|||
|
|
zone tp.scr. {
|
|||
|
|
primary 192.168.1.158;
|
|||
|
|
key tp.scr-key;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
zone 1.168.192.in-addr.arpa. {
|
|||
|
|
primary 192.168.1.158;
|
|||
|
|
key tp.scr-key;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
subnet 192.168.1.0 netmask 255.255.255.0 {
|
|||
|
|
range 192.168.1.11 192.168.1.200;
|
|||
|
|
option routers 192.168.1.254;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
Pourquoi ?
|
|||
|
|
Parce que DHCP doit :
|
|||
|
|
* savoir où envoyer les mises à jour DNS → directives zone {...};
|
|||
|
|
|
|||
|
|
* les signer → directive key;
|
|||
|
|
|
|||
|
|
* fournir l’IP du DNS aux clients → option domain-name-servers.
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 6 — Lancement manuel des services en mode debug
|
|||
|
|
Objectif :
|
|||
|
|
Observer les transactions DDNS en temps réel.
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
Sur osiris (DNS) :
|
|||
|
|
named -u bind -g
|
|||
|
|
|
|||
|
|
|
|||
|
|
Cela garde named en avant-plan et affiche les mises à jour.
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
Sur isis (DHCP) :
|
|||
|
|
dhcpd -d
|
|||
|
|
|
|||
|
|
|
|||
|
|
Cela permet de voir :
|
|||
|
|
* DHCPDISCOVER
|
|||
|
|
|
|||
|
|
* DHCPOFFER
|
|||
|
|
|
|||
|
|
* DHCPREQUEST
|
|||
|
|
|
|||
|
|
* DHCPACK
|
|||
|
|
|
|||
|
|
* et surtout → la génération des messages DDNS
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
Pourquoi ne pas lancer via service bind9 start ?
|
|||
|
|
Parce que tu ne verrais aucun log, et tu ne pourrais pas analyser les mises à jour dynamiques.
|
|||
|
|
Le TP impose explicitement l’exécution en mode debug.
|
|||
|
|
tp04.SCR.3.2
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 7 — Tests fonctionnels
|
|||
|
|
1. Avant la requête DHCP
|
|||
|
|
Sur un client (eno par exemple) :
|
|||
|
|
ip a
|
|||
|
|
cat /etc/resolv.conf
|
|||
|
|
|
|||
|
|
|
|||
|
|
→ pas d’IPv4, pas de DNS.
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
2. Demande d’adresse :
|
|||
|
|
dhclient -v eth0
|
|||
|
|
|
|||
|
|
|
|||
|
|
Observations :
|
|||
|
|
Côté DHCP (isis) :
|
|||
|
|
* DHCPACK
|
|||
|
|
|
|||
|
|
* "Added new forward map ..."
|
|||
|
|
|
|||
|
|
* "Added reverse map ..."
|
|||
|
|
|
|||
|
|
Côté DNS (osiris) :
|
|||
|
|
* Validation TSIG
|
|||
|
|
|
|||
|
|
* Écriture dans .jnl
|
|||
|
|
|
|||
|
|
* Mise à jour A + PTR
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
3. Test DNS :
|
|||
|
|
dig eno.tp.scr
|
|||
|
|
dig -x 192.168.1.X
|
|||
|
|
|
|||
|
|
|
|||
|
|
Résultat attendu :
|
|||
|
|
* le nom résout vers l’IP DHCP,
|
|||
|
|
|
|||
|
|
* l’IP résout vers le nom.
|
|||
|
|
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTIE 8 — Cas d’erreur : mauvaise clé TSIG
|
|||
|
|
Le TP demande de modifier légèrement la clé du DHCP pour provoquer une erreur.
|
|||
|
|
|
|||
|
|
tp04.SCR.3.2
|
|||
|
|
Symptômes :
|
|||
|
|
DHCP (isis) :
|
|||
|
|
→ Continue à fonctionner normalement.
|
|||
|
|
DNS (osiris) :
|
|||
|
|
→ Rejette les mises à jour :
|
|||
|
|
tsig verify failure (BADSIG)
|
|||
|
|
|
|||
|
|
|
|||
|
|
Test DNS :
|
|||
|
|
dig eno.tp.scr
|
|||
|
|
|
|||
|
|
|
|||
|
|
→ Réponse : NXDOMAIN
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
Pourquoi ?
|
|||
|
|
Parce que la requête DDNS est :
|
|||
|
|
* signée par DHCP,
|
|||
|
|
|
|||
|
|
* vérifiée par DNS.
|
|||
|
|
|
|||
|
|
Si la signature ne correspond pas, DNS rejette la mise à jour → donc pas d’enregistrement.
|
|||
|
|
________________
|
|||
|
|
|
|||
|
|
|
|||
|
|
RÉSUMÉ PARFAIT DU TP04
|
|||
|
|
Partie
|
|||
|
|
Ce que tu fais
|
|||
|
|
Pourquoi
|
|||
|
|
1
|
|||
|
|
Créer ddns.imn
|
|||
|
|
Topo du TP
|
|||
|
|
2
|
|||
|
|
Préparer les zones
|
|||
|
|
Utilisation dynamique
|
|||
|
|
3
|
|||
|
|
Créer clé TSIG
|
|||
|
|
Sécurisation
|
|||
|
|
4
|
|||
|
|
Configurer DNS
|
|||
|
|
Autoriser mises à jour
|
|||
|
|
5
|
|||
|
|
Configurer DHCP
|
|||
|
|
Envoyer mises à jour
|
|||
|
|
6
|
|||
|
|
Lancer named & dhcpd en debug
|
|||
|
|
Voir les transactions
|
|||
|
|
7
|
|||
|
|
Tester DHCP + DNS
|
|||
|
|
Vérification du DDNS
|
|||
|
|
8
|
|||
|
|
Tester erreur de clé
|
|||
|
|
Comprendre TSIG
|