Recherche de site Web

Comment recevoir des alertes par e-mail pour les connexions SSH (root et utilisateurs)


Chaque fois que nous installons, configurons et sécurisons des serveurs Linux dans un environnement de production, il est crucial de garder une trace de ce qui se passe sur les serveurs et de savoir qui s’y connecte, en particulier en ce qui concerne la sécurité des serveurs.

Pourquoi? Parce que si quelqu’un se connecte au serveur en tant qu’utilisateur root en utilisant des tactiques de force brute sur SSH, alors pensez à la façon dont il va détruire votre serveur.

Tout utilisateur qui obtient un accès root peut faire ce qu’il veut. Pour bloquer de telles attaques SSH, lisez nos articles suivants qui décrivent comment protéger les serveurs contre de telles attaques.

  • 5 bonnes pratiques pour prévenir les attaques de connexion SSH Brute-Force sous Linux
  • Utilisez Pam_Tally2 pour verrouiller et déverrouiller les tentatives de connexion SSH infructueuses
  • 5 meilleures pratiques de sécurité pour les serveurs OpenSSH

Par conséquent, il n’est pas recommandé d’autoriser la connexion root directe via une session SSH, et il est recommandé de créer des comptes non root avec un accès sudo. Chaque fois qu’un accès root est nécessaire, connectez-vous d’abord en tant qu’utilisateur normal, puis utilisez « su » pour passer à l’utilisateur root.

Pour désactiver les connexions racine SSH directes, suivez cet article, qui montre comment désactiver et limiter les connexions racine en SSH.

Cependant, ce guide présente une méthode simple pour recevoir des notifications d’alerte par e-mail lorsqu’une personne se connecte en tant qu’utilisateur root ou en tant qu’utilisateur normal. Il doit envoyer une notification d’alerte par e-mail à l’adresse e-mail spécifiée, avec l’adresse IP de la dernière connexion.

Par conséquent, une fois que vous avez identifié l’adresse IP de la dernière connexion effectuée par un utilisateur inconnu, vous pouvez bloquer la connexion SSH à partir de cette adresse IP particulière à l’aide de la règle de pare-feu comme indiqué.

Utilisation d’iptables :

sudo iptables -A INPUT -s <IP_Address> -p tcp --dport ssh -j DROP

Utilisation de firewalld :

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP_Address>" port protocol="tcp" port="22" reject'
sudo firewall-cmd --reload

Utilisation de UFW (Uncomplicated Firewall) :

sudo ufw deny from <IP_Address> to any port 22
sudo ufw reload

Comment configurer des alertes par e-mail de connexion SSH dans un serveur Linux

Pour réaliser ce tutoriel, vous devez avoir un accès root level sur le serveur et une petite connaissance de l’éditeur de texte nano ou vi ainsi que mailx (client mail) installé sur le serveur pour envoyer les emails.

En fonction de votre distribution Linux, vous pouvez installer le client mailx à l’aide de l’une des commandes suivantes.

sudo apt install mailutils     [On Debian, Ubuntu and Mint]
sudo yum install mailx         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/mailx  [On Gentoo Linux]
sudo apk add mailx             [On Alpine Linux]
sudo pacman -S mailx           [On Arch Linux]
sudo zypper install mailx      [On OpenSUSE]    
sudo pkg install mailx         [On FreeBSD]

Définir des alertes par e-mail de connexion racine SSH

Connectez-vous maintenant en tant qu’utilisateur root et allez dans le répertoire personnel de la racine en tapant la commande cd /root.

cd /root

Ensuite, ajoutez une entrée au fichier .bashrc, cela définit les variables d’environnement locales pour les utilisateurs et effectue certaines tâches de connexion. Par exemple, ici, nous définissons une alerte de connexion par e-mail.

Ouvrez le fichier .bashrc avec l’éditeur vi ou nano. N’oubliez pas que .bashrc est un fichier caché ; Vous ne le verrez pas à l’aide de la commande ls -l. Vous devez utiliser l’indicateur -a pour voir les fichiers cachés sous Linux.

vi .bashrc
or
nano .bashrc

Ajoutez la ligne suivante au bas du fichier. Assurez-vous de remplacer « ServerName » par le nom d’hôte de votre serveur et remplacez « [email » par votre adresse e-mail.

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email 

Enregistrez et fermez le fichier, déconnectez-vous et reconnectez-vous.

Une fois que vous vous connectez via SSH, un fichier .bashrc est exécuté par défaut et vous envoie une alerte par e-mail pour la connexion root, comme indiqué.

Exemple d’alerte par e-mail :

ALERT - Root Shell Access (Database Replica) on: Thu Nov 28 16:59:40 IST 2023 tecmint pts/0 2023-11-28 16:59 (172.16.25.125)

Définir des alertes par e-mail de connexion utilisateur SSH normale

Connectez-vous en tant qu’utilisateur normal (tecmint) et accédez au répertoire personnel de l’utilisateur en tapant la commande cd /home/tecmint/.

cd /home/tecmint

Ensuite, ouvrez le fichier .bashrc et ajoutez la ligne suivante à la fin du fichier. Assurez-vous de remplacer les valeurs comme indiqué ci-dessus.

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email 

Enregistrez et fermez le fichier, déconnectez-vous et reconnectez-vous. Une fois que vous vous reconnectez, un fichier .bashrc est exécuté et vous envoie une adresse e-mail de l’alerte de connexion de l’utilisateur.

De cette façon, vous pouvez définir une alerte par e-mail pour que tout utilisateur reçoive des alertes de connexion. Il suffit d’ouvrir le fichier .bashrc de l’utilisateur qui doit se trouver dans le répertoire personnel de l’utilisateur (c’est-à-dire /home/username/.bashrc) et de définir les alertes de connexion comme décrit ci-dessus.

Articles connexes: