Envoi automatique d’un mail lors d’un accès SSH

Dans ce tutoriel, nous allons apprendre à paramétrer un envoi de mail lors d’une connexion SSH à un serveur Linux.

Présentation

Cette solution simple et rapide vous permettra de savoir si quelqu’un se connecte à votre serveur en temps quasi réel (le temps d’envoi d’un mail).
Cette méthode peut s’appliquer à tous les utilisateurs se connectant en SSH.
Le plus intéressant à configurer est l’utilisateur root car cela permet de superviser les connexions en SSH pour root et ainsi de détecter s’il y a des connexions anormales.


Le fichier .bashrc

Chaque utilisateur possède un fichier .bashrc dans son dossier home qui peut contenir, entre autres, des commandes exécutées lors de l’initialisation de son shell.
Ce fichier est également utilisé pour configurer des alias.
C’est à partir de ce fichier dont nous allons effectuer notre envoi de mail en y plaçant les commandes adéquates dans la mesure où votre serveur sera capable d’envoyer des mails.


Un utilisateur spécifique

Nous voulons qu’à chaque connexion SSH pour l’utilisateur root, un email soit envoyé dans le but de signaler cette connexion via les commandes suivantes :

On édite donc le fichier .bashrc de l’utilisateur root pour y inclure nos commandes :

Veillez à bien conserver les quotes et apostrophes afin d’isoler la commande et le texte.

Commande pour de récupérer les informations de l’utilisateur (UID, GID et nom) avec “id” puis de couper la chaine en sortie pour ne récupérer que le nom de l’utilisateur et l’afficher dans le mail avec cut.

Commande pour récupérer les informations sur les sessions en cours avec who utilisé un peu plus tôt également et de couper la sortie pour ne récupérer que l’IP source de la connexion avec cut.

Commande d’affichage de la date et l’heure de la connexion.

Commande contenant le nom de l’hôte.

Commande d’envoi d’email

Ecriture sur le fichier /home/root/.bashrc

L’email reçu sur l’adresse fournie aura la forme suivante :


Tous les utilisateurs

Le fichier /etc/bash/.bashrc permet d’apporter une seule modification qui sera prise en compte par tous les fichiers .bashrc des utilisateurs.
Les notifications seront envoyées pour les connexions SSH de tous les utilisateurs.
Nous utiliserons donc la même commande que précédemment vers un fichier différent :