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 | ||
utilisateurs:hypathie:tutos:dns-bind [31/08/2014 11:58] Hypathie [Configurer un server DNS Maître en local sous wheezy] |
utilisateurs:hypathie:tutos:dns-bind [31/08/2014 16:31] Hypathie [Générer une clé d'authentification avec l'utilitaire rndc] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
===== Introduction au DNS===== | ===== Introduction au DNS===== | ||
- | ====Quelques bases ==== | + | ====Quelques bases au DNS ==== |
- | ===Le DNS === | + | |
DNS permet une correspondance entre nom d'hôte (FQDN) et adresse IP.\\ | DNS permet une correspondance entre nom d'hôte (FQDN) et adresse IP.\\ | ||
Principe de hiérarchie :\\ | Principe de hiérarchie :\\ | ||
Ligne 44: | Ligne 44: | ||
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.\\ | ||
- | ====Bind ==== | + | ====Composants de bind 9 ==== |
- | Berkeley Internet Name Daemon | + | bind : Berkeley Internet Name Daemon |
Version 9 : stable, sécurisée est celle dont il s'agit . | Version 9 : stable, sécurisée est celle dont il s'agit . | ||
Ligne 51: | Ligne 51: | ||
(Version 10 depuis 2013 intègre le DHCP.) | (Version 10 depuis 2013 intègre le DHCP.) | ||
- | ===Composants === | + | ===/usr/sbin/named=== |
+ | Le programme qui lance le server. | ||
- | *Le programme qui lance le server : /usr/sbin/named\\ | + | === /usr/sbin/rndc=== |
+ | rndc est un utilitaire de contrôle. | ||
- | *L'utilitaire de contrôle : /usr/sbin/rndc\\ | + | <code> |
+ | rndc |b source-adress] [-c config-file] [k key-file] [-s serveur] | ||
+ | [-p port] [-V] [-y key-id] {commande} | ||
+ | </code> | ||
+ | -> commandes : | ||
- | *Le fichier de configuration centrale : **/etc/bind/named.conf**\\ Il peut se trouver dans différents dossiers (sécurité, chroot) par exemple dans /etc/named.conf ou /etc/\\ | + | **''reload''** : pour recharger\\ |
+ | **''stop''** : arrêter le serveur\\ | ||
+ | **''flush''** : vider le cache\\ | ||
+ | **''status''** : afficher l'état du serveur\\ | ||
+ | **aucune** : liste des commandes utilisables | ||
- | *On peut externaliser certaines points de configuration de ce fichier central dans des fichiers;\\ **/etc/bind/named.conf.local**\\ **/etc/bind/named.conf.options** | ||
- | *Il y a un init script : /etc/init.d/bind. | + | === /etc/bind/named.conf=== |
+ | C'est le fichier de configuration centrale de bind.\\ | ||
+ | Il peut se trouver dans différents dossiers (sécurité, chroot) par exemple dans /etc/named.conf ou /etc/\\ | ||
+ | |||
+ | On peut externaliser certaines points de configuration de ce fichier central dans des fichiers;\\ **/etc/bind/named.conf.local**\\ **/etc/bind/named.conf.options** | ||
+ | |||
+ | ===/etc/init.d/bind=== | ||
+ | Ils 'agit d'un init script qui permet de redémarrer bind : | ||
+ | |||
+ | <code root>/etc/init.d/bind9 restart</code> | ||
- | *Un répertoire de travail : /var/named/ | ||
- | Dans le dossier **/etc/bind/**, il y a "named.conf" ..., ainsi que des fichiers commençant par **''db''** qui sont les fichiers de configuration de zones. | + | === /var/named/ === |
+ | Il s'agit d'un répertoire de travail. | ||
- | ===Syntaxe des fichiers de configuration === | + | ====Syntaxe des fichiers de configuration ==== |
(named.conf, named.conf.local, named.conf.options, etc.) | (named.conf, named.conf.local, named.conf.options, etc.) | ||
- | Toujours un point virgule pour finir une instruction. | + | * Toujours un point virgule pour finir une instruction. |
* __Instruction entre accolades :__ | * __Instruction entre accolades :__ | ||
Ligne 93: | Ligne 111: | ||
//Souvent dans le fichier "named.conf.options//.\\ | //Souvent dans le fichier "named.conf.options//.\\ | ||
- | |||
- | __Une seule instruction par named.conf__. | ||
Dans l'instruction "option" du fichier named.conf.options, on peut donner les instructions suivantes: | Dans l'instruction "option" du fichier named.conf.options, on peut donner les instructions suivantes: | ||
Ligne 104: | Ligne 120: | ||
|version | version du serveur à afficher quand le serveur est interrogé| version none ; | | |version | version du serveur à afficher quand le serveur est interrogé| version none ; | | ||
- | ===L'instruction logging === | ||
- | |||
- | L'instruction logging permet de modifier les comportements par défaut pour chaque catégorie. | ||
- | |||
- | Une catégorie est un type d'information à logger (security, lame-server, cname...).\\ | ||
- | On associe une "chaîne (channel) à la catégorie pour indiquer la sortie vers laquelle il envoie ses réponses ("null" : pas d'information ; "default-syslog" : comportement du système.\\ | ||
- | |||
- | Un seul logging par named.conf. | ||
- | <code> | ||
- | logging { | ||
- | category cat { channel; }; | ||
- | ... | ||
- | }; | ||
- | </code> | ||
- | -> la configuration par défaut est bonne, il n'y a pas à modifier. On peut mettre cela dans un fichier extérieur à bind.conf | ||
===L'instruction zones=== | ===L'instruction zones=== | ||
Ligne 495: | Ligne 496: | ||
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**. | 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**. | ||
- | * La commande rndc : | ||
- | |||
- | <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\\ | ||
- | **''start''** : /etc/init.d/bind9 start | ||
- | **aucune** : liste des commandes utilisables | ||
</note> | </note> | ||
Ligne 527: | Ligne 514: | ||
* 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>tail /etc/bind/rndc.key >> 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/named.conf: |
- | # key "rndc-key" { | + | <code root>vim /etc/bind/named.conf</code> |
- | # algorithm hmac-md5; | + | <code>include "/etc/bind/named.conf.options"; |
- | # secret "xxxxxxxxxxxxxxxxxxxxxx"; | + | include "/etc/bind/named.conf.local"; |
- | # }; | + | //include "/etc/bind/named.conf.default-zones"; |
- | # | + | |
- | # 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 de "# Start of rndc.conf" à "# End of rndc.conf"\\ | + | |
- | dans les fichiers **''/etc/rndc.conf''** et **''/etc/rndc.key''** (qu'il faut créer). | + | |
- | + | ||
- | -> Copier dans **''/etc/named.conf''** les directives entre "# Use with the following in named.conf, adjusting the allow list as needed:" et "# End of named.conf".\\ Bien sûr il faut dé-commenter en enlevant "#".\\ | + | |
- | + | ||
- | + | ||
- | * 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 | + | |
- | key "rndc-key" { | + | |
- | algorithm hmac-md5; | + | |
- | secret "xxxxxxxxxxxxxxxxxxxxx"; | + | |
- | }; | + | |
- | + | ||
- | options { | + | |
- | default-key "rndc-key"; | + | |
- | default-server 127.0.0.1; | + | |
- | default-port 953; | + | |
- | }; | + | |
- | # End of rndc.conf</code> | + | |
- | + | ||
- | *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: | + | |
key "rndc-key" { | key "rndc-key" { | ||
algorithm hmac-md5; | algorithm hmac-md5; | ||
- | secret "xxxxxxxxxxxxxxxxx"; | + | secret "HnKmxWg2p6U0t6Ov+qoM8A=="; |
}; | }; | ||
Ligne 597: | Ligne 536: | ||
</code> | </code> | ||
- | <note> | + | * Éditer /etc/bind/rndc.key : |
- | *Vérifier la configuration : | + | <code root>vim /etc/bind/rndc.key</code> |
+ | <code># Start of rndc.conf | ||
+ | key "rndc-key" { | ||
+ | algorithm hmac-md5; | ||
+ | secret "HnKmxWg2p6U0t6Ov+qoM8A=="; | ||
+ | }; | ||
- | <code root>named-checkconf /etc/named.conf<code> | + | #options { |
- | >Tout est bon, s'il y a retour du prompt. | + | # default-key "rndc-key"; |
+ | # default-server 127.0.0.1; | ||
+ | # default-port 953; | ||
+ | #}; | ||
+ | # End of rndc.conf | ||
- | Et | + | # Use with the following in named.conf, adjusting the allow list as needed: |
+ | # key "rndc-key" { | ||
+ | # algorithm hmac-md5; | ||
+ | # secret "HnKmxWg2p6U0t6Ov+qoM8A=="; | ||
+ | # }; | ||
+ | # | ||
+ | # controls { | ||
+ | # inet 127.0.0.1 port 953 | ||
+ | # allow { 127.0.0.1; } keys { "rndc-key"; }; | ||
+ | # }; | ||
+ | # End of named.conf | ||
+ | </code> | ||
- | <code root>named-checkconf /etc/named.conf<code> | + | ===Configurer les zones qui utilise la clé === |
- | >Là aussi, retour du prompt. | + | |
- | </note> | + | |
- | * Redémarrer le service nommé. | + | * Éditer /etc/bind/named/conf.local : |
- | <code root>rndc reload</code> | + | |
- | ===Configuration de /etc/bind/named.conf === | + | <code root>vim /etc/bind/named.conf.local</code> |
- | + | <code>// | |
- | <code root>vim /etc/bind/named.conf</code> | + | // Do any local configuration here |
- | <code> | + | |
- | // This is the primary configuration file for the BIND DNS server named. | + | |
// | // | ||
- | // Please read /usr/share/doc/bind9/README.Debian.gz for information on the | ||
- | // structure of BIND configuration files in Debian, *BEFORE* you customize | ||
- | // this configuration file. | ||
- | // | ||
- | // If you are just adding zones, please do that in /etc/bind/named.conf.local | ||
- | include "/etc/bind/named.conf.options"; | + | // Consider adding the 1918 zones here, if they are not used in your |
- | include "/etc/bind/named.conf.local"; | + | // organization |
- | include "/etc/bind/named.conf.default-zones"; | + | //include "/etc/bind/zones.rfc1918"; |
- | include "/etc/rndc.key"; | + | zone "mondomaine.hyp" { |
- | + | type master; | |
- | controls { | + | file "/etc/bind/db.mondomaine.hyp"; |
- | inet 127.0.0.1 allow { localhost; } keys { "xxxxxxxxxxxxx"; }; | + | 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 bind : | ||
- | <code root>service bind9 restart</code> | + | ===Relancer bind9=== |
+ | <code root>/etc/init.d/bind9 restart</code> | ||
+ | <code>[....] Stopping domain name service...: bind9rndc: connection to remote host closed | ||
+ | This may indicate that | ||
+ | * the remote server is using an older version of the command protocol, | ||
+ | * this host is not authorized to connect, | ||
+ | * the clocks are not synchronized, or | ||
+ | * the key is invalid. | ||
+ | waiting for pid 4979 to die | ||
+ | . ok | ||
+ | [ ok ] Starting domain name service...: bind9.</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> | ||
- | |||
- | |||
- | |||
- | ===== Configuration de bind en cache only ===== | ||
- | |||
- | ===Éditer le fichier /etc/bind/named.conf=== | ||
- | Il faut commenter la ligne **''include "/etc/bind/named.conf/example-zone";''**.\\ | ||
- | Ainsi il ne fait autorité que la zone locale 127.0.0. | ||
- | <code>vim /etc/bind/named.conf</code> | ||
- | <code>// This is the primary configuration file for the BIND DNS server named. | ||
- | // | ||
- | // Please read /usr/share/doc/bind9/README.Debian.gz for information on the | ||
- | // structure of BIND configuration files in Debian, *BEFORE* you customize | ||
- | // this configuration file. | ||
- | // | ||
- | // If you are just adding zones, please do that in /etc/bind/named.conf.local | ||
- | |||
- | include "/etc/bind/named.conf.options"; | ||
- | include "/etc/bind/named.conf.local"; | ||
- | //include "/etc/bind/named.conf.default-zones"; | ||
- | </code> | ||
- | |||
- | >On voit dans ce fichier le différents fichiers de configuration. | ||
- | > Il n'y a pas à modifier /etc/bind/named.con.default-zone. | ||
- | |||
- | ===Éditer le fichier /etc/bind/named.conf.options=== | ||
- | Pour ajouter l'indication "forwarder only". | ||
- | |||
- | <code root>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 aussi les serveur DNS de google "8.8.8.8" et "8.8.4.4". | ||
- | |||
- | ===Mettre l'adresse locale dans /etc/resolv.conf=== | ||
- | <code root>vim /etc/resolv.conf</code> | ||
- | <code>nameserver 127.0.0.1 | ||
- | nameserver 8.8.8.8 | ||
- | nameserver 8.8.4.4 | ||
- | nameserver 212.27.40.240 | ||
- | nameserver 212.27.40.241</code> | ||