Monitoree una sesión SSH entrante en tiempo real

21

¿Existe algún software de Linux para monitorear una sesión ssh entrante? En un trabajo anterior me dijeron que si alguna vez necesitabas el apoyo de Red Hat, por ejemplo, podías tenerlos SSH en tu máquina y ver lo que estaban haciendo.

Estoy en una situación similar en la que quiero meterme en la máquina de mis amigos para ayudarlo, pero quiero que pueda ver lo que estoy haciendo con fines educativos y para asegurarme de que no hago nada malicioso.

¿Alguna sugerencia?

Gracias

Ricardo
fuente
había un anuncio de ObserveIT en esta página, y son una solución lo suficientemente buena como para probar si algo quería SaaSish.
kagali-san

Respuestas:

15

GNU Screen tiene esta capacidad, puede permitir que un usuario de shell específico solo opere a través de la pantalla.

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

Adam Gibbins
fuente
1
El único problema con la pantalla es que deberán iniciar la sesión de pantalla una vez que inicien sesión para ver la sesión. Además, como técnico que proporcionó soporte remoto y lo ha hecho, no puede monitorear todas las ventanas de la pantalla a la vez, por lo que aún pueden ejecutar comandos en otra pantalla y ocultarlo.
Ciudadano Kepler
3

Creo que lo que buscas es la pantalla, pero si no quieres sentarte a mirar y quieres "grabar" la sesión de un usuario, puedes mirar sudo shell.

Si configura al usuario con esto como su shell, puede tener una grabación completa de todo lo que ocurrió, y puede "volver a reproducirlo" y verlo cuando sea necesario.

El único inconveniente posible de esto es que los registros pueden crecer mucho, por ejemplo, si ejecutan un comando como find /, también tendrá todo eso registrado, por lo que probablemente tendrá que elegir qué cuentas habilitar en lugar de hacerlo. globalmente

En cuanto a permitir el acceso de inicio de sesión de los proveedores, esto probablemente sea perfecto, ya que tiene una pista de auditoría completa de todo lo que hicieron, todo (incluso el retroceso) se graba y almacena para su reproducción.

log_outputes tu opción de grabadora para sudoers, y sudoreplay(8)es tu jugador.

Según la sudoerspágina del manual:

log_output: si está configurado, sudo ejecutará el comando en un pseudo tty y registrará todos los resultados que se envían a la pantalla, de forma similar al comando script (1). Si la salida estándar o el error estándar no está conectado al tty del usuario, debido a la redirección de E / S o porque el comando es parte de una tubería, esa salida también se captura y almacena en archivos de registro separados.

En el archivo sudoers, pondrías algo como esto:

User_Alias SHELL_ACCOUNTS = root,jack
Defaults: SHELL_ACCOUNTS log_output

O para el registro basado en grupos

Defaults:%shellusers log_output

Ver http://www.gratisoft.us/sudo/sudoers.man.html para más detalles.

Jerjes
fuente
¿Podrías dar un poco más de información? ¿Qué quieres decir exactamente con "sudo shell"? ¿Cómo configuraría el shell de un usuario para eso? ¿Dónde se guardarían los registros?
GJ.
He actualizado mi respuesta con algunos detalles para aclarar.
Jerjes
2

Puedes usar el comando de script. Cree una línea en .login o .profile del usuario cuya sesión ssh desea supervisar. Cuando inicia sesión, se genera un script / log de su E / S que le da la ejecución de comandos y la salida de esos comandos. En tiempo real, puede simplemente seguir el guión y ver lo que hace el usuario en tiempo real.

No se puede pegar un enlace para su referencia, pero puede simplemente googlear en el comando "script" y obtendrá las referencias.

Viky
fuente
1

Puedes usar kibitz . Citando de la página del manual:

kibitz permite que dos (o más) personas interactúen con un shell (o cualquier programa arbitrario).

En Fedora, está incluido en el paquete de esperar .

Cristian Ciupitu
fuente
0

pantalla o tmux.

compartir tmux es un poco más fácil.

Ahora no
fuente