Si, comme moi, vous êtes responsable de la gestion de serveurs DNS sous Bind, que ce soit pour des zones internes ou externes, vous avez certainement déjà rencontré le besoin de mettre à jour des enregistrements de manière dynamique (DDNS).
Présentation
Dans cet article, nous allons voir comment concrétiser cette fonctionalité en mettant en place une configuration optimisée basée sur la création d’une clé secrète qui sera utilisée par un client de confiance afin de mettre à jour dynamiquement la ou les zone(s) que vous souhaitez. En bonus, je vous mettrais à disposition un script permettant d’effectuer ces mises à jour de manière avancée.
Mise en place
Préparation et pré-requis
Nous partons du principe que vous avez déjà un serveur DNS sous Bind fonctionnel. Pour commencer, nous allons installer les utilitaires qui fournissent un ensemble d’outils pour effectuer des opérations liées aux protocoles DNS dont nous aurons besoin par la suite.
|
|
Passons désormais aux choses sérieuses
Création de clés TSIG
Les clés TSIGTSIG sont des mécanismes de sécurité cruciaux dans les mises à jour dynamiques DNS. Elles agissent comme des “clés secrètes” entre le serveur DNS et les clients autorisés, garantissant que seules les mises à jour légitimes sont acceptées. Ces clés renforcent la sécurité du processus en empêchant les accès non autorisés et en assurant l’intégrité des données lors des mises à jour automatiques des enregistrements DNS. Nous allons dans un premier temps créer le répertoire qui accueillera ces clés et nous allons les générer en fonctiion de notre usage.
|
|
Configuration de la zone
Une fois que nous avons créé les clés, nous allons les intégrer dans la configuration Bind. Cette étape permet au serveur DNS de reconnaître et de valider les mises à jour provenant des clients autorisés. Pour ce faire, il est essentiel d’autoriser les mises à jour pour la zone souhaitée en utilisant la clé spécifique que nous avons générée.
|
|
Nous pouvons alors modifier la zone en conséquence
|
|
Redémarrez Bind pour activer les modifications :
|
|
Test
Grâce à la commande nsupdate, nous allons pouvoir effectuer notre test de mise à jour de notre zone.
|
|
Vous pouvez alors vérifier la bonne prise en compte du test via dig.
|
|
Bonus
Vous trouverez ci-après un script Bash conçu pour simplifier les mises à jour dynamiques des enregistrements DNS, mais avant quelques explications.
Ce script permet, grâce au passage de paramètres, de personnaliser les mises à jour en spécifiant des détails tels que le serveur de noms, le chemin du fichier de clé, le TTL et les enregistrements à mettre à jour.
Le script permet également de retourner automatiquement l’adresse IP externe afin de l’associer à un enregistrement voulu.
Voici comment vous pouvez personnaliser vos mises à jour en fonction de vos besoins :
Mise à Jour Basique :
|
|
Cette commande met à jour les enregistrements pour host1.example.com et host2.example.com avec les adresses IP spécifiées. L’adresse IP de host2.example.com est récupérée automatiquement via le service ifconfig.me.
Personnalisation Avancée :
|
|
Utilisez l’option -ttl pour spécifier un TTL différent (300 secondes dans cet exemple) pour les mises à jour. Ceci est particulièrement utile si vous souhaitez ajuster la durée de validité des enregistrements.
Automatisation de l’Adresse IP Externe :
|
|
Dans ce cas, l’utilisation de EXTERNALIP récupérera automatiquement l’adresse IP externe du système via le service ifconfig.me. Cela vous permet de maintenir à jour vos enregistrements même lorsque votre adresse IP externe change.
|
|
Conclusion
Vous avez désormais les outils nécessaires pour simplifier les mises à jour dynamiques de vos enregistrements DNS sous Bind. En mettant en pratique les astuces partagées dans cet article, vous pourrez dire adieu aux soucis de mises à jour fastidieuses. Et n’oubliez pas, ce script est là pour vous simplifier la tâche, même si vous n’êtes pas un expert en la matière. N’hésitez pas à partager vos expériences et vos questions dans les commentaires ! Bonne bidouille !