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:24] Hypathie [Configurer un server DNS Maître en local sous wheezy] |
atelier:chantier:dns-bind9-sur-wheezy [14/09/2014 08:19] 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 212: | Ligne 214: | ||
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 228: | ||
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 241: | ||
===installation du paquetage=== | ===installation du paquetage=== | ||
<code root> | <code root> | ||
- | apt-get update apt-get | + | apt-get update |
</code> | </code> | ||
Ligne 401: | Ligne 404: | ||
<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 432: | ||
<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 server DNS local au sujet d'un client du réseau ==== | ====Interroger le server DNS local au sujet d'un client du réseau ==== | ||
Ligne 489: | Ligne 492: | ||
> 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/hosts.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 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> | ||