
Un truc que j'adore faire avec mon raspberry pi, c'est pouvoir me connecter en ssh depuis l'extérieur. Avoir un petit serveur comme ça chez soi, c'est très pratique pour héberger ses données, avoir son petit dépot git à soi, monter son propre serveur... Il suffit de connaitre son adresse IP (et d'avoir une redirection de port sur son routeur) et c'est parti. Le soucis, c'est si vous avez une adresse IP dynamique. En pratique, bien sûr l'adresse change très rarement, mais il suffit d'une coupure de courant pendant que vous êtes à l'autre bout de la France et vous perdez contact avec votre chez vous. Alors si vous êtes un peu parano comme moi, vous aimeriez bien que votre maison vous dise quand l'ip a changé.
Je partage donc un petit script que j'ai réalisé en python 3. Il vérifie que l'adresse IP n'a pas changé depuis sa dernière exécution en comparant avec un fichier contenant l'adresse. Si l'adresse a été modifiée, il enregistre la nouvelle adresse et envoie un mail. Le script nécessite d'avoir accès à un serveur smtp (ici par défaut celui de google). Les explications sont plus bas.
Paramétrage
Les paramètres sont à changer dans la fonction main. On a notamment l'adresse qui va envoyer le mail, l'adresse qui va recevoir le mail, le serveur smtp et enfin le mot de passe. Personnellement je n'aime pas mettre mon mot de passe en clair dans un script donc le script utilise un mot de passe chiffré avec la méthode de Vigenère. Le script nécessite donc également la clé (une chaine de caractère) qui a été utilisée pour chiffrer le mot de passe.Pour générer le mot de passe chiffré il faut utiliser la fonction vigenere fournie dans le script. En console dans le dossier contenant le script (et en supposant qu'il s'appelle ipcheck.py) :
$python3
>>>import ipcheck
>>>ipcheck.vigenere(maclef, monpassword)
Ce qui vous donne le mot de passe chiffré correspondant à mettre dans la variable password du script.
Attention : Étant donné que le script contient à la fois la clé et le mot de passe, le chiffrement de la clé n'est absolument pas sécurisé. Le chiffrement permet ici uniquement à ce que quelqu'un qui voit votre fichier vite fait dans votre dos ne connaisse pas votre mot de passe. A titre personnel, j'ai une adresse mail séparée spécialement pour mon Raspberry pi. Comme ça, même si quelqu'un récupère le mot de passe pour cette adresse, il ne pourra pas en faire grand chose.
Un coup de cron et en avant
Une fois le script configuré, il nous reste juste à demander l'exécution régulière du script. Pour ça, dans la ligne de commande (les éventuelles personnes sous windows pourront jouer avec les tâches planifiées) :
$crontab -e
Votre éditeur préféré s'ouvre et vous pouvez ajouter la ligne :
0 * * * * /chemin/vers/le/script
En clair, cela veut dire : exécuter le script à chaque fois qu'il est x h 0 min, soit toutes les heures. Vous pouvez adapter en fonction de vos besoins pour le faire tourner plus ou moins souvent. On sauvegarde et c'est fini.
Voilà, j'espère que ce script trouvera son utilité auprès de certains. Au pire, il est toujours là pour moi si jamais je venais à perdre mon ordinateur. N'hésitez pas à demander des précisions ou faire des remarques (constructives, cela va sans dire :-) ).
crédits photo : Keith Weller, United State Department of Agriculture
$crontab -e
Votre éditeur préféré s'ouvre et vous pouvez ajouter la ligne :
0 * * * * /chemin/vers/le/script
En clair, cela veut dire : exécuter le script à chaque fois qu'il est x h 0 min, soit toutes les heures. Vous pouvez adapter en fonction de vos besoins pour le faire tourner plus ou moins souvent. On sauvegarde et c'est fini.
Voilà, j'espère que ce script trouvera son utilité auprès de certains. Au pire, il est toujours là pour moi si jamais je venais à perdre mon ordinateur. N'hésitez pas à demander des précisions ou faire des remarques (constructives, cela va sans dire :-) ).
crédits photo : Keith Weller, United State Department of Agriculture
Super sympa, j'aime bien le libellé "bidouille".
RépondreSupprimerJ'essaierai ça ce week-end, je te dirai si ça marche ;)