Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
atelier:chantier:dns-bind9-sur-wheezy [14/09/2014 11:53] Hypathie [Côté client] |
atelier:chantier:dns-bind9-sur-wheezy [20/06/2020 13:59] tuFek [Introduction au DNS] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
* Objet : Installer un server DNS maître en local | * Objet : Installer un server DNS maître en local | ||
* Niveau requis : {{tag> avisé}} | * Niveau requis : {{tag> avisé}} | ||
- | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Suivi : {{tag>tester}} |
- | * Suivi : {{tag>tester à-placer}} - Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | + | * Création par [[user>Hypathie]] le 01/09/2014 |
- | * Création par [[user>Hypathie]] 01/09/2014 | + | * Testé par ... le ... |
- | * Testé par <...> le <...> | + | |
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=97375#p97375 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=97375#p97375 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 31: | Ligne 30: | ||
Un client souhaite savoir à quel adresse IP correspond **<nowiki>www.toto.com</nowiki>**.\\ | Un client souhaite savoir à quel adresse IP correspond **<nowiki>www.toto.com</nowiki>**.\\ | ||
- | Dans l'ordi de ce client on a configuré un ou plusieurs DNS dans le fichier **/etc/resolve.conf** dans lequel est indiqué l'adresse IP de serveur local Bind comme server de référence.\\ | + | Dans l'ordi de ce client on a configuré un ou plusieurs DNS dans le fichier **/etc/resolv.conf** dans lequel est indiqué l'adresse IP de serveur local Bind comme server de référence.\\ |
Cette ordi a donc l'adresse IP d'un DNS est lui pose la question "donne moi l'IP de **<nowiki>www.toto.com</nowiki>**.\\ | Cette ordi a donc l'adresse IP d'un DNS est lui pose la question "donne moi l'IP de **<nowiki>www.toto.com</nowiki>**.\\ | ||
Ligne 58: | Ligne 57: | ||
===/usr/sbin/named=== | ===/usr/sbin/named=== | ||
- | Le programme qui lance le server. | + | Le programme qui lance le serveur. |
- | === /usr/sbin/rndc=== | + | ===/etc/init.d/bind9=== |
- | rndc est un utilitaire de contrôle. | + | Permet de gérer bind.\\ |
+ | |||
+ | *En **root** : | ||
+ | * **''/etc/init.d/bind9 stop''** : pour arrếter | ||
+ | * **''/etc/init.d/bind9 start''** : pour rédémarrer | ||
+ | * **''/etc/init.d/bind9 restart''** : pour redémarrer (si il était démarrer, avec restart, il est éteint, puis redémarrer avec un nouveau processus | ||
+ | * **''/etc/init.d/bind9 reload''** : pour recharger la configuration (ne stoppe pas avant de recharger | ||
+ | |||
+ | On peut aussi utiliser **''service''** avec chacune des commandes décrites pour init.d par exemple : | ||
+ | <code root>service bind9 restart</code> | ||
+ | |||
+ | ===L'utilitaire rndc=== | ||
+ | /usr/sbin/rndc est le fichier binaire de l'utilitaire de contrôle rndc.\\ | ||
+ | Il permet de gérer Bind9 | ||
<code> | <code> | ||
- | rndc |b source-adress] [-c config-file] [k key-file] [-s serveur] | + | rndc [b source-adress] [-c config-file] [k key-file] [-s serveur] |
[-p port] [-V] [-y key-id] {commande} | [-p port] [-V] [-y key-id] {commande} | ||
</code> | </code> | ||
- | -> commandes : | ||
- | **''reload''** : pour recharger\\ | + | * Après l'installation de bind9, on peut utiliser les commandes rndc suivantes : |
- | **''stop''** : arrêter le serveur\\ | + | * **''reload''** : pour recharger |
- | **''flush''** : vider le cache\\ | + | * **''stop''** : arrêter le serveur |
- | **''status''** : afficher l'état du serveur\\ | + | * **''flush''** : vider le cache |
- | **aucune** : liste des commandes utilisables | + | * **''status''** : afficher l'état du serveur |
+ | * **aucune** : liste des commandes utilisables | ||
Ligne 181: | Ligne 193: | ||
<code> | <code> | ||
- | 127.0.0.1 localhost | + | 127.0.0.1 localhost.mondomaine.hyp localhost |
- | 127.0.1.1 debian-serveur.mondomaine.hyp debian-serveur | + | 192.168.0.14 debian-serveur.mondomaine.hyp debian-serveur |
- | 192.168.0.14 debian-serveur | + | |
192.168.0.22 debian-client1 | 192.168.0.22 debian-client1 | ||
192.168.0.23 debian-hp | 192.168.0.23 debian-hp | ||
Ligne 231: | Ligne 242: | ||
* Création du script pour networkmanager : | * Création du script pour networkmanager : | ||
<code root>cd /etc/NetworkManager/</code> | <code root>cd /etc/NetworkManager/</code> | ||
- | |||
- | <code root>touch /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
<code root>vim /etc/NetworkManager/dispatcher.d/99-dns</code> | <code root>vim /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
Ligne 238: | Ligne 247: | ||
echo "domain mondomaine.hyp" > /etc/resolv.conf | echo "domain mondomaine.hyp" > /etc/resolv.conf | ||
echo "search mondomaine.hyp" >> /etc/resolv.conf | echo "search mondomaine.hyp" >> /etc/resolv.conf | ||
- | echo "nameserver 127.0.0.1" >> /etc/resolv.conf | + | echo "nameserver 192.168.0.14" >> /etc/resolv.conf |
echo "#nameserver 212.27.40.240" >> /etc/resolv.conf | echo "#nameserver 212.27.40.240" >> /etc/resolv.conf | ||
echo "#nameserver 212.27.40.241" >> /etc/resolv.conf | echo "#nameserver 212.27.40.241" >> /etc/resolv.conf | ||
Ligne 254: | Ligne 263: | ||
<code>domain mondomaine.hyp | <code>domain mondomaine.hyp | ||
search mondomaine.hyp | search mondomaine.hyp | ||
- | nameserver 127.0.0.1 | + | nameserver 192.168.0.14 |
- | # nameserver 212.27.40.240 | + | #nameserver 212.27.40.240 |
- | # nameserver 212.27.40.241 | + | #nameserver 212.27.40.241 |
</code> | </code> | ||
Ligne 265: | Ligne 274: | ||
<note tip> | <note tip> | ||
- | * Voir : [[https://wiki.debian.org/fr/NetworkConfiguration#Configuration_de_DNS_pour_network-manager]] | + | * Au sujet de Network Manager:\\ [[https://wiki.debian.org/fr/NetworkConfiguration#Configuration_de_DNS_pour_network-manager]] |
* Attention la suppression de networkmanager déstabilise le système : | * Attention la suppression de networkmanager déstabilise le système : | ||
Ligne 323: | Ligne 332: | ||
<code> | <code> | ||
; | ; | ||
- | ; BIND data file for local loopback interface | + | ; BIND data file for eth0 interface |
; | ; | ||
$TTL 604800 | $TTL 604800 | ||
Ligne 335: | Ligne 344: | ||
@ IN NS debian-serveur.mondomaine.hyp. | @ IN NS debian-serveur.mondomaine.hyp. | ||
debian-serveur IN A 192.168.0.14 | debian-serveur IN A 192.168.0.14 | ||
- | |||
</code> | </code> | ||
Ligne 361: | Ligne 369: | ||
@ IN NS debian-serveur. | @ IN NS debian-serveur. | ||
14 IN PTR debian-serveur.mondomaine.hyp. | 14 IN PTR debian-serveur.mondomaine.hyp. | ||
- | |||
</code> | </code> | ||
Ligne 377: | Ligne 384: | ||
type master; | type master; | ||
file "/etc/bind/db.mondomaine.hyp"; | file "/etc/bind/db.mondomaine.hyp"; | ||
+ | allow-query { any; }; | ||
}; | }; | ||
zone "0.168.192.in-addr.arpa" { | zone "0.168.192.in-addr.arpa" { | ||
Ligne 382: | Ligne 390: | ||
file "/etc/bind/db.192"; | file "/etc/bind/db.192"; | ||
}; | }; | ||
- | |||
</code> | </code> | ||
Ligne 401: | Ligne 408: | ||
forwarders { | forwarders { | ||
- | 192.168.0.1; | + | 192.168.0.14; |
8.8.8.8; | 8.8.8.8; | ||
8.8.4.4; | 8.8.4.4; | ||
Ligne 440: | Ligne 447: | ||
</code> | </code> | ||
- | ==== Vérifier le DNS==== | ||
- | Pour avoir le nom complet : | ||
- | <code root>hostname</code> | ||
- | <code> | ||
- | debian-serveur</code> | ||
- | * Avec nslookup : | + | ====Configurer le serveur Bind au sujet des clients==== |
- | <code root>nslookup</code> | + | |
- | <code>> debian-serveur.mondomaine.hyp | + | |
- | Server: 127.0.0.1 | + | |
- | Address: 127.0.0.1#53 | + | |
- | + | ||
- | Name: debian-serveur.mondomaine.hyp | + | |
- | Address: 192.168.0.14 | + | |
- | > exit</code> | + | |
- | + | ||
- | * Idem pour la zone inverse : | + | |
- | <code root>nslookup</code> | + | |
- | <code>> 192.168.0.14 | + | |
- | Server: 127.0.0.1 | + | |
- | Address: 127.0.0.1#53 | + | |
- | + | ||
- | 14.0.168.192.in-addr.arpa name = debian-serveur.mondomaine.hyp. | + | |
- | > exit</code> | + | |
- | + | ||
- | Il répond aux deux, donc tout va bien ! | + | |
- | + | ||
- | * Avec dig : | + | |
- | <code root>dig debian-serveur</code> | + | |
- | + | ||
- | <code root>dig mondomaine.hyp</code> | + | |
- | + | ||
- | <code root>dig -x @192.168.0.14</code> | + | |
- | ====Interroger le server DNS local au sujet d'un client du réseau ==== | + | ===Éditer le fichier /etc/bind/db.mondomaine.hyp=== |
- | ===Configuration === | + | |
<code root>vim /etc/bind/db.mondomaine.hyp</code> | <code root>vim /etc/bind/db.mondomaine.hyp</code> | ||
<code>; | <code>; | ||
Ligne 493: | Ligne 468: | ||
</code> | </code> | ||
- | Et pour la réserve inverse : | + | ===Éditer le fichier /etc/bind/db.192=== |
<code root>vim /etc/bind/db.192</code> | <code root>vim /etc/bind/db.192</code> | ||
Ligne 515: | Ligne 490: | ||
<code root>/etc/init.d/bind9 restart</code> | <code root>/etc/init.d/bind9 restart</code> | ||
- | ===Vérification=== | + | =====Configurer les clients du réseau===== |
+ | Sur chacun d'eux, il faut configurer les fichiers ci-dessous. | ||
+ | ===Éditer le fichier /etc/host.conf=== | ||
+ | Afin que le serveur bind du réseau local soit interrogé par le client. | ||
+ | |||
+ | <code root>vim /etc/host.conf</code> | ||
+ | <code> | ||
+ | order hosts,bind | ||
+ | multi on | ||
+ | nospoof on</code> | ||
+ | |||
+ | > **''order''** : indique l'ordre des requêtes : ici, d'abord le fichier hosts, puis, en cas d'échec, le serveur de noms qui sera le serveur Bind quand le fichier /etc/resolv.conf aura été modifier pour ce faire. | ||
+ | > **''multi''** mis à **''on''** : plusieurs adresses IP peuvent être associées à un même nom. | ||
+ | > **''nospoof''** : oblige, par sécurité, à vérifier la concordance entre adresse IP et nom lors de la résolution d'adresses inverse. | ||
+ | |||
+ | |||
+ | <note tip>>Le client va lire le fichier **hosts.conf** et rechercher l'adresse correspondant au nom demandé d'abord dans le fichier hosts local ; si la requête échoue, il va s'adresser à Bind, le serveur DNS du réseau local, qui va lui-même demander à des forwarders s'il ne sait pas répondre. Pour qu'il trouve l'adresse de ce serveur DNS, il consulte le fichier **/etc/resolv.conf** qu'il est donc nécessaire de modifier.</note> | ||
+ | |||
+ | ===Editer le fichier /etc/resolv.conf=== | ||
+ | Deux solutions : | ||
+ | |||
+ | * Solution 1 : Installer un script client pour **/etc/resolv.conf** | ||
+ | |||
+ | Ce qui permet là aussi de ne plus être embêté par [[atelier:chantier:dns-bind9-sur-wheezy?&#declarer-un-nom-de-domaine-dans-etc-resolvconf|networkmanager]], mais cette fois il va permettre de renseigner le système client DNS par l'adresse IP du serveur local bind.\\ | ||
+ | |||
+ | <code root>cd /etc/NetworkManager/</code> | ||
+ | |||
+ | <code root>vim /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
+ | |||
+ | <code>#!/bin/sh | ||
+ | echo "domain mondomaine.hyp" > /etc/resolv.conf | ||
+ | echo "search mondomaine.hyp" >> /etc/resolv.conf | ||
+ | echo "nameserver 192.168.0.14" >> /etc/resolv.conf</code> | ||
+ | |||
+ | * Ondonne les droits d'exécution : | ||
+ | <code root>chmod 755 /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
+ | |||
+ | * On exécute le script: | ||
+ | <code root>bash /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
+ | |||
+ | |||
+ | <code user>less /etc/resolv.conf</code> | ||
+ | <code> | ||
+ | domain mondomaine.hyp | ||
+ | search mondomaine.hyp | ||
+ | nameserver 192.168.0.14 | ||
+ | </code> | ||
+ | |||
+ | On fait cela sur tous les systèmes clients du réseau local. | ||
+ | |||
+ | * Solution 2 : **Configurer Network Manager** | ||
+ | |||
+ | En faisant :\\ | ||
+ | -> Système -> Préférences -> Connexions réseau \\ | ||
+ | Puis il faut modifier toutes les connexions que vous avez dans tous les onglets (Filaire, Sans fil, etc…), en faisant, pour chacune d’entre-elles : | ||
+ | |||
+ | - Cliquez sur la connexion à modifier ; | ||
+ | - Bouton "Modifier" ; | ||
+ | - Onglet "Paramètres IPv4" (et aussi IPv6 si vous l’utilisez) ; | ||
+ | - Méthode : Adresses automatiques uniquement (DHCP) ; | ||
+ | - Serveurs DNS : //IP du serveur DNS local// ((Par exemple ici 192.168.0.14)) | ||
+ | |||
+ | Puis appliquez les modifications. | ||
+ | |||
+ | > On peut alors éditer le fichier **/etc/resolv.conf** afin qu'il ressemble à ceci : | ||
+ | |||
+ | <code>domain mondomaine.hyp | ||
+ | search mondomaine.hyp | ||
+ | nameserver 192.168.0.14 | ||
+ | </code> | ||
+ | |||
+ | * Puis recharger la configuration réseau : | ||
+ | |||
+ | <code root>/etc/init.d/networking start</code> | ||
+ | |||
+ | |||
+ | =====Vérifier les relations DNS/clients ===== | ||
+ | ====Vérifier que le serveur DNS se connaisse lui-même==== | ||
+ | Pour avoir le nom complet sur système avec Bind : | ||
+ | <code root>hostname</code> | ||
+ | <code> | ||
+ | debian-serveur</code> | ||
+ | ===Avec nslookup === | ||
+ | * Demander l'adresse associée à un nom d'hôte : | ||
+ | |||
+ | <code root>nslookup</code> | ||
+ | <code>> debian-serveur | ||
+ | Server: 127.0.0.1 | ||
+ | Address: 127.0.0.1#53 | ||
+ | |||
+ | Name: debian-serveur.mondomaine.hyp | ||
+ | Address: 192.168.0.14 | ||
+ | >debian-serveur.mondomaine.hyp | ||
+ | Server: 127.0.0.1 | ||
+ | Address: 127.0.0.1#53 | ||
+ | |||
+ | Name: debian-serveur.mondomaine.hyp | ||
+ | Address: 192.168.0.14 | ||
+ | > exit</code> | ||
+ | |||
+ | * Idem pour la zone inverse, vérifier qu'IP correspond à un hôte: | ||
+ | <code root>nslookup</code> | ||
+ | <code>> 192.168.0.14 | ||
+ | Server: 127.0.0.1 | ||
+ | Address: 127.0.0.1#53 | ||
+ | |||
+ | 14.0.168.192.in-addr.arpa name = debian-serveur.mondomaine.hyp. | ||
+ | > exit</code> | ||
+ | |||
+ | Il répond aux deux, donc tout va bien ! | ||
+ | |||
+ | * Avec dig : | ||
+ | <code root>dig debian-serveur</code> | ||
+ | |||
+ | <code root>dig mondomaine.hyp</code> | ||
+ | |||
+ | <code root>dig -x @192.168.0.14</code> | ||
+ | |||
+ | ====Vérifier que le serveur DNS connaisse les clients==== | ||
<code root>nslookup</code> | <code root>nslookup</code> | ||
Ligne 532: | Ligne 625: | ||
> exit</code> | > exit</code> | ||
- | >Il connaît bien les deux clients. | + | >Il connaît bien les deux clients, soit à partir d'un nom d'hôte, soit à partir d'une adresse IP. |
+ | |||
+ | ====Vérifier que les clients interrogent le DNS local==== | ||
+ | ===Avec la commande host === | ||
+ | <code user>host -a debian-serveur</code> | ||
+ | <code> | ||
+ | Trying "debian-serveur.mondomaine.hyp" | ||
+ | ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787 | ||
+ | ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 | ||
+ | |||
+ | ;; QUESTION SECTION: | ||
+ | ;debian-serveur.mondomaine.hyp. IN ANY | ||
+ | |||
+ | ;; ANSWER SECTION: | ||
+ | debian-serveur.mondomaine.hyp. 604800 IN A 192.168.0.14 | ||
+ | |||
+ | ;; AUTHORITY SECTION: | ||
+ | mondomaine.hyp. 604800 IN NS debian-serveur.mondomaine.hyp. | ||
+ | |||
+ | Received 77 bytes from 192.168.0.14#53 in 0 ms</code> | ||
+ | |||
+ | ===Avec la commande dig === | ||
+ | |||
+ | <code user>dig mondomaine.hyp</code> | ||
+ | <code> | ||
+ | |||
+ | ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> mondomaine.hyp | ||
+ | ;; global options: +cmd | ||
+ | ;; Got answer: | ||
+ | ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12579 | ||
+ | ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 | ||
+ | |||
+ | ;; QUESTION SECTION: | ||
+ | ;mondomaine.hyp. IN A | ||
+ | |||
+ | ;; AUTHORITY SECTION: | ||
+ | mondomaine.hyp. 604800 IN SOA debian-serveur.mondomaine.hyp. root.mondomaine.hyp. 2 604800 86400 2419200 604800 | ||
+ | |||
+ | ;; Query time: 0 msec | ||
+ | ;; SERVER: 192.168.0.14#53(192.168.0.14) | ||
+ | ;; WHEN: Sun Sep 14 09:00:08 2014 | ||
+ | ;; MSG SIZE rcvd: 88</code> | ||
+ | |||
+ | |||
+ | * Avec la réserve : | ||
+ | <code user>dig -x 192.168.0.14</code> | ||
+ | <code> | ||
+ | ; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> -x 192.168.0.14 | ||
+ | ;; global options: +cmd | ||
+ | ;; Got answer: | ||
+ | ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47078 | ||
+ | ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 | ||
+ | |||
+ | ;; QUESTION SECTION: | ||
+ | ;14.0.168.192.in-addr.arpa. IN PTR | ||
+ | |||
+ | ;; ANSWER SECTION: | ||
+ | 14.0.168.192.in-addr.arpa. 604800 IN PTR debian-serveur.mondomaine.hyp. | ||
+ | |||
+ | ;; AUTHORITY SECTION: | ||
+ | 0.168.192.in-addr.arpa. 604800 IN NS debian-serveur. | ||
+ | |||
+ | ;; Query time: 0 msec | ||
+ | ;; SERVER: 192.168.0.14#53(192.168.0.14) | ||
+ | ;; WHEN: Sun Sep 14 09:03:29 2014 | ||
+ | ;; MSG SIZE rcvd: 114</code> | ||
+ | |||
+ | Et voilà 8-) | ||
=====Générer une clé d'authentification avec l'utilitaire rndc===== | =====Générer une clé d'authentification avec l'utilitaire rndc===== | ||
Ligne 631: | Ligne 792: | ||
=====Références==== | =====Références==== | ||
+ | |||
Sur la commande dig : [[http://www.system-linux.eu/index.php?post/2009/04/23/La-commande-dig]] | Sur la commande dig : [[http://www.system-linux.eu/index.php?post/2009/04/23/La-commande-dig]] | ||
Pour la configuration des clients Windows [[http://valaurea.free.fr/documents/sig11_bind9_1.html]] | Pour la configuration des clients Windows [[http://valaurea.free.fr/documents/sig11_bind9_1.html]] | ||
+ | |||
+ | Pour installer et configurer Bind sur une distribution linux à base de RPM [[http://lea-linux.org/documentations/Reseau-name-dns1]] | ||