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 | ||
utilisateurs:hypathie:tutos:dns-bind [31/08/2014 15:29] Hypathie [Générer une clé d'authentification avec l'utilitaire rndc] |
utilisateurs:hypathie:tutos:dns-bind [03/10/2014 08:09] Hypathie [Configurer un server DNS Maître en local sous wheezy] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ======DNS : Bind ====== | + | ======DNS : Bind9 ====== |
- | * Objet : installer et configurer Bind | + | * Objet : installer un server DNS en local bind9 |
* Niveau requis : {{tag>débutant avisé}} | * Niveau requis : {{tag>débutant avisé}} | ||
* Commentaires : //Contexte d'utilisation du sujet du tuto. // | * Commentaires : //Contexte d'utilisation du sujet du tuto. // | ||
Ligne 27: | Ligne 27: | ||
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/resolve.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>**.\\ | + | Cet ordi a donc l'adresse IP d'un DNS, et lui pose la question : "donne moi l'IP de **<nowiki>www.toto.com</nowiki>**.\\ |
- | Si le server sait répondre il lui donne l'IP, s'il ne sait pas il va interroger les serveurs DNS au dessus de lui, TLD, Racine...\\ Quand il a l'adresse, il répond au client qui peut joindre l'ordi de toto.com\\ | + | Si le server sait répondre, il lui donne l'IP, s'il ne sait pas, il va interroger les serveurs DNS au dessus de lui, TLD, Racine...\\ Quand il a l'adresse, il répond au client qui peut joindre l'ordi de toto.com\\ |
===Vocabulaire === | ===Vocabulaire === | ||
Ligne 40: | Ligne 40: | ||
* Serveur secondaire : serveur qui des informations sur une zone à partir d'un serveur primaire et non grâce à sa configuration.\\ | * Serveur secondaire : serveur qui des informations sur une zone à partir d'un serveur primaire et non grâce à sa configuration.\\ | ||
- | * Faire autorité sur un domaine : C'est le fait pour un serveur DNS de répondre directement aux requêtes un domaine, sans passer par un autre serveur ou un cache. Le cache c'est le fichier dans lequel le serveur DNS récursif conserve l'information qu'il a obtenu d'un autre serveur à la suite d'une requête qui lui a été faite par un client.\\ | + | * Faire autorité sur un domaine : C'est le fait pour un serveur DNS de répondre directement aux requêtes d'un domaine, sans passer par un autre serveur ou un cache. Le cache, c'est le fichier dans lequel le serveur DNS récursif conserve l'information qu'il a obtenu d'un autre serveur à la suite d'une requête qui lui a été faite par un client.\\ |
Donc les serveur qui font autorité sur un domaine sont, soit des serveurs primaires, soit des serveurs secondaires s'ils ont une copie de ces informations.\\ | Donc les serveur qui font autorité sur un domaine sont, soit des serveurs primaires, soit des serveurs secondaires s'ils ont une copie de ces informations.\\ | ||
Ligne 52: | Ligne 52: | ||
===/usr/sbin/named=== | ===/usr/sbin/named=== | ||
- | Le programme qui lance le server : | + | Le programme qui lance le server. |
=== /usr/sbin/rndc=== | === /usr/sbin/rndc=== | ||
rndc est un utilitaire de contrôle. | rndc est un utilitaire de contrôle. | ||
+ | |||
+ | <code> | ||
+ | rndc |b source-adress] [-c config-file] [k key-file] [-s serveur] | ||
+ | [-p port] [-V] [-y key-id] {commande} | ||
+ | </code> | ||
+ | -> commandes : | ||
+ | |||
+ | **''reload''** : pour recharger\\ | ||
+ | **''stop''** : arrêter le serveur\\ | ||
+ | **''flush''** : vider le cache\\ | ||
+ | **''status''** : afficher l'état du serveur\\ | ||
+ | **aucune** : liste des commandes utilisables | ||
+ | |||
=== /etc/bind/named.conf=== | === /etc/bind/named.conf=== | ||
Ligne 118: | Ligne 132: | ||
*Nom de la zone dans l'entête ; | *Nom de la zone dans l'entête ; | ||
- | *type (**master** pour primaire ou **slave** pour secondaire ou **int** pour Le programme qui lance le server : /usr/sbin/nracine) ; | + | *type (**master** pour primaire ou **slave** pour secondaire ou **int** pour le programme qui lance le server : /usr/sbin/nracine) ; |
*fichier chemin du fichier de configuration de zone | *fichier chemin du fichier de configuration de zone | ||
*éventuellement des options | *éventuellement des options | ||
Ligne 138: | Ligne 152: | ||
===IP statique=== | ===IP statique=== | ||
* Configurer une IP statique pour le serveur sur lequel on installe bind9. | * 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. | + | Se rendre sur le site de son FAI, et associer l'adresse mac du serveur à son IP dans les BAUX/DHCP. |
===Compléter /etc/hostname === | ===Compléter /etc/hostname === | ||
Ligne 164: | Ligne 178: | ||
192.168.0.22 debian.mondomaine.hyp debian | 192.168.0.22 debian.mondomaine.hyp debian | ||
- | 192.168.0.1 gateway.modomaine.hyp gateway | + | 192.168.0.1 gateway.mondomaine.hyp gateway |
Ligne 174: | Ligne 188: | ||
===Déclarer un nom de domaine dans /etc/resolv.conf=== | ===Déclarer un nom de domaine dans /etc/resolv.conf=== | ||
- | Il faut pour que la configuration ne soit par effacer lors d'un redémarrage, désinstaller networmanager. | + | Il faut déclarer un nom de domaine dans /etc/resolv.conf.\\ |
+ | Au passage on peut indiquer d'autres DNS extérieurs que ceux du FAI.\\ | ||
+ | On va créer un script pour que la nouvelle configuration du fichier /etc/resolv.conf ne soit par effacer lors d'un redémarrage, par **[[https://wiki.debian.org/fr/NetworkManager|NetworkManager]]**.\\ | ||
+ | <note warning> | ||
+ | * Voir :\\ [[https://wiki.debian.org/fr/NetworkConfiguration#Configuration_de_DNS_pour_network-manager]] | ||
- | * Désactiver "networkmanager : | + | * Attention la suppression de NetworkManager déstabilise le système : |
- | <code root>service networking stop</code> | + | |
- | * Sauvegarder la configuration : | + | <code root>apt-get remove --purge network-manager-gnome network-manager</code> |
- | <code root>cp /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.OLD</code> | + | |
- | *Désactiver networkmanager : | + | </note> |
- | <code root>vim /etc/NetworkManager/NetworkManager.conf</code> | + | |
- | <code> | + | |
- | [ifupdown] | + | |
- | managed=true</code> | + | |
- | * Déclarer un nom de domaine dans /etc/resolv.conf: | + | On peut soit éditer le fichier **/etc/resolv.conf**, mais comme le script suivant est nécessaire pour ne pas être embêté par NetworkManager, on va modifier le fichier avec le script. |
- | Il faut éditer le fichier et ajouter les deux premières lignes, en remplaçant "mondomaine.hyp" par le nom choisi.\\ | + | |
- | Pour un serveur DNS cache, il n'est pas nécessaire d'acheté un nom de domaine auprès d'un registre. | + | |
- | <code root>vim /etc/resolv.conf</code> | + | ===Création du script pour networkmanager=== |
- | <code> | + | <code root>cd /etc/NetworkManager/</code> |
- | domain mondomaine.hyp | + | * Création d'un fichier de démarrage : |
+ | |||
+ | <code root>vim /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
+ | >**Adapter le contenu son nom de domaine et à son de choix de forwarder** | ||
+ | |||
+ | <code>#!/bin/sh | ||
+ | echo "domain mondomaine.hyp" > /etc/resolv.conf | ||
+ | echo "search mondomaine.hyp" >> /etc/resolv.conf | ||
+ | echo "nameserver 127.0.0.1" >> /etc/resolv.conf | ||
+ | echo "nameserver 8.8.8.8" >> /etc/resolv.conf | ||
+ | echo "nameserver 8.8.4.4" >> /etc/resolv.conf</code> | ||
+ | >On met après l'instruction ''domain'' le nom de son domaine : il n'est pas nécessaire pour une utilisation locale que ce soit un nom de domaine acheté ou loué auprès un registre de noms de domaine. | ||
+ | >Puis l'instruction ''search'' et son nom de domaine ; | ||
+ | >Puis l'intruction ''nameserver'' suivi de l'IP d'un serveur de nom qui soit interrogeable.\\ Ici ce sont ceux de Google, mais il est peut-être préférable de laisser ceux de son FAI. | ||
+ | >On peut aussi ajouter en dessous de la ligne comportant l'instruction ''search'' : | ||
+ | >''echo nameserver ip-fixe-du-serveur-bind''. | ||
+ | |||
+ | * On donne les droits d'exécution | ||
+ | |||
+ | <code root>chmod 755 /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
+ | |||
+ | * On exécution le script : | ||
+ | |||
+ | <code root>bash /etc/NetworkManager/dispatcher.d/99-dns</code> | ||
+ | |||
+ | * On peut vérifier : | ||
+ | |||
+ | <code root>less /etc/resolv.conf</code> | ||
+ | <code>domain mondomaine.hyp | ||
search mondomaine.hyp | search mondomaine.hyp | ||
nameserver 127.0.0.1 | nameserver 127.0.0.1 | ||
nameserver 8.8.8.8 | nameserver 8.8.8.8 | ||
nameserver 8.8.4.4 | nameserver 8.8.4.4 | ||
- | nameserver 212.27.40.240 | ||
- | nameserver 212.27.40.241 | ||
</code> | </code> | ||
+ | |||
* Redémarrer le réseau : | * Redémarrer le réseau : | ||
<code root>/etc/init.d/networking start</code> | <code root>/etc/init.d/networking start</code> | ||
- | |||
- | <note>Pour revenir en arrière :\\ | ||
- | |||
- | <code root>service networking stop</code> | ||
- | <code root>cp /etc/NetworkManager/NetworkManager.conf.OLD\ | ||
- | /etc/NetworkManager/NetworkManager.conf</code> | ||
- | <code root>service networking start</code> | ||
- | </note> | ||
====Installer et configurer bind ==== | ====Installer et configurer bind ==== | ||
===installation du paquetage=== | ===installation du paquetage=== | ||
<code root> | <code root> | ||
- | apt-get update apt-get | + | apt-get update |
</code> | </code> | ||
Ligne 225: | Ligne 254: | ||
</code> | </code> | ||
- | ===Configuration de bind pour un serveur DNS maître local=== | + | ===Configuration de bind pour un serveur DNS maître en local=== |
<note tip> | <note tip> | ||
__Quelques commandes utiles lors de la configuration de bind9__ : | __Quelques commandes utiles lors de la configuration de bind9__ : | ||
Ligne 409: | Ligne 438: | ||
<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 DNS local sur un client du réseau ==== | ||
Ligne 500: | Ligne 529: | ||
* Générer une clé : | * Générer une clé : | ||
- | <code root>rndc-confgen</code> | + | <code root>rndc-confgen >/etc/bind/rndc.key</code> |
- | <code> | + | |
- | # Start of rndc.conf | + | |
- | key "rndc-key" { | + | |
- | algorithm hmac-md5; | + | |
- | secret "xxxxxxxxxxxxxxxxxxxx"; | + | |
- | }; | + | |
- | options { | + | * Ajouter la nouvelle clé à la fin de /etc/bind/named.conf : |
- | default-key "rndc-key"; | + | <code root>echo 'include "/etc/bind/rndc.key";' >> /etc/bind/named.conf</code> |
- | 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: | + | * Éditer /etc/bind/rndc.key pour commenter toute la fin à partir de ''option {'' : |
- | # key "rndc-key" { | + | |
- | # algorithm hmac-md5; | + | |
- | # secret "xxxxxxxxxxxxxxxxxxxxxx"; | + | |
- | # }; | + | |
- | # | + | |
- | # controls { | + | |
- | # inet 127.0.0.1 port 953 | + | |
- | # allow { 127.0.0.1; } keys { "rndc-key"; }; | + | |
- | # }; | + | |
- | # End of named.conf | + | |
- | </code> | + | |
- | -> Le retour de cette commande a deux parties ;\\ | + | |
- | -> Copier la première partie du retour\\ | + | <code root>vim /etc/bind/rndc.key</code> |
- | dans les fichiers **''/etc/rndc.conf''** et **''/etc/rndc.key''** (qu'il faut créer). | + | |
- | + | ||
- | -> Copier dans **''/etc/named.conf''** la deuxième partie du retour.\\ | + | |
- | + | ||
- | + | ||
- | * Création du fichier **/etc/rndc.conf** et copie de la première partie de la commande "rndc-confgen" : | + | |
- | + | ||
- | <code root>vim /etc/rndc.conf</code> | + | |
<code># Start of rndc.conf | <code># Start of rndc.conf | ||
key "rndc-key" { | key "rndc-key" { | ||
- | algorithm hmac-md5; | + | algorithm hmac-md5; |
- | secret "xxxxxxxxxxxxxxxxxxxxx"; | + | secret "xxxxxxxxxxxxxxxxx"; |
}; | }; | ||
#options { | #options { | ||
- | # default-key "rndc-key"; | + | # default-key "rndc-key"; |
- | # default-server 127.0.0.1; | + | # default-server 127.0.0.1; |
- | # default-port 953; | + | # default-port 953; |
#}; | #}; | ||
- | # End of rndc.conf</code> | + | # End of rndc.conf |
- | *Création de **/etc/rndc.key** et copie de la première partie de la commande "rndc-confgen": | ||
- | <code root>vim /etc/rndc.key</code> | ||
- | |||
- | Création de /etc/named/conf et copie de la deuxième partie du retour : | ||
- | <code root>vim /etc/named.conf</code> | ||
- | <code> | ||
# Use with the following in named.conf, adjusting the allow list as needed: | # Use with the following in named.conf, adjusting the allow list as needed: | ||
- | key "rndc-key" { | + | # key "rndc-key" { |
- | algorithm hmac-md5; | + | # algorithm hmac-md5; |
- | secret "xxxxxxxxxxxxxxxxx"; | + | # secret "xxxxxxxxxxxxxx"; |
- | }; | + | # }; |
+ | # | ||
# controls { | # controls { | ||
- | # inet 127.0.0.1 port 953 | + | # inet 127.0.0.1 port 953 |
- | # allow { 127.0.0.1; } keys { "rndc-key"; }; | + | # allow { 127.0.0.1; } keys { "rndc-key"; }; |
# }; | # }; | ||
# End of named.conf | # End of named.conf | ||
</code> | </code> | ||
+ | ===Configurer les zones qui utilise la clé === | ||
- | ===Configuration de /etc/bind/named.conf === | + | * Éditer /etc/bind/named/conf.local : |
- | <code root>vim /etc/bind/named.conf</code> | + | <code root>vim /etc/bind/named.conf.local</code> |
- | <code> | + | <code>// |
- | include "/etc/bind/named.conf.options"; | + | // Do any local configuration here |
- | include "/etc/bind/named.conf.local"; | + | // |
- | //include "/etc/bind/named.conf.default-zones"; | + | |
- | include "/etc/rndc.key"; | + | |
- | controls { | + | // Consider adding the 1918 zones here, if they are not used in your |
- | inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; }; | + | // 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> | </code> | ||
+ | ===Relancer bind9=== | ||
- | ===Créer /etc/bind/rndc.conf et /etc/bind/rndc.key=== | + | <code root>/etc/init.d/bind9 restart</code> |
- | <code root>cp /etc/rndc.conf /etc/bind/rndc.conf | + | <code>[....] Stopping domain name service...: bind9waiting for pid 5441 to die |
- | </code> | + | |
- | + | ||
- | <code root>cp /etc/rndc.key /etc/bind/rndc.key</code> | + | |
- | + | ||
- | ===Relancer bind === | + | |
- | + | ||
- | <code root>service bind9 restart</code> | + | |
- | <code>[....] Stopping domain name service...: bind9WARNING: key file (/etc/bind/rndc.key) exists, but using default configuration file (/etc/bind/rndc.conf) | + | |
- | rndc: no server specified and no default | + | |
. ok | . ok | ||
- | [ ok ] Starting domain name service...: bind9. | + | [ ok ] Starting domain name service...: bind9.</code> |
- | </code> | + | |
+ | =====Côté client ===== | ||
+ | Se débarrasser [[utilisateurs:hypathie:tutos:dns-bind?&#desactiver-networkmanager|de networkmanager]] avant tout.\\ | ||
- | <note> | + | *Il n'y a qu'un fichier à éditer "/etc/resolv.conf": |
- | *Vérifier la configuration : | + | |
- | + | ||
- | <code root>named-checkconf /etc/named.conf</code> | + | |
- | >Tout est bon, s'il y a retour du prompt. | + | |
- | + | ||
- | </note> | + | |
- | + | ||
- | * Redémarrer le service nommé. | + | |
- | <code root>rndc reload</code> | + | |
- | <note tip> | + | |
- | Pour un server distant\\ | + | |
- | + | ||
- | Utiliser la première partie de la commande **''rndc-confgen''** qui est à copier dans **''rndc.conf''** sur la machine qui lance rndc;\\ | + | |
- | et la deuxième partie cette commande est à copier dans **''named.conf''** sur le serveur distant. | + | |
- | </note> | + | |
+ | <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 : | ||
+ | <code root>/etc/init.d/networking start</code> | ||