¿Cómo puedo rastrear quién es SSH en mi máquina Linux?

23

Estoy ejecutando Ubuntu 10.04. ¿Hay alguna manera de obtener un informe diario de quién ha iniciado sesión en el cuadro, a qué hora e incluso, esto puede ser pedir demasiado, un informe de los comandos que usaron? Este es un cuadro de bajo uso, por lo que creo que sería una buena manera de ver qué actividad está sucediendo en él.

En esta misma línea, escuché que no era posible rastrear cuando las cosas se hacen en la caja a través de shells no interactivos, como rsync o simplemente ejecutar comandos individuales a través de ssh. ¿Es eso cierto, o hay una manera de registrar y rastrear esto también?

cwd
fuente

Respuestas:

21

La información de quién inició sesión cuando está disponible en /var/log/auth.log(u otros archivos de registro en otras distribuciones). Existen múltiples programas de monitoreo de registros que pueden extraer la información que configura como relevante. En cualquier sistema cuerdo, se registra cada autenticación de usuario.

Para registrar cada invocación de comando (pero no sus argumentos), utilice la contabilidad de procesos , proporcionada por el acctpaquete Instalar acct en Ubuntu. Si el subsistema de contabilidad está en funcionamiento, lastcommmuestra información sobre los procesos terminados.

Gilles 'SO- deja de ser malvado'
fuente
3
/var/log/secure.log es otro archivo de registro común
Adrian Cornish
9

También puede usar whoo wpara ver quién está actualmente conectado al sistema, incluidos los usuarios de SSH.

Tim
fuente
10
lastpodría ser una mejor opción para lo que estaba buscando el OP ...
Jason Jason
1
en efecto. "último" es el comando que desea.
Sirex
1
Esta es una respuesta MUCHO mejor que la seleccionada.
PaulBGD
0

Por lo general, cuando alguien inicia sesión en un sistema de usuario y luego en / var / log / messages se imprime como:

sshd[18468]: Accepted keyboard-interactive/pam for root from 134.64.66.666 port 49867 ssh2

Así que solo grep los mensajes como:

grep -E "Accepted keyboard-interactive/pam for" /var/log/messages
RKum
fuente
0

También puede modificar el shell bash para hacer algo de rsylog.

Efectivamente, configura rsyslog en un host remoto para aceptar conexiones específicas. Luego modifique el shell del host en el que desea monitorear compilando su versión, con una que tenga habilitado lo siguiente:

vi config-top.h
#define SYSLOG_HISTORY
#if defined (SYSLOG_HISTORY)
#  define SYSLOG_FACILITY LOG_USER
#  define SYSLOG_LEVEL LOG_INFO
#endif

Una vez compilado con esto habilitado, puede reemplazar bash con esta versión O hacer que los usuarios inicien sesión en esta redirigiendo sus inicios de sesión.

Para más información:

https://www.pacificsimplicity.ca/blog/remote-logging-using-syslog-and-logging-shell-commands-remotely

Mcdoomington
fuente
Multa. Lo actualizaré
mcdoomington