Être alerté des connexions SSH par SMS via Free Mobile


Depuis un certain temps, Free avait débloqué des « API » pour pouvoir envoyer des SMS à partir d’applications tiers en passant par son compte. J’ai commencé à m’en servir pour le projet Gladys (que je vous invite très fortement à aller regarder) et maintenant que j’ai pris un serveur dédié, je me suis dis, que ressortir cette fonctionnalité pour sécuriser les connexions SSH de ce dernier serait plus qu’utile.

Ainsi, lorsqu’une connexion SSH est effectuée sur mon serveur, je reçois automatiquement un SMS. Si c’est moi, je l’ignore, et si ce n’est pas moi, je peux me connecter rapidement à ma page d’administrateur et couper le serveur par sécurité et éviter toutes intrusions.

Il est nécessaire de disposer d’un compte Free Mobile actif, ainsi que d’une machine Linux de votre choix, du moment que cette dernière dispose d’un serveur SSH installé.
Prêt(e)s ? Commençons 🙂


Dans un premier temps, il faudra vous rendre dans la page de gestion de votre compte Free Mobile et accéder à vos options.
Une fois dans vos options, allez tout en bas et activez l’option « Notifications par SMS« .
Une fois activée, cliquez le petit « info » à coté de « Cliquez ici pour plus d’explications »
Dans ce popup, vous aurez une URL sous « exemple » du genre : « https://smsapi.free-mobile.fr/sendmsg…. »

Vos Options

Notifications par SMS

Votre URL

 

 

 

 

 

 

 

 

 

Une fois l’URL en main, coller là dans un éditeur de texte de votre choix. L’URL ce fini par msg=……
Après ce msg=, mettez le texte de votre choix, c’est ce que vous recevrez par SMS lorsqu’une session SSH sera établie sur votre serveur.
Après avoir modifier votre URL, gardez là au chaux et connectez vous au serveur sur lequel vous voulez mettre en place ce système.

Dans un premier temps, vous allez mettre dans un dossier de votre choix, un script pour appeler l’URL et envoyer le SMS.
Pour cela avec nano, vim ou autre créer un script tel que ce dernier :

#!/bin/bash
#Script file for ssh
#
#put your commands here
wget "votre url" && rm /root/send*
#
#exit by calling a shell to open for the ssh session
/bin/bash

Ne surtout pas oublier de mettre votre URL modifié entre guillemets.

La commande suivante && rm /root/send* permet de supprimer automatiquement le fichier qui va se générer lors du wget.
Après avoir enregistrer votre script, il faut le rentre exécutable :

sudo chmod +x /le/chemin/de/votrescript

Après, il faut modifier le fichier de configuration de SSH pour appeler le script à chaque connexion. Sous Debian :

sudo nano /ssh/sshd_config

Et tout à la fin du fichier il vous suffit de rajouter cette ligne :

ForceCommand /le/chemin/de/votrescript

Une fois la modification faite et enregistrée, il nous suffit de redémarrer le service SSH et de tester.

sudo service sshd restart

Il ne vous reste plus qu’à vous déconnecter de votre serveur de vous y reconnecter. Vous verrez le script charger et un SMS arriver sur votre téléphone quelques seconde après. (environ 15-20sec pour la première fois)

Et vous voilà maintenant averti à la moindre connexion SSH effectué sur votre serveur.

Enjoy 🙂