Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynahost-1.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

dynahost-1.1.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

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

Hashes for dynahost-1.1.0.tar.gz
Algorithm Hash digest
SHA256 8d792c8973712e71aa63d0d2d0a94fe1a15ea00fa9d717421fde7798caa1a14d
MD5 4b4fd06da2233b45b38ef42fdbc79579
BLAKE2b-256 fb7cd00a7264f1dfb5824c3bafc74ea23d9f8e80bb8d89c79c3e1b36e088612a

See more details on using hashes here.

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

Hashes for dynahost-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ee7b850bfe679e4f9eb46a070f17981ef3cc8012ef200c70db05ab614afb552
MD5 7863d2e618e1c6da602d518b29e881b2
BLAKE2b-256 7e24b0c02b9c8f403805c1015897eb718d8dc8925b253262054800c76d23da8d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page