7 votes

Notification par e-mail de chaque connexion SSH au serveur Linux

Je voudrais être notifié de chaque connexion SSH au serveur Linux (Debian).

J'ai déjà vu quelques méthodes qui proposaient d'ajouter la commande mail dans son propre .bashrc, mais cette approche ne semble pas couvrir tous les cas possibles.

Quelle est la meilleure pratique pour faire de telles notifications transversales sur les connexions SSH ?

10voto

Tom Points 720

Depuis que vous avez précisé que vous voulez un email pour chaque authentification réussie, pam_notify est un excellent module candidat pour cela.

Ajoutez-le en tant que ligne session required à la fin de votre fichier /etc/pam.d/sshd ou équivalent.

7voto

voretaq7 Points 78924

La meilleure pratique est de ne pas le faire à moins que vous ne DEVIEZ vraiment le faire (la sécurité de cette machine est SI critique).

Si vous DEVIEZ vraiment le faire, vous ne voulez pas trafiquer avec des fichiers .rc shell que les gens peuvent changer - c'est une solution bancale.

La bonne manière est probablement d'utiliser les fonctionnalités de vérification intégrées à Linux (voir les pages de manuel pour auditd, et son fichier de configuration auditd.conf), mais j'ai une expérience très limitée des fonctionnalités de vérification dans Linux (en particulier je ne suis pas sûr que le sous-système de vérification permette d'envoyer des emails facilement - je sais que vous pouvez le faire sur FreeBSD sans trop de difficultés cependant).

La manière moins correcte mais tout de même décente serait d'utiliser un module PAM qui réussit toujours et envoie un email indiquant qui a essayé de se connecter.

La manière la moins correcte mais au moins votre boîte de réception n'est pas remplie serait de regrouper votre fichier auth.log ou équivalent et de l'envoyer par email à quelqu'un chaque nuit. Si tout ce dont vous avez besoin est un enregistrement de base, ce serait mon choix : le volume d'emails généré par mes autres suggestions serait énorme sur un système très actif.

4voto

pQd Points 29251

Vous pouvez surveiller périodiquement votre /var/log/auth.log ou mieux encore le configurer en tant que journalisation à distance afin que l'attaquant ne puisse pas effacer la trace des connexions réussies.

3voto

MadHatter Points 77602

Depuis que cette question a été posée depuis les archives, mon inclination serait d'exécuter swatch contre /var/log/auth.log (ou le fichier approprié de la configuration de votre distribution / syslog), et de le configurer pour répondre par e-mail à chaque occurrence de sshd.*Accepted.*, car cela devrait capturer à la fois les connexions basées sur un mot de passe et celles basées sur une clé :

Feb 21 10:06:44 lory sshd[24414]: Accepted publickey for username from ::1 port 39197 ssh2
Feb 21 10:08:16 bill sshd[20643]: Accepted password for username from ::1 port 46835 ssh2

ce que vous pourriez faire avec un fichier de configuration disant, par exemple,

watchfor /sshd.*Accepted.*/
               mail address=you@example.com,subject="SSH login on host foo"

et par exemple swatch -c /the/above/file /var/log/auth.

2voto

Antonio Points 21
Nous le faisons en créant un fichier /etc/profile.d/notify.sh avec le contenu suivant:

#!/bin/sh

sender="hostname@example.com"
recepient="admingroup@example.com"
subject="Compte privilégié utilisé pour la connexion"
message="\`env\`"
    echo "$message" | mail -s "$subject" -r "$sender" -S smtp=mail.example.com "$recepient"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X