Surveillez une session SSH entrante en temps réel

21

Existe-t-il un logiciel Linux pour surveiller une session ssh entrante? Lors d'un précédent travail, on m'a dit que si vous aviez besoin de l'assistance de Red Hat par exemple, vous pouviez les avoir SSH dans votre machine et vous pouviez regarder ce qu'ils faisaient.

Je suis dans une situation similaire où je veux entrer dans la machine de mes amis pour l'aider, mais je veux qu'il puisse regarder ce que je fais à des fins éducatives et m'assurer que je ne fais rien de malveillant.

Aucune suggestion?

Merci

Richard
la source
il y avait une annonce ObserveIT sur cette page, et ils sont une solution assez intéressante pour essayer si quelque chose que SaaSish voulait.
kagali-san

Réponses:

15

GNU Screen a cette capacité, vous pouvez autoriser un utilisateur de shell spécifique à fonctionner uniquement via l'écran.

https://www.linux.com/learn/tutorials/442418-using-screen-for-remote-interaction

Adam Gibbins
la source
1
Le seul problème avec l'écran est qu'ils devront démarrer la session d'écran une fois qu'ils se connecteront pour voir la session. En tant que technicien qui a fourni une assistance à distance et qui l'a fait, vous ne pouvez pas surveiller toutes les fenêtres d'écran à la fois afin qu'elles puissent toujours exécuter des commandes dans un autre écran et le masquer.
Citizen Kepler
3

Je pense que l'écran est ce que vous recherchez, mais si vous ne voulez pas rester assis à regarder et que vous voulez "filmer" la session d'un utilisateur, vous pouvez regarder sudo shell.

Si vous configurez l'utilisateur avec cela comme shell, vous pouvez avoir un enregistrement complet de tout ce qui s'est passé, et vous pouvez le "rejouer" et le regarder quand / si vous en avez besoin.

Le seul inconvénient possible est que les journaux peuvent devenir très volumineux, par exemple s'ils exécutent une commande comme find /, vous aurez également tout cela enregistré - vous devrez donc probablement choisir les comptes pour lesquels l'activer plutôt que de le faire. globalement.

Quant à permettre l'accès des fournisseurs à la connexion, c'est probablement parfait, car vous avez une piste d'audit complète de tout ce qu'ils ont fait, tout (même le retour en arrière) est enregistré et stocké pour être relu.

log_outputest votre option d'enregistrement pour les sudoers et sudoreplay(8)est votre lecteur.

Selon la sudoerspage de manuel:

log_output: S'il est défini, sudo exécutera la commande dans un pseudo tty et enregistrera toutes les sorties envoyées à l'écran, similaire à la commande script (1). Si la sortie standard ou l'erreur standard n'est pas connectée au tty de l'utilisateur, en raison de la redirection d'E / S ou parce que la commande fait partie d'un pipeline, cette sortie est également capturée et stockée dans des fichiers journaux distincts.

Dans le fichier sudoers, vous mettriez quelque chose comme ceci:

User_Alias SHELL_ACCOUNTS = root,jack
Defaults: SHELL_ACCOUNTS log_output

Ou pour la journalisation basée sur les groupes

Defaults:%shellusers log_output

Voir http://www.gratisoft.us/sudo/sudoers.man.html pour plus de détails.

Xerxès
la source
Pourriez-vous donner un peu plus d'informations? Qu'entendez-vous exactement par «sudo shell»? Comment pourrais-je définir le shell d'un utilisateur à cela? Où les journaux seraient-ils enregistrés?
GJ.
J'ai mis à jour ma réponse avec quelques détails pour clarifier.
Xerxes
2

Vous pouvez utiliser la commande de script. Créez une ligne dans .login ou .profile de l'utilisateur dont vous souhaitez surveiller la session ssh. Lorsqu'il se connecte, un script / journal est généré à partir de ses E / S qui vous donne l'exécution des commandes et la sortie de ces commandes. En temps réel, vous pouvez simplement suivre le script et regarder ce que l'utilisateur fait en temps réel.

Impossible de coller un lien pour votre référence mais vous pouvez simplement google sur la commande "script" et vous obtiendrez les références.

Viky
la source
1

Vous pouvez utiliser kibitz . Citant de la page de manuel:

kibitz permet à deux (ou plus) personnes d'interagir avec un shell (ou tout programme arbitraire).

Sur Fedora, il est inclus dans le package attendu .

Cristian Ciupitu
la source
0

J'utilise whowatch sur mon serveur.

apt-get install whowatch
Unkwntech
la source
2
Pour ceux qui veulent un lien: pttk.ae.krakow.pl/~mike/#whowatch
kdmurray
0

écran ou tmux.

Le partage tmux est un peu plus facile.

Pas maintenant
la source