Outils pour utilisateurs

Outils du site


serveur_dhcp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
serveur_dhcp [2012/04/17 15:27] thierryserveur_dhcp [2012/04/27 10:21] (Version actuelle) thierry
Ligne 227: Ligne 227:
   # dnssec-keygen -a hmac-md5 -b 128 -n USER dhcpupdate-local-tjaouen-fr   # dnssec-keygen -a hmac-md5 -b 128 -n USER dhcpupdate-local-tjaouen-fr
   Kdhcpupdate-local-tjaouen-fr.+xxx+xxxxx   Kdhcpupdate-local-tjaouen-fr.+xxx+xxxxx
 +
 +| :!: ''-n USER'' ou ''-n HOST'' ? |
 +
 +
 On a donc 2 fichiers: On a donc 2 fichiers:
   -rw------- 1 root bind   92 déc 36 12:03 Kdhcpupdate-local-tjaouen-fr.+xxx+xxxxx.private   -rw------- 1 root bind   92 déc 36 12:03 Kdhcpupdate-local-tjaouen-fr.+xxx+xxxxx.private
Ligne 315: Ligne 319:
  
  
-=== nsupdate === 
- 
-Liens: 
-  *http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch10_02.htm 
-  *http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/ 
- 
-On peut faire les mises a jour grâce à : **''nsupdate''** 
- 
-Exemple: 
-  $ nsupdate 
-  > update add leak.thierry-jaouen.fr. 3600 A 123.123.123.123 
-  > 
-  update failed: REFUSED 
- 
-Mais pour ce faire, **''nsupdate''** va déterminer le maitre et lui soumettre la mise à jour. 
- 
-:!: Bien sur, ça ne peut fonctionner que si la configuration de la zone autorise la mise à jour !!! 
- 
-Pour faire la mise à jour localement, si on est déjà sur le serveur maitre: 
-  $ nsupdate 
-  > server 127.0.0.1 
-  > update add leak.thierry-jaouen.fr. 3600 A 123.123.123.123 
-  > 
-  update failed: REFUSED 
- 
-Mais là encore: 
-  ... named[599]: client 127.0.0.1#14264: update 'thierry-jaouen.fr/IN' denied 
  
 ==== dhcpd.conf ==== ==== dhcpd.conf ====
Ligne 546: Ligne 523:
 Ce qui va forcer la resolution inverse dans la zone qu'on a précédement créée. Ce qui va forcer la resolution inverse dans la zone qu'on a précédement créée.
  
 +===== nsupdate =====
 +
 +Liens:
 +  *http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch10_02.htm
 +  *http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/
 +
 +On peut faire les mises a jour grâce à : **''nsupdate''**
 +
 +==== usages en pratique ====
 +
 +Exemple:
 +  $ nsupdate
 +  > update add leak.thierry-jaouen.fr. 3600 A 123.123.123.123
 +  >
 +  update failed: REFUSED
 +
 +Mais pour ce faire, **''nsupdate''** va déterminer le maitre et lui soumettre la mise à jour.
 +
 +| :!: Bien sur, ça ne peut fonctionner que si la configuration de la zone autorise la mise à jour ! |
 +
 +Pour faire la mise à jour localement, si on est déjà sur le serveur maitre:
 +  $ nsupdate
 +  > server 127.0.0.1
 +  > update add leak.thierry-jaouen.fr. 3600 A 123.123.123.123
 +  >
 +  update failed: REFUSED
 +
 +Mais là encore:
 +  ... named[599]: client 127.0.0.1#14264: update 'thierry-jaouen.fr/IN' denied
 +
 +A suivre ...
 +
 +Mais même en autorisant ce genre de mise à jour en ajoutant:
 +
 +  ...
 +          allow-update { 127.0.0.1; };
 +  ...
 +
 +On a une erreur de d'ecriture, normale :
 +  ... named[599]: /etc/bind/MASTER/db.thierry-jaouen.fr.jnl: create: permission denied
 +
 +| :!: problème de droits corrigés, tout les utilisateurs qui ont localement accès a nsupdate pourront mettre a jour des entrées !!!!  |
 +
 +On va créer une sous-zone dans laquelle on pourra faire nos mises à jour.
 +
 +| :!: les fichiers "*.jnl" sont polluant... separer les zones statiques des zones dynamiques! |
 +
 +==== installation ====
 +
 +Donc:
 +  - mise en place d'une sous-zone sacrifiés pour être dynamique
 +  - test
 +  - sécuriser 
 +
 +Donc, on a :
 +  * une zone "thierry-jaouen.fr"
 +  * un DNS en "ns.thierry-jaouen.fr"
 +
 +On va créer une sous-zone:
 +  * leak.thierry-jaouen.fr.
 +
 +C'est dans cette sous-zone qu'on pourra ajouter des entrées DNS via "nsupdate".
 +
 +=== sous-zone ====
 +
 +Modifier la zone "thierry-jaouen.fr" en ajoutant la sous-zone :
 +
 +  ; -----------------------------
 +  leak           IN      A               <IP_DU_SERVEUR>
 +  leak                           NS      leak
 +
 +"<IP_DU_SERVEUR>" est l'IP de notre DNS ( donc, la même que **''ns.thierry-jaouen.fr''** ! )
 +
 +Et aussi:
 +  test                   CNAME           test.leak.thierry-jaouen.fr.
 +
 +Ainsi, on pourra utiliser le nom "test.thierry-jaouen.fr." comme alias vers le nom dynamique.
 +
 +
 +Maintenant la sous-zone.
 +
 +Si nécessaire, préparer un nouveau répertoire:
 +
 +  # cd /etc/bind
 +  # mkdir UPDATE-MASTER
 +  # chmod g+w UPDATE-MASTER
 +
 +Créer le nouveau fichier de zone:
 +  # cd UPDATE-MASTER
 +  # touch db.leak.thierry-jaouen.fr
 +  # chown bind: db.leak.thierry-jaouen.fr
 +
 +Car le fichier doit être "writable" pour bind.
 +
 +Son petit frère "db.leak.thierry-jaouen.fr.jnl" sera créé ultérieurement et automatiquement par **''bind''**.
 +
 +Editer le contenu de db.leak.thierry-jaouen.fr
 +
 +  $TTL    3600
 +  @               IN  SOA thierry-jaouen.fr. root.thierry-jaouen.fr. (
 +                                2012041800   ; serial number
 +                                24h          ; refresh
 +                                1h           ; retry
 +                                2w           ; expire
 +                                1h           ; minimum TTL
 +  )
 +  ; ----------------------------------------------------------
 +                        NS              leak.thierry-jaouen.fr.
 +                        A               <IP_DE_NS.THIERRY.JAOUEN.FR>
 +  ; ----------------------------------------------------------
 +  test                  A               1.2.3.4
 +  ; ------------
 +  ; EOF
 +
 +Remplacer ''<IP_DE_NS.THIERRY.JAOUEN.FR>'' par l'IP du père de la zone. (glue)
 +
 +Et enfin, dans la conf de **''named.conf.local''** ajouter la sous-zone:
 +
 +  zone "leak.thierry-jaouen.fr" {
 +        type master;
 +        file "/etc/bind/UPDATE-MASTER/db.leak.thierry-jaouen.fr";
 +        allow-query {
 +                any;
 +        };
 +        # mise a jour via nsupdate ... NON SECURISE !
 +        allow-update { 127.0.0.1; };
 +  };
 +
 +Activer:
 +  # rndc reload
 +  
 +Tester en l'etat:
 +  $ host test.leak.thierry-jaouen.fr
 +  test.leak.thierry-jaouen.fr has address 1.2.3.4
 +  
 +Et ça marche aussi avec : **''test.thierry-jaouen.fr''** , grâce a l'alias.
 +
 +=== tester ===
 +
 +La mise a jour devrait maintenant fonctionner comme cela:
 +
 +  # nsupdate
 +  > server 127.0.0.1
 +  > update delete test.leak.thierry-jaouen.fr. A
 +  > update add test.leak.thierry-jaouen.fr. 3600 A 123.123.123.123
 +  > 
 +  > quit
 +
 +Et voila.
 +
 +Un fichier "''.jnl''" est apparu: Il faudra vivre avec :-) 
 +
 +Dorénavant, la zone dynamique sera mise à jour dans son coin, dans la sous-zone "leak.thierry-jaouen.fr.".
 +
 +Pour les autres zones "statiques", on pourra continué d'éditer les fichiers avec son éditeur favori.
 +
 +=== sécurité ===
 +
 +Si nécessaire:
 +  # cd /etc/bind
 +  # mkdir keys
 +  # chown root:bind keys
 +  # chmod o-rwx g-r keys
 +
 +Générer la clé:
 +  # cd keys
 +  # dnssec-keygen -a HMAC-MD5 -b 128 -n HOST leak.thierry-jaouen.fr.
 +  Kleak.thierry-jaouen.fr.+157+39541
 +
 +Créer un fichier de conf, dans **''/etc/bind/keys''** , par exemple: ''leak.thierry-jaouen.fr.conf'' :
 +  key "leak.thierry-jaouen.fr." {
 +    algorithm hmac-md5;
 +    secret "<SECRET>";
 +  };
 +
 +**''<SECRET>''** est a extraire de la ligne "Key" dans le fichier ".private" créé.
 +
 +Puis dans **''named.conf.local'' **  :
 +  ...
 +  include "/etc/bind/keys/leak.thierry-jaouen.fr.conf";
 +  ...
 +Et dans la déclaration de la zone "leak.thierry-jaouen.fr" , remplacer la ligne "allow-update" par:
 +  ...
 +  allow-update { key "leak.thierry-jaouen.fr."; };
 +  ...
 +
 +Activer:
 +  # rndc reload
 +
 +Maintenant, si on test sans clé est rejeté:
 +  ... named[599]: client 127.0.0.1#1470: update 'leak.thierry-jaouen.fr/IN' denied
 +
 +Il faut préciser la clé ainsi, et procéder:
 +  # nsupdate -k Kleak.thierry-jaouen.fr.+157+39541.key 
 +  > server 127.0.0.1
 +  > update add toto.leak.thierry-jaouen.fr. 600 A 1.2.3.4
 +  > send
 +
 +Et voila.
 +
 +A ce stade, sauf problème de configuration réseau, on n'a plus besoin de préciser où est le serveur.\\
 +La resolution DNS fait sont travail.
 +
 +Exemple:
 +  $ echo -n -e "update delete toto.leak.thierry-jaouen.fr. A\nsend\n" | nsupdate -k Kleak.thierry-jaouen.fr.+157+39541.key
 +
 +
 +=== Tips ===
 +
 +== dump ==
 +
 +Pour avoir un "dump" des evolutions de cette zone dynamique, on peut utiliser:
 +
 +  # rndc dumpdb -zones
 +
 +
 +== update ==
 +
 +FIXME : c'est sur ?
 +
 +Par la suite, tout les enregistrements de la zone devront être fait via "nsupdate".
 +
 +Je n'ai pas compris s'il etait possible (et normal) d'éditer les fichiers a la main... (je ne parle pas du ".jnl" )
  
serveur_dhcp.1334676435.txt.gz · Dernière modification : 2012/04/17 15:27 de thierry