Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
informatique:linux:bind-9 [2007/09/21 15:33] 127.0.0.1 édition externe |
informatique:linux:bind-9 [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== BIND ====== | ||
===== Configuration de serveurs DNS avec bind 9 ===== | ===== Configuration de serveurs DNS avec bind 9 ===== | ||
Ligne 40: | Ligne 41: | ||
//Pour autoriser les notifications du serveur primaire | //Pour autoriser les notifications du serveur primaire | ||
allow-notify {10.0.0.1;}; | allow-notify {10.0.0.1;}; | ||
- | //Pour forwarder les requetes non interne vers des dns externes | + | //Pour forwarder les requetes non interne vers des dns externes. Ne pas utiliser si le serveur doit faire du cache DNS |
forwarders {212.27.53.252; 212.27.54.252;}; | forwarders {212.27.53.252; 212.27.54.252;}; | ||
}; | }; | ||
Ligne 96: | Ligne 97: | ||
2 IN PTR rhel4-vm2.zikdomain.com. | 2 IN PTR rhel4-vm2.zikdomain.com. | ||
254 IN PTR zikostation.zikdomain.com. | 254 IN PTR zikostation.zikdomain.com. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Gestion des vues ===== | ||
+ | ==== Description ==== | ||
+ | Les sections view définissent des comportements du serveur sur la base de l'adresse IP du client qui envoie la requête, permettant de différencier les réponses DNS. On définit ainsi deux vues : | ||
+ | * une correspondant aux clients de la zone interne et DMZ : il faut réactiver la récursion pour ces requêtes, ainsi que permettre de résoudre tous les noms possible (zone "."). | ||
+ | * une autre correspondant aux requêtes en provenance de l'extérieur (par exemple Internet). Il faut autoriser le requêtes que pour la zone ou le serveur DNS est l'autorité, c'est à dire la zone groupeT.tp. | ||
+ | |||
+ | ==== Générer les clés ==== | ||
+ | Il est nécessaire de générer une clé par vue pour cibler les transferts de zone. Si ce n'est pas fait, les serveurs secondaire ne traiterons qu'une seule vue. | ||
+ | |||
+ | Pour générer les clés, lancer : | ||
+ | cd /var/bind/ | ||
+ | dnssec-keygen -a HMAC-MD5 -b 128 -n HOST interne-key | ||
+ | dnssec-keygen -a HMAC-MD5 -b 128 -n HOST externe-key | ||
+ | |||
+ | Ces commandes génèrent deux fichiers, exemple pour idom-key : | ||
+ | Kinterne-key.+157+56677.key | ||
+ | Kinterne-key.+157+56677.private | ||
+ | |||
+ | Pour récupérer la chaîne de caractère secret, lancer la commande : | ||
+ | grep Key Kinterne-key.+157+56677.private | ||
+ | |||
+ | ==== Configuration du serveur primaire ==== | ||
+ | |||
+ | //Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue externe | ||
+ | key "externe-key" { | ||
+ | algorithm hmac-md5; | ||
+ | secret "XXXXXXXXXXXXXXXXXXXXXX=="; | ||
+ | }; | ||
+ | //Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue interne | ||
+ | key "interne-key" { | ||
+ | algorithm hmac-md5; | ||
+ | secret "YYYYYYYYYYYYYYYYYYYYYY=="; | ||
+ | }; | ||
+ | | ||
+ | view "interne" { | ||
+ | //On autorise l'usage de la clé interne mais pas externe pour bien ciblé | ||
+ | match-clients { clients_interne; key interne-key; !key externe-key;}; | ||
+ | recursion yes; | ||
+ | allow-recursion { clients_interne; }; | ||
+ | | ||
+ | //Les serveurs secondaires 10.0.0.2 et 10.0.0.3 doivent utiliser la clé interne pour le transfert de cette vue | ||
+ | server 10.0.0.2 { keys interne-key; }; | ||
+ | server 10.0.0.3 { keys interne-key; }; | ||
+ | | ||
+ | // racine | ||
+ | // type hint correspond aux requêtes que l'on ne peut pas traiter localement | ||
+ | // le fichier root.zone doit être récupéré régulièrement sur ftp.rs.internic.net/domain | ||
+ | zone "." { | ||
+ | type hint; | ||
+ | file "standard/root.hint"; | ||
+ | }; | ||
+ | | ||
+ | zone "localhost" { | ||
+ | type master; | ||
+ | file "standard/localhost"; | ||
+ | allow-transfer { localhost; }; | ||
+ | }; | ||
+ | | ||
+ | zone "127.in-addr.arpa" { | ||
+ | type master; | ||
+ | file "standard/loopback"; | ||
+ | allow-transfer { localhost; }; | ||
+ | }; | ||
+ | | ||
+ | zone "com" { | ||
+ | type delegation-only; | ||
+ | }; | ||
+ | | ||
+ | zone "net" { | ||
+ | type delegation-only; | ||
+ | }; | ||
+ | | ||
+ | // zone de type master correspond aux requêtes locales : ce serveur est l'autorité | ||
+ | // de cette zone (groupeT.tp) | ||
+ | zone "groupeT.tp" { | ||
+ | type master; | ||
+ | file "master/int.groupeT.tp"; | ||
+ | }; | ||
+ | }; | ||
+ | | ||
+ | view "externe" { | ||
+ | match-clients { any; key externe-key; !key interne-key; }; | ||
+ | recursion no; | ||
+ | //Les serveurs secondaires 10.0.0.2 et 10.0.0.3 doivent utiliser la clé externe pour le transfert de cette vue | ||
+ | server 10.0.0.2 { keys externe-key; }; | ||
+ | server 10.0.0.3 { keys externe-key; }; | ||
+ | | ||
+ | // zone de type master correspond aux requêtes locales : ce serveur est l'autorité | ||
+ | // de cette zone (groupeT.tp) | ||
+ | zone "groupeT.tp" { | ||
+ | type master; | ||
+ | file "master/ext.groupeT.tp"; | ||
+ | }; | ||
+ | }; | ||
+ | |||
+ | |||
+ | ==== Configuration des serveurs secondaires ==== | ||
+ | |||
+ | |||
+ | //Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue externe | ||
+ | key "externe-key" { | ||
+ | algorithm hmac-md5; | ||
+ | secret "XXXXXXXXXXXXXXXXXXXXXX=="; | ||
+ | }; | ||
+ | //Clé utilisée pour cibler le transfert de zone vers les secondaires pour la vue interne | ||
+ | key "interne-key" { | ||
+ | algorithm hmac-md5; | ||
+ | secret "YYYYYYYYYYYYYYYYYYYYYY=="; | ||
+ | }; | ||
+ | | ||
+ | view "interne" { | ||
+ | //On autorise l'usage de la clé interne mais pas externe pour bien ciblé | ||
+ | match-clients { clients_interne; key interne-key; !key externe-key;}; | ||
+ | recursion yes; | ||
+ | allow-recursion { clients_interne; }; | ||
+ | | ||
+ | //Le serveur primaire 10.0.0.1 doit utiliser la clé interne pour le transfert de cette vue | ||
+ | server 10.0.0.1 { keys interne-key; }; | ||
+ | | ||
+ | // racine | ||
+ | // type hint correspond aux requêtes que l'on ne peut pas traiter localement | ||
+ | // le fichier root.zone doit être récupéré régulièrement sur ftp.rs.internic.net/domain | ||
+ | zone "." { | ||
+ | type hint; | ||
+ | file "standard/root.hint"; | ||
+ | }; | ||
+ | | ||
+ | zone "localhost" { | ||
+ | type master; | ||
+ | file "standard/localhost"; | ||
+ | allow-transfer { localhost; }; | ||
+ | }; | ||
+ | | ||
+ | zone "127.in-addr.arpa" { | ||
+ | type master; | ||
+ | file "standard/loopback"; | ||
+ | allow-transfer { localhost; }; | ||
+ | }; | ||
+ | | ||
+ | zone "com" { | ||
+ | type delegation-only; | ||
+ | }; | ||
+ | | ||
+ | zone "net" { | ||
+ | type delegation-only; | ||
+ | }; | ||
+ | | ||
+ | // zone de type master correspond aux requêtes locales : ce serveur est l'autorité | ||
+ | // de cette zone (groupeT.tp) | ||
+ | zone "groupeT.tp" { | ||
+ | type slave; | ||
+ | file "slave/int.groupeT.tp"; | ||
+ | masters { 10.0.0.1; }; | ||
+ | }; | ||
+ | }; | ||
+ | | ||
+ | view "externe" { | ||
+ | match-clients { any; key externe-key; !key interne-key; }; | ||
+ | recursion no; | ||
+ | //Le serveur primaire 10.0.0.1 doit utiliser la clé externe pour le transfert de cette vue | ||
+ | server 10.0.0.2 { keys externe-key; }; | ||
+ | server 10.0.0.3 { keys externe-key; }; | ||
+ | | ||
+ | // zone de type master correspond aux requêtes locales : ce serveur est l'autorité | ||
+ | // de cette zone (groupeT.tp) | ||
+ | zone "groupeT.tp" { | ||
+ | type slave; | ||
+ | file "slave/ext.groupeT.tp"; | ||
+ | masters { 10.0.0.1; }; | ||
+ | }; | ||
+ | }; | ||
+ | |||
+ | ===== Gestion avec un controleur Active Directory ===== | ||
+ | Mettre les adresses IP des contrôleurs AD sur la ligne **allow-update** | ||
+ | |||
+ | zone "domaineNT.zikdomain.fr" { | ||
+ | type master; | ||
+ | file "domaineNTzikdomain.com"; | ||
+ | allow-update { <IP CONTROLEUR AD>; <IP CONTROLEUR AD 2>; }; | ||
+ | }; | ||
+ | |||
+ | ===== Astuces ===== | ||
Pour créer des enregistrements server4 pointant sur 10.0.0.4 jusqu'à server100 pointant sur 10.0.0.100 | Pour créer des enregistrements server4 pointant sur 10.0.0.4 jusqu'à server100 pointant sur 10.0.0.100 | ||
Ligne 102: | Ligne 290: | ||
Même chose pour créer les ptr | Même chose pour créer les ptr | ||
$GENERATE 4-100 $ PTR server$.zikdomain.com. | $GENERATE 4-100 $ PTR server$.zikdomain.com. | ||
+ | | ||
+ | ===== Quelques commandes ===== | ||
+ | |||
+ | Activer le logging des requetes : | ||
+ | rndc querylog | ||
+ | | ||
+ | Une fois activé les logs se trouvent dans ''/var/log/messages'' ou ''/var/log/syslog''. | ||
+ | |||
+ | Vérifier la syntaxe d'un fichier zone : | ||
+ | named-checkzone domaine.com /var/cache/bind/domaine.com.zone | ||
+ | |||
+ | Vérifier la syntaxe de la configuration de bind : | ||
+ | named-checkconf /etc/bind/named.conf |