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
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
Possible de faire avec discord ?
Aucune idée