Recevoir des alertes Telegram pour chaque connexion SSH

1/52/53/54/55/5 (3 votes, moyenne: 2,33 sur 5)
Loading...
R

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

Aujourd’hui, on va voir comment recevoir une alerte Telegram à chaque fois que l’on se connecte en SSH à un serveur.

Aussi, on verra comment mettre ça en place pour une infrastructure conséquente de façon automatisée avec Ansible.

 

Le principe :

Dans l’idée, on va créer un bot Telegram pour recevoir toutes les notifications, histoire de garder un historique pour le SSH (ça ne remplace pas un serveur de log évidemment).

Ensuite, on va créer un script que l’on placera dans /etc/profile.d/. Ce script sera lu à chaque ouverture de session et renverra les informations suivantes que vous pouvez voir sur l’image :

 

 

Création du bot Telegram :

Commencez un chat avec https://telegram.me/botfather.

Écrivez /newbot dans le chat et donnez le nom et le nom d’utilisateur de votre bot. Notez bien le HTTP API qui vous sera donné :

 

Maintenant, insérez votre token dans l’url suivante et accédez-y :

https://api.telegram.org/bot-token-/getUpdates

 

Une fois la page ouverte, envoyez un message à votre bot :

 

Actualisez la page et cherchez le chat id :

 

Notez bien le Chat ID et le token.

 

Configuration du script sur un serveur :

Installez git et curl avec la commande suivante :

apt-get install git curl

 

Ensuite, récupérez le script avec la commande suivante :

cd /opt/ && git clone https://github.com/stylersnico/ssh-login-alert-telegram

 

Éditez le script d’alerte :

nano /opt/ssh-login-alert-telegram/alert.sh

 

Placez votre token et votre chat ID au début du fichier :

USERID=""
KEY=""

 

Lancez ensuite le script suivant pour ajouter le script dans /etc/profile.d/ :

sh /opt/ssh-login-alert-telegram/deploy.sh

 

Testez le bon fonctionnement avec la commande suivante :

sh /etc/profile.d/telegram-alert.sh

 

Configuration du script sur une infrastructure complète avec Ansible :

Vous devez déjà avoir un Ansible configuré pour que cela soit fonctionnel. Pour plus d’informations sur Ansible : https://www.abyssproject.net/?s=ansible

 

Rendez-vous ici et téléchargez les fichiers de configuration à placer dans votre dossier Ansible : https://github.com/stylersnico/Deploy-Telegram-SSH-Alerting-with-Ansible

Éditez le script d’alerte :

nano /etc/ansible/ressources/conf/ssh/alert.sh

Placez votre token et votre chat ID au début du fichier :

USERID=""
KEY=""

Lancez ensuite le playbook qui déploiera le script sur l’ensemble de votre infrastructure :

ansible-playbook /etc/ansible/playbooks/installs/ssh-telegram.yml

 

Remerciements :

Merci à @Noobunbox de m’avoir dit que ça existait 🙂

Merci à @MyTheValentinus pour le script de base : https://github.com/MyTheValentinus/ssh-login-alert-telegram

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

3 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
chuckbart
chuckbart
5 années plus tôt

Bonjour merci pour ton tuto mais après avoir tout suivi à la lettre rie fonctionne sur mon centos.

Toutes les commandes passent sans problème (à part hostame -f mais j’ai changé la syntaxe) mais aucune alerte.

En espérant que tu puisses m’aider ?

Bonne continuation

Anoynome
Anoynome
7 années plus tôt

Possible de faire avec discord ?