Introduction
Votre adresse IP publique change régulièrement. Pour cette raison nous avons besoin de créer un script dans Ubuntu Server qui enverra un paquet à un enregistrement A sur votre domaine. Cet enregistrement A verra alors de quelle adresse ip publique vient ce paquet et il mettra à jour sa destination.
Obligatoire
-
Ce script se lance dans Ubuntu Server vous devez donc avoir un serveur Ubuntu fonctionnel.
-
Vous aurez besoin d'un domaine chez Cloudflare
Mettre à jour le système
Avant d'installer les dépendances nécessaires, il est conseillé de mettre à jour votre système. Pour cela, utilisez les deux commandes suivantes.
sudo apt update && sudo apt install git
Cette commande mettra à jour votre système et installera Git si ce n'est pas déjà fait.
Téléchargement du script
Nous allons aller chercher le script manuellement en entrant la commande et l'adresse.
La commande sera
git clone https://github.com/K0p1-Git/cloudflare-ddns-updater.git
Vérification du téléchargement
Pour vérifier si le dossier a bien été téléchargé, utilisez la commande ls pour lister le contenu de votre répertoire actuel.
ls
Accéder au dossier du script
Pour entrer dans le dossier du script, utilisez la commande cd
cd cloudflare-ddns-updater
Puis, pour lister le contenu du dossier
ls
Copier le script template
Nous allons maintenant copier le fichier cloudflare-template.sh pour en créer une version personnalisée. Utilisez la commande suivante pour faire la copie
cp cloudflare-template.sh cloudflare.sh
Cela crée un fichier cloudflare.sh que nous allons personnaliser.
Modifier le fichier cloudflare.sh
Pour éditer le fichier, nous allons utiliser l’éditeur de texte nano
nano cloudflare.sh
Personnalisation du fichier
À l’intérieur de ce fichier, vous devez fournir plusieurs informations pour configurer votre script :
-
auth_email : Entrez l'adresse e-mail associée à votre compte Cloudflare.
-
auth_method : La méthode d'authentification (elle sera Globale).
-
auth_key : Entrez votre clé API globale Cloudflare. Vous pouvez la récupérer sur votre compte Cloudflare dans la section "API Tokens". Pour l'obtenir vous allez dans votre profile
Vous allez dans API Tokens
Vous verrez une section comme celle-ci et vous cliquez sur view pour voir la clef
Vous entrez votre mot de passe
et votre clef API globale saffichera
- zone_identifier : Entrez l'ID de votre zone (votre domaine). Vous pouvez le trouver dans les paramètres DNS de Cloudflare.
Vous allez dans Overview
En bas à droite vous verrez votre Zone ID
Une fois rempli votre script ressemble à ceci
Créer un enregistrement A dans Cloudflare
Avant de tester le script, vous devez créer un enregistrement A pour que le script puisse pointer vers votre domaine.
Connectez-vous à votre compte Cloudflare.
Allez dans la section DNS de votre domaine.
Créez un enregistrement A et nommez-le script, en lui attribuant l'adresse IP 8.8.8.8.
Rendre le script exécutable
Nous allons maintenant rendre le script exécutable en modifiant ses permissions avec la commande suivante
chmod +x cloudflare.sh
Tester le script
Pour tester si le script fonctionne correctement, lancez-le avec la commande suivante
./cloudflare.sh
Vérification dans Cloudflare
Retournez sur votre compte Cloudflare et rafraîchissez la section DNS pour voir si l’enregistrement A a été mis à jour avec votre adresse IP publique (au lieu de 8.8.8.8).
Automatiser l’exécution du script
Utiliser crontab pour planifier l'exécution
Nous allons maintenant automatiser l’exécution du script toutes les minutes à l’aide de cron. Utilisez la commande suivante pour éditer votre crontab
crontab -e
Choisissez l'éditeur de texte que vous préférez
Ajoutez la ligne suivante à la fin du fichier pour exécuter le script toutes les minutes. (Changez votrenom pour votre vrai nom d'utilisateur).
*/1 * * * * /bin/bash /home/votrenom/cloudflare-ddns-updater/cloudflare.sh
Sauvegarder et quitter Appuyez sur CTRL + X, puis Y pour sauvegarder et enfin ENTER pour valider.
Redémarrer le service cron
Pour que la tâche cron prenne en compte vos modifications, vous devez redémarrer le service cron
systemctl restart cron
Félicitations !
Votre script Cloudflare DDNS est désormais configuré et automatisé. Vous n’avez plus qu'à laisser votre machine gérer la mise à jour de votre DNS de manière régulière.