L'idée de base est d'utiliser les objets dynamiques d'un annuaire LDAP, décrit dans la RFC 2589³. J'ai donc écrit un petit script en Perl⁴ qui s'occupait de lire le fichier tenu par le serveur ISC DHCP⁵ et reproduisait son contenu dans l'annuaire, en prenant en compte le temps du bail allouer par le serveur.
L'objet ainsi créé disparaissait automatiquement à la fin de sa durée de vie.
L'étape suivante étant d'utiliser cette information plus loin. Un serveur DNS⁶ normalement constitué retourne toujours une durée de vie de l'enregistrement, prévu par la RFC 1035⁷.
Je me suis donc attaqué au code source du serveur ldapdns 2.06⁸ et j'ai pondu un premier patch⁹ ajoutant le support de l'attribut "entryTtl".
Ce patch reste encore assez expérimental (mais quand même en production sur un serveur DNS chez moi (depuis ce matin)) et va certainement recevoir quelques corrections ainsi qu'une version pour Debian¹⁰ puisque que le projet en lui-même ne semble plus être maintenu au-dehors de Debian (la dernière modification par l'auteur datant de 2003).
Le fait d'ajouter cette valeur permet d'utiliser des serveurs DNS tampon, comme PowerDNS Recursor¹¹ qui s'occupe de faire de la récursion, du tampon et de la résolution DNS (c'est d'ailleurs son seul objectif, la partie autoritaire étant laissée à un autre serveur DNS). En effet, PowerDNS prend en compte la valeur "TTL" et garde en mémoire tampon le résultat, réduisant la charge sur les serveurs autoritaires (ldapdns) et donc sur l'annuaire LDAP.
La page de mon petit projet¹² se trouve sur mon wiki.
- http://linuxfr.org/~tchetch/29491.html
- http://en.wikipedia.org/wiki/Ddns
- http://tools.ietf.org/html/rfc2589
- http://en.wikipedia.org/wiki/Perl
- http://www.isc.org/software/dhcp
- http://en.wikipedia.org/wiki/Domain_Name_System
- http://tools.ietf.org/html/rfc1035
- http://www.nimh.org/code/ldapdns/
- http://www.tchetch.net/code/ldapdns/ldapdns-entryttl.patch
- http://packages.qa.debian.org/l/ldapdns.html
- http://en.wikipedia.org/wiki/Powerdns
- http://www.tchetch.net/wiki/ldap/ddns
# C'est moi ou...
Posté par windu.2b . Évalué à 3.
Et comme le changement dans la suite du patch est un passage de
c->ttl
àc->rttl
Je me demande s'il n'y a pas un oubli ?
[^] # Re: C'est moi ou...
Posté par Etienne Bagnoud (site web personnel) . Évalué à 2.
Dans une réponse complète tu as ça :
;; ANSWER SECTION:
iro025.machines.irovision.ch. 5003 IN A 172.16.30.112
;; AUTHORITY SECTION:
irovision.ch. 172800 IN NS ns1.dns.irovision.ch.
irovision.ch. 172800 IN NS ns2.dns.irovision.ch.
;; ADDITIONAL SECTION:
ns2.dns.irovision.ch. 172800 IN A 192.168.10.120
ns1.dns.irovision.ch. 172800 IN A 192.168.10.121
Donc uniquement le TTL dans ";; ANSWER SECTION" doit avoir la valeur dynamique.
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell
[^] # Re: C'est moi ou...
Posté par windu.2b . Évalué à 2.
# Secu
Posté par ~ lilliput (site web personnel) . Évalué à 2.
Il faut faire attention que certaines entrée ne puissent pas être automatiquement ajoutée tel que 'WPAD' [1] ou 'ISATAP' [2]. La manipulation dynamique des entrées DNS via DHCP peuvent permettre de rediriger le traffic vers la machine de sont choix (MITM). Microsoft a eu quelques problèmes l'année dernière [3].
J'ai vu beaucoup de charactères un peu spéciaux dans les noms de PC... Il est toujours bon de garder QUE les charactères a-z 0-9 ça permet d'éviter les injections au niveau LDAP et DNS.
Il faut aussi que tu ne puisses pas ré-enregistrer des entrées déjà existantes i.e. www. mail. etc...
Voilà
[1]: http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protoco(...)
[2]: http://en.wikipedia.org/wiki/ISATAP
[3]: http://blogs.technet.com/srd/archive/2009/03/13/ms09-008-dns(...)
http://www.theatre-eibel.fr http://www.isc2chapter-yorkshire.co.uk
[^] # Re: Secu
Posté par Etienne Bagnoud (site web personnel) . Évalué à 3.
Oui tu as raison, je suis au courant des problèmes mais je n'y même pas pensé à faire attention à ça dans mon code, je vais donc corriger ça séance tenante. Merci beaucoup.
J'ai vu beaucoup de charactères un peu spéciaux dans les noms de PC... Il est toujours bon de garder QUE les charactères a-z 0-9 ça permet d'éviter les injections au niveau LDAP et DNS.
Oui j'ai une expression régulière qui me nettoie ça, normalement.
Il faut aussi que tu ne puisses pas ré-enregistrer des entrées déjà existantes i.e. www. mail. etc...
L'idée est quand même de faires un sous-domaine dédié aux entrées dynamiques, mais je peux rajouter une liste, dans la configuration, de noms protéger et donc inutilisable par le client.
Merci beaucoup pour ces choses que je n'avais pas pensé.
"It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell
# Hum
Posté par moules . Évalué à 1.
# Hum
Posté par moules . Évalué à 1.
# hihi
Posté par moules . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.