Automatiser la gestion des adresses IP dynamiques
ddclient permet d'automatiser la mise à jour d'une adresse IP dynamique reliée à un nom de domaine (de 213.95.41.11 à www.ubuntu-fr.org par exemple). Ce système est extrêmement pratique quand il s'agit de créer un serveur web personnel accessible rapidement via un nom de domaine, alors que votre adresse IP change régulièrement.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Avoir activé l'accès aux dépôts Universe et Multiverse.
Installation
La touche espace sert à sélectionner la redirection "[] Nomduhost.dyndns.com"
Configuration
Commencez par générer le fichier de configuration en tapant :
sudo dpkg-reconfigure ddclient
Tout d'abord, vous devrez spécifier le service à utiliser. Le ou les noms de domaines qui pointeront vers l'adresse IP dynamique. L'identifiant et le mot de passe avec lesquels vous vous êtes inscrit au service.
ddclient peut prendre connaissance de l'adresse IP dynamique de diverses manières :
Paramètre | Signification |
---|---|
web | à partir d'une page web |
if | par une interface réseau (ex : ppp0, eth0…) |
fw | en interrogeant le routeur |
cmd | en exécutant une commande |
Si vous êtes derrière un routeur, ce n'est pas l'ordinateur qui initiera la connexion. Par conséquent, répondez « Non » à la question « Faut-il lancer ddclient lors de la connexion PPP ? ».
L'avant-dernière question vous propose de faire tourner ddclient en tâche de fond (daemon). Puisque le but est d'automatiser la mise à jour de l'adresse IP, répondez « Oui ».
Enfin, vous pouvez définir un délai entre les vérifications. Par défaut, celles-ci s'effectueront toutes les 300 secondes (5 minutes).
ddclient.conf
Maintenant que vous avez répondu aux questions, nous pouvons modifier le fichier « /etc/ddclient.conf » afin d'affiner les réglages.
Celui-ci se présente sous cette forme :
pid=/var/run/ddclient.pid ssl=yes protocol=dyndns2 #ou zoneedit1 si vous utilisez zoneedit use=web server=members.dyndns.org #ou dynamic.zoneedit.com si vous utilisez zoneedit login=identifiant password='motdepasse' nom.de.domaine #si plusieurs nom de domaine, separez par ','
ssl=yes
», veillez à ce que le paquet libio-socket-ssl-perl soit installé. Votre version de ddclient doit être supérieure à 3.7.0 (cf. le site de DynDNS).
Option | Signification |
---|---|
ssl | connexion sécurisé lors de l'échange avec DynDNS |
protocol | service utilisé pour effectuer la liaison |
use | comment identifier l'adresse IP |
server | serveur utilisé pour effectuer la mise à jour |
login | l'identifiant pour le service |
password | le mot de passe pour le service |
wildcard | Définit si les adresses du type *.nom.de.domaine fonctionnerons |
Intéressons nous à l'option use. Celle-ci accepte plusieurs paramètres :
Paramètre | Signification |
---|---|
web | donne l'adresse IP à partir d'une page web (par défaut) |
cmd | donne l'adresse IP en exécutant une commande |
fw | donne l'adresse IP en interrogeant un routeur |
if | donne l'adresse IP à partir d'une interface réseau (ex. : ppp0, eth0, etc.) |
ip | donne l'adresse IP à partir d'une adresse IP |
Pour utiliser la plupart de ces paramètres, il vous faudra rajouter quelques lignes au fichier de configuration.
Exemple d'obtention à partir d'une interface réseau :
use=if if=ppp0
Exemple d'interrogation d'un routeur :
use=fw fw=ip_du_routeur fw-login=identifiant_du_routeur fw-password=motdepasse_du_routeur
ddclient --help | grep use=
Pour vérifier que la configuration fonctionne:
sudo ddclient -daemon=0 -debug -verbose -noquiet
Il est alors nécessaire de supprimer le cache local, afin de forcer ddclient à mettre à jour le serveur :
sudo rm /var/cache/ddclient/ddclient.cache
Exemple de configuration pour le service noip (fichier ddclient.conf) :
ssl=yes protocol=noip use=web, web=checkip.dyndns.com/, web-skip='IP Address' server=dynupdate.no-ip.com login=votrelogin password='motdepasse' votreserveur.no-ip.biz
Ajout d'un enregistrement MX à votredomaine.dyndns.org
→ Voir l'article Wikipédia pour la définition et son utilité.
L'astuce ici est de créer un second enregistrement sur votre compte dyndns.org du style mxvotredomaine.dyndns.org et qui sera également mis à jour par le démon.
Après avoir créé mxvotredomaine.dyndns.org, il vous faut modifier le fichier /etc/ddclient.conf de la sorte :
pid=/var/run/ddclient.pid protocol=dyndns2 use=web #use=if; if=web server=members.dyndns.org login=votre_login password='votre_password' mx=mxvotredomaine.dyndns.org ← Adresse de l'enregistrement MX backupmx=no ← Votre enregistrement MX est prioritaire votredomaine.dyndns.org,mxvotredomaine.dyndns.org ← Mise à jour de l'adresse MX
Rechargez ensuite ddclient :
sudo /etc/init.d/ddclient force-reload
Réglage complémentaire avec FreeDNS
Si vous utilisez un sous-domaine fourni par FreeDNS, il se peut que vous soyez confronté à ce message d'erreur :
FATAL: Error loading the Perl module Digest::SHA1 needed for freedns update.
FATAL: On Debian, the package libdigest-sha1-perl must be installed.
En attendant que le problème soit corrigé, il est possible de modifier le fichier /usr/sbin/ddclient et de remplacer « require Digest::SHA1
» par « require Digest::SHA
» et « import Digest::SHA1
» par « import Digest::SHA
».
Source : Ask Ubuntu : How can I get ddclient to work with FreeDNS?
Désinstallation
Pour supprimer cette application, il suffit de supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.