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.
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:16] Hypathie créée |
atelier:chantier:dns-bind9-sur-wheezy [14/09/2014 06:57] Hypathie [Configurer un server DNS Maître en local sous wheezy] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
* Création par [[user>Hypathie]] 01/09/2014 | * Création par [[user>Hypathie]] 01/09/2014 | ||
* Testé par <...> le <...> | * Testé par <...> le <...> | ||
- | * Commentaires sur le forum : [[:url-invalide | 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> | echo "nameserver 8.8.4.4" >> /etc/resolv.conf</code> | ||
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 361: | Ligne 364: | ||
8.8.8.8; | 8.8.8.8; | ||
8.8.4.4; | 8.8.4.4; | ||
- | 212.27.40.240; | + | // 212.27.40.240; |
- | 212.27.40.241; | + | // 212.27.40.241; |
}; | }; | ||
Ligne 380: | Ligne 383: | ||
</code> | </code> | ||
- | On peut mettre les forwarders qu'on souhaite, par exemple ici ceux de "boxmachin" fournisseur adsl. | + | On peut mettre les forwarders qu'on souhaite, par exemple ici ceux de google ou/et ceux de "boxmachin", fournisseur adsl. |
- | * redémarrer bind9 : | + | * Redémarrer bind9 : |
<code root>service bind9 restart</code> | <code root>service bind9 restart</code> | ||
Ligne 431: | Ligne 434: | ||
<code root>/code>dig -x @192.168.0.14</code> | <code root>/code>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 492: | ||
> exit</code> | > exit</code> | ||
- | =====Configurer un server DNS Maître en local sous wheezy===== | + | =====Générer une clé d'authentification avec l'utilitaire rndc===== |
- | Il s'agit d'un serveur qui ne fera autorité que sur le réseau local et non 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. | + | |
- | *Soit un server sous Debian Wheezy nommé : "debian-serveur" | + | 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.\\ |
- | *Adresse IP pour "eth0 " du serveur "debian-serveur" : 192.168.0.14 | + | |
- | *Soit un nom de domaine : "mondomaine.hyp" | + | |
- | *Soit un ordi client sur le réseau local : "debian-client" avec l'IP 192.168.0.22 | + | |
- | ====Pré-requis==== | + | |
- | ===IP statique=== | + | |
- | * Configurer une IP statique pour le serveur sur lequel on installe bind9. | + | |
- | Se rendre sur le site de son FAI, et associer l'adresse mac du serveur à l'IP dans les BAUX/DHCP. | + | |
- | ===Compléter /etc/hostname === | + | 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. |
- | <code root>vim /etc/hostname </code> | + | 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. |
- | <code>debian-serveur.mondomaine.hyp</code> | + | |
- | <code root>/etc/init.d/hostname.sh start</code> | + | <note> |
+ | __Remarques sur la configuration de rndc.__\\ | ||
- | ===Compléter /etc/host.conf=== | + | 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**. |
- | <code root>vim /etc/host.conf </code> | + | </note> |
- | <code>order hosts, bind | + | |
- | multi on | + | |
- | </code> | + | |
- | ===Compléter /etc/hosts=== | + | * Dans /etc/bind/ on voit le fichier rndc.key : |
- | + | ||
- | <code root>vim /etc/hosts</code> | + | |
+ | <code root>ls /etc/bind/</code> | ||
<code> | <code> | ||
- | 127.0.0.1 localhost.localdomain localhost | + | bind.keys db.empty named.conf.default-zones zones.rfc1918 |
- | + | db.0 db.local named.conf.local | |
- | 192.168.0.14 serveur-debian.mondomaine.hyp serveur-debian | + | db.127 db.root named.conf.options |
- | 192.168.0.22 debian.mondomaine.hyp debian | + | db.255 named.conf rndc.key |
- | + | ||
- | 192.168.0.1 gateway.modomaine.hyp gateway | + | |
- | + | ||
- | + | ||
- | # The following lines are desirable for IPv6 capable hosts | + | |
- | ::1 localhost ip6-localhost ip6-loopback | + | |
- | ff02::1 ip6-allnodes | + | |
- | ff02::2 ip6-allrouters | + | |
</code> | </code> | ||
- | ===Déclarer un nom de domaine dans /etc/resolv.conf=== | + | <note warning> |
- | If faut déclarer un nom de domaine dans /etc/resolv.conf.\\ | + | **rndc.key ne s'édite pas !** |
- | Au passage on peut indiquer d'autre DNS extérieurs que ceux du FAI.\\ | + | |
- | Il faut pour que la nouvelle configuration du fichier /etc/resolv.conf ne soit par effacer lors d'un redémarrage, par networmanager créer un script.\\ | + | |
- | <note tip> | + | |
- | * Voir : [[https://wiki.debian.org/fr/NetworkConfiguration#Configuration_de_DNS_pour_network-manager]] | + | |
- | + | ||
- | * Attention la suppression de networkmanager déstabilise le système : | + | |
- | + | ||
- | <code root>apt-get remove --purge network-manager-gnome netwok-manager</code> | + | |
</note> | </note> | ||
- | On peut soit éditer le fichier **/etc/resolv.conf**, mais comme le script suivant est nécessaire pour ne pas être embêté par networmanager, on va modifier le fichier avec le script. | + | * Générer une clé : |
- | * Création du script pour networkmanager : | + | <code root>rndc-confgen >/etc/bind/rndc.key</code> |
- | <code root>cd /etc/NetworkManager/</code> | + | |
- | <code root>touch /etc/NetworkManager/dispatcher.d/99-dns</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> | ||
- | <code root>vim /etc/NetworkManager/dispatcher.d/99-dns</code> | + | * Éditer /etc/bind/rndc.key pour commenter toute la fin à partir de ''options {'' : |
- | <code>#!/bin/sh | + | <code root>vim /etc/bind/rndc.key</code> |
- | echo "domain mondomaine.hyp" > /etc/resolv.conf | + | <code># Start of rndc.conf |
- | echo "search mondomaine.hyp" >> /etc/resolv.conf | + | key "rndc-key" { |
- | echo "nameserver 127.0.0.1" >> /etc/resolv.conf | + | algorithm hmac-md5; |
- | echo "nameserver 8.8.8.8" >> /etc/resolv.conf | + | secret "xxxxxxxxxxxxxxxxx"; |
- | echo "nameserver 8.8.4.4" >> /etc/resolv.conf</code> | + | }; |
- | >Adapter le contenu à la configuration | + | #options { |
+ | # default-key "rndc-key"; | ||
+ | # default-server 127.0.0.1; | ||
+ | # default-port 953; | ||
+ | #}; | ||
+ | # End of rndc.conf | ||
- | <code root>chmod 755 /etc/NetworkManager/dispatcher.d/99-dns</code> | + | # Use with the following in named.conf, adjusting the allow list as needed: |
- | + | # key "rndc-key" { | |
- | * Exécution du script : | + | # algorithm hmac-md5; |
- | + | # secret "xxxxxxxxxxxxxx"; | |
- | <code root>bash /etc/NetworkManager/dispatcher.d/99-dns</code> | + | # }; |
- | <code root>less /etc/resolv.conf</code> | + | # |
- | <code>domain mondomaine.hyp | + | # controls { |
- | search mondomaine.hyp | + | # inet 127.0.0.1 port 953 |
- | nameserver 127.0.0.1 | + | # allow { 127.0.0.1; } keys { "rndc-key"; }; |
- | nameserver 8.8.8.8 | + | # }; |
- | nameserver 8.8.4.4 | + | # End of named.conf |
</code> | </code> | ||
+ | ===Configurer les zones qui utilise la clé === | ||
- | * Redémarrer le réseau : | + | * Éditer /etc/bind/named/conf.local : |
- | <code root>/etc/init.d/networking start</code> | ||
- | |||
- | ====Installer et configurer bind ==== | ||
- | ===installation du paquetage=== | ||
- | <code root> | ||
- | apt-get update apt-get | ||
- | </code> | ||
- | |||
- | <code root> | ||
- | apt-get install bind9 | ||
- | </code> | ||
- | |||
- | ===Configuration de bind pour un serveur DNS maître local=== | ||
- | <note tip> | ||
- | __Quelques commandes utiles lors de la configuration de bind9__ : | ||
- | |||
- | * Si la configuration est difficile on peut chercher les erreurs avec les commandes suivantes : | ||
- | <code root>named-checkzone webadonf.lan /etc/bind/db.webadonf.lan</code> | ||
- | <code root>named-checkzone webadonf.lan /etc/bind/db.webadonf.lan.inv</code> | ||
- | <code root>named-checkconf /etc/bind/named.conf</code> | ||
- | <code root>named-checkconf /etc/bind/named.conf.options</code> | ||
- | |||
- | |||
- | *Voir aussi les logs : | ||
- | <code root>tail -30 /var/log/syslog</code> | ||
- | |||
- | </note> | ||
- | |||
- | *Le dossier **/etc/bind/** : | ||
- | |||
- | <code root>cd /etc/bind/ && ls</code> | ||
- | |||
- | <code>bind.keys db.127 db.empty db.root named.conf.default-zones named.conf.options zones.rfc1918 | ||
- | db.0 db.255 db.local named.conf named.conf.local rndc.key | ||
- | </code> | ||
- | |||
- | * Créer le fichier "**/etc/bind/db.mondomaine.hyp**" : | ||
- | |||
- | Prendre le fichier /etc/bind/db.local pour modèle. | ||
- | |||
- | <code root>cp /etc/bind/db.local /etc/bind/db.mondomaine.hyp</code> | ||
- | |||
- | Éditer "/etc/bind/db.mondomaine.hyp" : | ||
- | |||
- | <code root>vim /etc/bind/db.mondomaine.hyp</code> | ||
- | <code> | ||
- | ; | ||
- | ; BIND data file for local loopback interface | ||
- | ; | ||
- | $TTL 604800 | ||
- | @ IN SOA debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( | ||
- | 2 ; Serial | ||
- | 604800 ; Refresh | ||
- | 86400 ; Retry | ||
- | 2419200 ; Expire | ||
- | 604800 ) ; Negative Cache TTL | ||
- | ; | ||
- | @ IN NS debian-serveur.mondomaine.hyp. | ||
- | debian-serveur IN A 192.168.0.14 | ||
- | |||
- | </code> | ||
- | |||
- | * Créer le fichier de recherche inverse "**db.mondomaine.hyp.inv**" : | ||
- | |||
- | Prendre pour modèle /etc/bind/db.127 | ||
- | |||
- | <code root>cp /etc/bind/db.127 /etc/bind/db.192</code> | ||
- | |||
- | Éditer "/etc/bind/db.192" : | ||
- | |||
- | <code root>vim /etc/bind/db.192</code> | ||
- | <code> | ||
- | ; | ||
- | ; BIND reverse data file for eth0 interface | ||
- | ; | ||
- | $TTL 604800 | ||
- | @ IN SOA debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( | ||
- | 1 ; Serial | ||
- | 604800 ; Refresh | ||
- | 86400 ; Retry | ||
- | 2419200 ; Expire | ||
- | 604800 ) ; Negative Cache TTL | ||
- | ; | ||
- | @ IN NS debian-serveur. | ||
- | 14 IN PTR debian-serveur.mondomaine.hyp. | ||
- | |||
- | </code> | ||
- | |||
- | * Configurer le fichier "/etc/bind/named.conf.local" : | ||
<code root>vim /etc/bind/named.conf.local</code> | <code root>vim /etc/bind/named.conf.local</code> | ||
- | <code> | + | <code>// |
- | // | + | |
// Do any local configuration here | // Do any local configuration here | ||
// | // | ||
Ligne 682: | Ligne 571: | ||
type master; | type master; | ||
file "/etc/bind/db.mondomaine.hyp"; | file "/etc/bind/db.mondomaine.hyp"; | ||
+ | allow-update {key rndc-key;}; | ||
}; | }; | ||
zone "0.168.192.in-addr.arpa" { | zone "0.168.192.in-addr.arpa" { | ||
type master; | type master; | ||
file "/etc/bind/db.192"; | file "/etc/bind/db.192"; | ||
+ | allow-update {key rndc-key;}; | ||
}; | }; | ||
- | |||
</code> | </code> | ||
- | * Configurer "/etc/bind/named.conf.options" : | + | ===Relancer bind9=== |
- | <code root>vim /etc/bind/named.conf.options</code> | + | |
- | <code> | + | |
- | options { | + | |
- | directory "/var/cache/bind"; | + | |
- | + | ||
- | // If there is a firewall between you and nameservers you want | + | |
- | // to talk to, you may need to fix the firewall to allow multiple | + | |
- | // ports to talk. See http://www.kb.cert.org/vuls/id/800113 | + | |
- | + | ||
- | // If your ISP provided one or more IP addresses for stable | + | |
- | // nameservers, you probably want to use them as forwarders. | + | |
- | // Uncomment the following block, and insert the addresses replacing | + | |
- | // the all-0's placeholder. | + | |
- | + | ||
- | forwarders { | + | |
- | 192.168.0.1; | + | |
- | 8.8.8.8; | + | |
- | 8.8.4.4; | + | |
- | // 212.27.40.240; | + | |
- | // 212.27.40.241; | + | |
- | }; | + | |
- | + | ||
- | //======================================================================== | + | |
- | // If BIND logs error messages about the root key being expired, | + | |
- | // you will need to update your keys. See https://www.isc.org/bind-keys | + | |
- | //======================================================================== | + | |
- | dnssec-validation auto; | + | |
- | + | ||
- | auth-nxdomain no; # conform to RFC1035 | + | |
- | version none; | + | |
- | forward only; | + | |
- | // listen-on-v6 { any; }; | + | |
- | }; | + | |
- | + | ||
- | + | ||
- | </code> | + | |
- | + | ||
- | On peut mettre les forwarders qu'on souhaite, par exemple ici ceux de google et/ou ceux de "boxmachin" fournisseur adsl. | + | |
- | + | ||
- | * Redémarrer bind9 : | + | |
- | + | ||
- | <code root>service bind9 restart</code> | + | |
- | + | ||
- | ou | + | |
<code root>/etc/init.d/bind9 restart</code> | <code root>/etc/init.d/bind9 restart</code> | ||
- | <code> | + | <code>[....] Stopping domain name service...: bind9waiting for pid 5441 to die |
- | [....] Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#953: connection refused | + | |
. ok | . ok | ||
- | [ ok ] Starting domain name service...: bind9. | + | [ ok ] Starting domain name service...: bind9.</code> |
- | + | ||
- | </code> | + | |
- | + | ||
- | ==== Vérifier le DNS==== | + | |
- | Pour avoir le nom complet : | + | |
- | <code root>hostname</code> | + | |
- | <code> | + | |
- | debian-serveur.mondomaine.hyp</code> | + | |
- | + | ||
- | * Avec nslookup : | + | |
- | <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>/code>dig -x @192.168.0.14</code> | + | |
- | + | ||
- | ====Interroger le DNS local sur un client du réseau ==== | + | |
- | ===Configuration === | + | |
- | <code root>vim /etc/bind/db.mondomaine.hyp</code> | + | |
- | <code>; | + | |
- | ; BIND data file for local loopback interface | + | |
- | ; | + | |
- | $TTL 604800 | + | |
- | @ IN SOA debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( | + | |
- | 2 ; Serial | + | |
- | 604800 ; Refresh | + | |
- | 86400 ; Retry | + | |
- | 2419200 ; Expire | + | |
- | 604800 ) ; Negative Cache TTL | + | |
- | ; | + | |
- | @ IN NS debian-serveur.mondomaine.hyp. | + | |
- | debian-serveur IN A 192.168.0.14 | + | |
- | debian-client1 IN A 192.168.0.22 | + | |
- | </code> | + | |
- | + | ||
- | Et pour la réserve inverse : | + | |
- | + | ||
- | <code root>vim /etc/bind/db.192</code> | + | |
- | <code>; | + | |
- | ; BIND reverse data file for eth0 interface | + | |
- | ; | + | |
- | $TTL 604800 | + | |
- | @ IN SOA debian-serveur.mondomaine.hyp. root.mondomaine.hyp. ( | + | |
- | 1 ; Serial | + | |
- | 604800 ; Refresh | + | |
- | 86400 ; Retry | + | |
- | 2419200 ; Expire | + | |
- | 604800 ) ; Negative Cache TTL | + | |
- | ; | + | |
- | @ IN NS debian-serveur. | + | |
- | 14 IN PTR debian-serveur.mondomaine.hyp. | + | |
- | 22 IN PTR debian-client1. | + | |
- | </code> | + | |
- | + | ||
- | On recharge bind : | + | |
- | <code root>/etc/init.d/bind9 restart</code> | + | |
- | + | ||
- | ===Vérification=== | + | |
- | <code root>nslookup</code> | + | |
- | + | ||
- | <code> | + | |
- | > debian-client1 | + | |
- | Server: 127.0.0.1 | + | |
- | Address: 127.0.0.1#53 | + | |
- | + | ||
- | Name: debian-client1.mondomaine.hyp | + | |
- | Address: 192.168.0.22 | + | |
- | > 192.168.0.22 | + | |
- | Server: 127.0.0.1 | + | |
- | Address: 127.0.0.1#53 | + | |
- | + | ||
- | 22.0.168.192.in-addr.arpa name = debian-client1. | + | |
- | > exit</code> | + | |
=====Côté client ===== | =====Côté client ===== | ||
- | Se débarrasser [[utilisateurs:hypathie:tutos:dns-bind?&#desactiver-networkmanager|de networkmanager]] avant tout.\\ | + | Installer le script pour networkmanager [[atelier:chantier:dns-bind9-sur-wheezy?&#declarer-un-nom-de-domaine-dans-etc-resolvconf|networkmanager]] avant tout.\\ |
- | *Il n'y a qu'un fichier à éditer "/etc/resolv.conf": | ||
- | |||
- | <code root>vim /etc/resolv.conf</code> | ||
- | |||
- | <code> | ||
- | domaine mondomaine.hyp | ||
- | search mondomaine.hyp | ||
- | nameserver 192.168.0.14 | ||
- | </code> | ||
* Puis recharger la configuration réseau : | * Puis recharger la configuration réseau : |