Skip to main content

Recevoir une alerte Telegram à chaque accès distant SSH

Hola !

Après de long mois sans article nous voici de retour avec ce mini article qui a pour but de présenter l’une de mes créations, un script qui se lance à chaque connexion d’un utilisateur en SSH et vous renvoi l’info sur Telegram !

Le script est disponible sur mon Github: github.com/MyTheValentinus/ssh-login-alert-telegram

Et pour les utilisateurs plus avancés, il existe également un rôle Ansible pour vous aider dans le déploiement de masse !  github.com/MyTheValentinus/Deploy-Telegram-SSH-Alerting-with-Ansible

 

Installation

1. Prérequis

C’est un peu là que c’est sympa, le seul prérequis est le programme cURL, ça ne pèse rien et c’est disponible sur toutes les distributions digne de ce nom ! Et si comme moi, vous avez un peu la flemme de télécharger l’archive depuis github, alors vous pouvez aussi installer git.

apt install curl git

ou

yum install curl git

ou

pkg install curl git

 

2. Création du bot Telegram et récupération de l’ID

Tous ceux qui ont déjà bidouillé un peu Telegram connaissent le compte @BotFather c’est lui-même un bot qui permet de créer vos propres petits robots ! C’est ultra guidé, je vous laisse créer votre premier robot et récupérer sa clé API en fin de didacticiel sous la forme « XXXX:XXXXXXXXXXXXXXXXXXXXXXX ». Au besoin, je vous laisse jeter un coup d’oeil à la doc officielle de Telegram.

Par contre là ou ça se complique c’est pour récupérer l’ID du channel, groupe ou personne qui recevra les messages de notifications, pour ce faire j’utilise pour ma part un autre bot @getidsbot il vous suffit alors de transférer ou juste de lui envoyer un message pour récupérer l’ID.

Exemple de retour

Dans mon cas, ce qui m’intéresse c’est le « Origin chat id » qui sera le channel sur lequel je veux recevoir mes notifications. En utilisant un channel cela me permet d’ajouter et retirer n’importe qui quand je veux sans re-modifier la configuration sur tous mes serveurs ! Attention par contre à bien intégrer le bot au channel avec les droits de poster des messages.

Nous voilà maintenant avec notre clé API ainsi que l’ID du ou des « destinataire(s) », prochaine étape l’installation.

3. Installation

Pour l’installation rien de plus simple si vous avez optez pour l’option git !

[pastacode lang= »bash » manual= »cd%20%2Fopt%2F%0Agit%20clone%20https%3A%2F%2Fgithub.com%2FMyTheValentinus%2Fssh-login-alert-telegram » message= » » highlight= » » provider= »manual »/]

On edit ensuite le fichier « credentials.config »

[pastacode lang= »bash » manual= »%23%20Your%20USERID%20or%20Channel%20ID%20to%20display%20alert%20and%20key%2C%20we%20recommend%20you%20create%20new%20bot%20with%20%40BotFather%20on%20Telegram%0AUSERID%3D(%20USERIDn%20CHANNELIDn%20)%0AKEY%3D%22none%22″ message= » » highlight= »2-3″ provider= »manual »/]

Il est possible de configurer plusieurs destinataires, plusieurs personnes par exemple. Remplissez donc « USERID » par vos destinataires et « KEY » par la clé API du bot.

Et pour finaliser, il vous suffit d’exécuter le script de déploiement pour mettre l’action à chaque connexion SSH, pour ce faire:

[pastacode lang= »bash » manual= »bash%20deploy.sh » message= » » highlight= » » provider= »manual »/]

Et voila ! C’est fini

4. Test

Pas de test particulier, on déco / reco en SSH et si tout se passe bien on a ceci sur Telegram:

Exemple de rendu dans Telegram

Valentin Deville

Twitter: @v_deville Instagram: @valentin.deville Linkedin: @vdeville Société: Deville Computing

4 réponses à “Recevoir une alerte Telegram à chaque accès distant SSH

  1. Merci pour l’article.

    « Au besoin, je vous laisse jeter à la doc officielle de Telegram. »

    Y’a pas une ‘cahuète ?

    La bise.

  2. le flous n’est pas asse flou sur le dernier screenshot en plissant un peu les yeux on peux lire les ip et le hostname 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *