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 Prochaine révision Les deux révisions suivantes | ||
atelier:chantier:dns-bind9-sur-wheezy [01/09/2014 09:22] Hypathie [Configurer un server DNS Maître en local sous wheezy] |
atelier:chantier:dns-bind9-sur-wheezy [14/09/2014 09:37] Hypathie [Côté client] |
||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
* 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 !)) | ||
+ | |||
+ | Source : [[http://archil.fr/Doc_install_BIND.html]] | ||
===== Introduction au DNS===== | ===== Introduction au DNS===== | ||
====Quelques bases sur les servers DNS ==== | ====Quelques bases sur les servers DNS ==== | ||
Ligne 142: | Ligne 144: | ||
=====Configurer un server DNS Maître en local sous wheezy===== | =====Configurer un server DNS Maître en local sous wheezy===== | ||
- | Il s'agit d'un serveur qui ne fera autorité que sur le réseau local et non sur aucune autre zone.\\ | + | Il s'agit d'un serveur qui ne fera autorité que sur le réseau local et sur aucune autre zone.\\ |
Il va s'occuper d'aller chercher les infos sur des forwarders ou des serveurs racine ... et de les stoker dans son cache. | Il va s'occuper d'aller chercher les infos sur des forwarders ou des serveurs racine ... et de les stoker dans son cache. | ||
Ligne 157: | Ligne 159: | ||
<code root>vim /etc/hostname </code> | <code root>vim /etc/hostname </code> | ||
- | <code>debian-serveur.mondomaine.hyp</code> | + | <code>debian-serveur</code> |
<code root>/etc/init.d/hostname.sh start</code> | <code root>/etc/init.d/hostname.sh start</code> | ||
Ligne 198: | Ligne 200: | ||
<code root>apt-get remove --purge network-manager-gnome netwok-manager</code> | <code root>apt-get remove --purge network-manager-gnome netwok-manager</code> | ||
+ | |||
+ | * Il est possible aussi de 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 : 127.0.0.1 ((on aussi mettre l'IP du serveur DNS local par exemple ici 192.168.0.14)) | ||
+ | |||
+ | Puis appliquez les modifications. Si la connexion est partagée entre tous les utilisateurs, un mot de passe administrateur vous sera demandé. | ||
</note> | </note> | ||
Ligne 212: | Ligne 227: | ||
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 127.0.0.1" >> /etc/resolv.conf | ||
+ | echo "nameserver 192.168.0.14" >> /etc/resolv.conf | ||
echo "nameserver 8.8.8.8" >> /etc/resolv.conf | echo "nameserver 8.8.8.8" >> /etc/resolv.conf | ||
- | echo "nameserver 8.8.4.4" >> /etc/resolv.conf</code> | + | cho "nameserver 8.8.4.4" >> /etc/resolv.conf</code> |
- | + | >Adapter le contenu selon le choix de votre forwarder, ici 8.8.8.8 et 8.8.4.4 sont les DNS de Google. | |
- | >Adapter le contenu à la configuration | + | |
<code root>chmod 755 /etc/NetworkManager/dispatcher.d/99-dns</code> | <code root>chmod 755 /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
Ligne 226: | Ligne 241: | ||
search mondomaine.hyp | search mondomaine.hyp | ||
nameserver 127.0.0.1 | nameserver 127.0.0.1 | ||
+ | nameserver 192.168.0.14 | ||
nameserver 8.8.8.8 | nameserver 8.8.8.8 | ||
nameserver 8.8.4.4 | nameserver 8.8.4.4 | ||
Ligne 238: | Ligne 254: | ||
===installation du paquetage=== | ===installation du paquetage=== | ||
<code root> | <code root> | ||
- | apt-get update apt-get | + | apt-get update |
</code> | </code> | ||
Ligne 401: | Ligne 417: | ||
<code root>hostname</code> | <code root>hostname</code> | ||
<code> | <code> | ||
- | debian-serveur.mondomaine.hyp</code> | + | debian-serveur</code> |
* Avec nslookup : | * Avec nslookup : | ||
Ligne 429: | Ligne 445: | ||
<code root>dig mondomaine.hyp</code> | <code root>dig mondomaine.hyp</code> | ||
- | <code root>/code>dig -x @192.168.0.14</code> | + | <code root>dig -x @192.168.0.14</code> |
- | ====Interroger le DNS local sur un client du réseau ==== | + | ====Interroger le server DNS local au sujet d'un client du réseau ==== |
===Configuration === | ===Configuration === | ||
<code root>vim /etc/bind/db.mondomaine.hyp</code> | <code root>vim /etc/bind/db.mondomaine.hyp</code> | ||
Ligne 489: | Ligne 505: | ||
> exit</code> | > exit</code> | ||
+ | =====Générer une clé d'authentification avec l'utilitaire rndc===== | ||
+ | |||
+ | Cet utilitaire permet d'administrer notre serveur. Après l'installation de Bind, la première chose à faire est de configurer rndc, ce qui consiste à configurer une clé d'authentification relative à la configuration de son réseau local.\\ | ||
+ | |||
+ | BIND contient un utilitaire appelé rndc qui permet d'utiliser des lignes de commande pour administrer le démon named à partir de l'hôte local ou d'un hôte distant. | ||
+ | |||
+ | Afin d'empêcher l'accès non-autorisé au démon named, BIND utilise une méthode d'authentification à clé secrète partagée pour accorder des privilèges aux hôtes. Ainsi, une clé identique doit être présente aussi bien dans /etc/named.conf que dans le fichier de configuration de rndc, à savoir /etc/rndc.conf. | ||
+ | |||
+ | <note> | ||
+ | __Remarques sur la configuration de rndc.__\\ | ||
+ | |||
+ | Pour utiliser rmdc à distance mettre sur la machine qui génère rndc les info données en sortie par la commande rndc-confgen à mettre dans **rndc.conf** et sur le serveur distant les infos à mettre dans **named.conf**. | ||
+ | |||
+ | </note> | ||
+ | |||
+ | * Dans /etc/bind/ on voit le fichier rndc.key : | ||
+ | |||
+ | <code root>ls /etc/bind/</code> | ||
+ | <code> | ||
+ | bind.keys db.empty named.conf.default-zones zones.rfc1918 | ||
+ | db.0 db.local named.conf.local | ||
+ | db.127 db.root named.conf.options | ||
+ | db.255 named.conf rndc.key | ||
+ | </code> | ||
+ | |||
+ | <note warning> | ||
+ | **rndc.key ne s'édite pas !** | ||
+ | </note> | ||
+ | |||
+ | * Générer une clé : | ||
+ | |||
+ | <code root>rndc-confgen >/etc/bind/rndc.key</code> | ||
+ | |||
+ | * Indiquer le fichier rndc.key à la fin de /etc/bind/named.conf : | ||
+ | <code root>echo 'include "/etc/bind/rndc.key";' >> /etc/bind/named.conf</code> | ||
+ | |||
+ | * Éditer /etc/bind/rndc.key pour commenter toute la fin à partir de ''options {'' : | ||
+ | <code root>vim /etc/bind/rndc.key</code> | ||
+ | <code># Start of rndc.conf | ||
+ | key "rndc-key" { | ||
+ | algorithm hmac-md5; | ||
+ | secret "xxxxxxxxxxxxxxxxx"; | ||
+ | }; | ||
+ | |||
+ | #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-md5; | ||
+ | # secret "xxxxxxxxxxxxxx"; | ||
+ | # }; | ||
+ | # | ||
+ | # controls { | ||
+ | # inet 127.0.0.1 port 953 | ||
+ | # allow { 127.0.0.1; } keys { "rndc-key"; }; | ||
+ | # }; | ||
+ | # End of named.conf | ||
+ | </code> | ||
+ | |||
+ | ===Configurer les zones qui utilise la clé === | ||
+ | |||
+ | * Éditer /etc/bind/named/conf.local : | ||
+ | |||
+ | <code root>vim /etc/bind/named.conf.local</code> | ||
+ | <code>// | ||
+ | // Do any local configuration here | ||
+ | // | ||
+ | |||
+ | // Consider adding the 1918 zones here, if they are not used in your | ||
+ | // organization | ||
+ | //include "/etc/bind/zones.rfc1918"; | ||
+ | zone "mondomaine.hyp" { | ||
+ | type master; | ||
+ | file "/etc/bind/db.mondomaine.hyp"; | ||
+ | allow-update {key rndc-key;}; | ||
+ | }; | ||
+ | zone "0.168.192.in-addr.arpa" { | ||
+ | type master; | ||
+ | file "/etc/bind/db.192"; | ||
+ | allow-update {key rndc-key;}; | ||
+ | }; | ||
+ | </code> | ||
+ | |||
+ | ===Relancer bind9=== | ||
+ | |||
+ | <code root>/etc/init.d/bind9 restart</code> | ||
+ | |||
+ | <code>[....] Stopping domain name service...: bind9waiting for pid 5441 to die | ||
+ | . ok | ||
+ | [ ok ] Starting domain name service...: bind9.</code> | ||
=====Côté client ===== | =====Côté client ===== | ||
- | Se débarrasser [[utilisateurs:hypathie:tutos:dns-bind?&#desactiver-networkmanager|de networkmanager]] avant tout.\\ | ||
- | *Il n'y a qu'un fichier à éditer "/etc/resolv.conf": | + | * Éditer /etc/hosts.conf : |
+ | Afin que le serveur bind du réseau local soit interrogé par le client. | ||
- | <code root>vim /etc/resolv.conf</code> | + | <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 | ||
+ | > **''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. | ||
+ | |||
+ | * Installer un script client pour **/etc/resolv.conf** : | ||
+ | Là aussi pour ne plus être embêté par [[atelier:chantier:dns-bind9-sur-wheezy?&#declarer-un-nom-de-domaine-dans-etc-resolvconf|networkmanager]], on peut éditer un script avec l'adresse IP du serveur local bind mais sans forwarder.\\ | ||
+ | |||
+ | <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>#!/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> | ||
+ | |||
+ | <code root>bash /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
+ | <code user>less /etc/resolv.conf</code> | ||
<code> | <code> | ||
- | domaine mondomaine.hyp | + | domain mondomaine.hyp |
- | search mondomaine.hyp | + | search mondomaine.hyp |
nameserver 192.168.0.14 | nameserver 192.168.0.14 | ||
</code> | </code> | ||
+ | |||
+ | >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. Pour qu'il trouve l'adresse de ce serveur DNS, un deuxième fichier est nécessaire, **/etc/resolv.conf**. | ||
* Puis recharger la configuration réseau : | * Puis recharger la configuration réseau : | ||
+ | |||
<code root>/etc/init.d/networking start</code> | <code root>/etc/init.d/networking start</code> | ||
+ | |||
+ | * Vérifier que le client interroge le DNS local : | ||
+ | |||
+ | <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> | ||
+ | |||
+ | * Ou avec 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> | ||
+ | |||
+ | |||
+ | Sur la commande dig : [[http://www.system-linux.eu/index.php?post/2009/04/23/La-commande-dig]] | ||