Bonjour à tous,
dans le cas d’un serveur ssh, je souhaiterais que ce dernier m’envoie un petit mail lors d’une connection (pas plus d’une ou deux connections attendues par semaine et uniquement deux utilisateurs avec un shell de connection). Idéalement même les échecs de connections devraient être transmis… Je pourrais ensuite enjoliver le tout pour recevoir des mails du type :
connection utilisateur TOTO depuis l'IP XXX.XXX.XXX.XXX, date : 28 avril 2019, 16h34
J’ai exploré plusieurs pistes, mais rien de bien folichon jusqu’à présent…
Avez-vous une idée géniale pour faire ça proprement ?
Mes pistes :
-
Modifier le ~/.bash_profile ou le ~/.profile des utilisateurs pour envoyer un mail automatiquement
Simple et efficace, mais ça exige que ces fichiers soient en lecture seule par les utilisateurs (pour éviter de supprimer cette fonction). Par ailleurs, si on change le shell de connection ces deux scripts ne seront pas lus ! Enfin on passe à côté des erreurs de login/mot de passe. -
Modifier /etc/profile pour envoyer un mail
Les utilisateurs ne peuvent plus modifier ce fichier, ce qui est un avantage.
Mais ne perd-on pas l’information de savoir quel est l’utilisateur qui se connecte ? Par ailleurs, on est toujours shell-dependant et on passe aussi à côté des erreurs de login/mot de passe -
Modifier /etc/passwd pour pointer vers un executable qui enverrait un mail PUIS exécuterait bash
Alors ça ça ne me paraît pas propre du tout… -
Je peux faire un force-command côté serveur ssh pour envoyer un mail PUIS exécuter bash
Mais dans ce cas là, mes utilisateurs ne peuvent plus faire “ssh mon_serveur whoami” (ou n’importe quelle autre commande passée en argument…). En peaufinant, on devrait pouvoir résoudre ce problème, ceci dit… -
On peut également modifier /etc/sshrc
mais la doc dit que ce fichier peut purement et simplement être by-passé si les utilisateurs ont leur propre sshrc ! Par ailleurs, la doc indique bien que sshrc répond à un besoin assez spécifique…
If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists, runs it; otherwise runs xauth. The “rc” files are given the X11 authentication protocol and cookie in
standard input. See SSHRC, below.
(…)
The primary purpose of this file is to run any initialization routines which may be needed before the user’s home directory becomes accessible; AFS is a particular example of
such an environment.
- Est-ce que systemd et ses services “oneshot” ne pourraient pas m’aider ici ? Mais j’ai un peu lu la doc, et je n’ai rien vu qui puisse répondre à mon problème…