Web-service pour administrer des hôtes en adresse IP dynamique
Project description
Web-service pour hôtes en adresse IP dynamique
Fonctionnalités
- Changement de l'adresse IP d'un domaine. Ce changement ne se fait que si l'adresse IP a changé.
- Historique des changements d'IP.
- Envoie d'un mail en cas de changement d'IP.
- L'adresse IP de l'hôte est récupérée par le web-service. Il n'est donc pas nécessaire d'installer quoi que ce soit sur l'hôte. Il suffit simplement d'appeler régulièrement ce web-service.
Utilité
- Si un routeur ne prend pas en charge un service DynHost.
- Si on doit mettre à jour manuellement la nouvelle adresse IP dans certains fichier de configuration. L'envoi d'un mail lors du changement d'IP est utile pour cela.
- Si on veut garder une trace des changements d'IP pour savoir à quelle fréquence le FAI les fait.
Services (ou backend) pris en charge
- DynHost OVH.
Type d'adresses IP
- IPV4.
Fonctionnement
Le web-service doit être installé sur un serveur quelque part sur le web. L'hôte qui est susceptible de changer d'adresse IP appelle régulièrement ce web-service. Par exemple un hébergement personnel derrière un FAI sans adresse IP fixe,
Le web-service détermine l'adresse IP de l'appelant et, si celle-ci à changé, il met à jour le nom de domaine avec cette nouvelle adresse en appelant l'API relative au backend utilisé.
L'évènement est mis en historique et un mail est éventuellement envoyé.
Comment faire
Installation
pip3 install dynahost
Insatller python3-pip si pip3 non trouvé.
Il est fortement conseillé d'installer ce web-service dans un environnement virtuel. Voir virtualenvwrapper
Lancement du web-service
Afficher l'aide : dynahost -h
Les paramètres peuvent être passés en ligne de commande ou à l'aide d'un fichier de configuration. Un fichier dynahost_config_sample.ini est fourni comme exemple.
Un fichier dynahost.service est fourni pour un lancement via systemd.
Ces fichiers fournis sont souvent installés dans /usr/local/etc/
.
Mise à jour du DynHost
Schéma de base
url/update?paramètres
Paramètres
backend = l'id du service DynHost (Voir l'aide de dynahost).
secid = Identifiant de sécurité.
host = Le nom de domaine à traiter
login = Le login au service DynHost
pass = Le mot de passe du service DynHost
email = L'adresse mail à laquelle envoyer les changement d'IP
Ce paramètre est facultatif.
secid
est un identifiant quelconque. Il est associé à un hôte
et sauvegardé de façon crypté lors du premier appel pour cet hôte.
Il doit être le même pour les appels suivants. Sans celui-ci les accès ultérieurs sont rejetés.
Exemples
Pour ceux qui ne veulent pas installer le service, je mets à disposition mon propre serveur. Mon service possède l'url : https://dynhost.frkb.fr
Celui-ci est utilisé dans les exemples suivants.
Avec wget ou dans un navigateur
wget https://dynhost.frkb.fr/update?backend=ovh&\
secid=abc123xyz&host=test.exemple.com&\
login=exemmple.com-test&pass=untrucsecret&\
email=test@exemple.com
Pour des raisons de sécurité, il est conseillé d'appeler le service via la curl (Il se peut que les requêtes GET avec le mot de passe en clair soient loguées au niveau du serveur web).
Avec curl
curl -d "backend=ovh" \
-d "secid=abc123xyz" \
-d "host=test.exemple.com" \
-d "login=exemple.com-test" \
-d "pass=untrucsecret" \
-d "email=test@exemple.com" \
https://dynhost.frkb.fr/update
Voilà ! Il suffit maintenant de placer cela dans une tâche cron.
Affichage de l'historique
Schéma de base
url/log?paramètres
Paramètres
secid = Identifiant de sécurité.
host = Le nom de domaine à traiter
Avec wget ou dans un navigateur
wget https://dynhost.frkb.fr/log?\
secid=abc123xyz&host=test.exemple.com&
Avec curl
L'utilisation de curl n'est significative que dans un script.
curl -d "login=exemple.com-test" \
-d "secid=abc123xyz" \
-d "host=test.exemple.com" \
https://dynhost.frkb.fr/log
Change log
-
1.0.0 2019/02/07
Première version
-
1.1.0 2019/02/08
- Ajout du paramètre backend.
- Ajout d'une clé pour sécuriser les accès.
- Ajout d'un fichier de configuration.
- Ajout de l'argument --db_name.
- Ajout de l'argument --eml_sender.
- Ajout de l'argument --lst_bkends.
- Amélioration de la doc et de l'aide en ligne.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dynahost-1.1.0.tar.gz
.
File metadata
- Download URL: dynahost-1.1.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d792c8973712e71aa63d0d2d0a94fe1a15ea00fa9d717421fde7798caa1a14d |
|
MD5 | 4b4fd06da2233b45b38ef42fdbc79579 |
|
BLAKE2b-256 | fb7cd00a7264f1dfb5824c3bafc74ea23d9f8e80bb8d89c79c3e1b36e088612a |
File details
Details for the file dynahost-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: dynahost-1.1.0-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.3 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ee7b850bfe679e4f9eb46a070f17981ef3cc8012ef200c70db05ab614afb552 |
|
MD5 | 7863d2e618e1c6da602d518b29e881b2 |
|
BLAKE2b-256 | 7e24b0c02b9c8f403805c1015897eb718d8dc8925b253262054800c76d23da8d |