Cuando tenemos que gestionar un servidor GNU/Linux, existe la posibilidad de que tengas varios usuarios accediendo al sistema. En algún momento, es posible que quieras saber cuando un usuario inició sesión en el sistema. También es posible saber desde qué dirección IP se accedió al sistema.

Incluso si no tienes varios usuarios, es interesante poder revisar el historial de acceso para verificar si ha habido algún acceso no autorizado.

En este tutorial, explicaremos como revisar el historial de inicio de sesión en GNU/Linux para revisar los accesos de nuestros sistemas.

Ver el historial de inicio de sesión de Linux

GNU/Linux es un sistema operativo muy bueno para mantener registros de todo lo que sucede en su sistema. Entre todos estos registros, también podemos encontrar registros sobre el inicio de sesión y los intentos de acceso al servidor.

La información de inicio de sesión se almacena en tres lugares, todos estos registros son ficheros binarios:

  • /var/log/wtmp: registros de las últimas sesiones de inicio de sesión.
  • /var/run/utmp: registros de las sesiones de inicio de sesión actuales.
  • /var/log/btmp: registros de los intentos de inicio de sesión incorrectos.

Estos ficheros al ser binarios, no se pueden visualizar con una cat o un less, por lo que vamos a tener que usar una serie de comandos del sistema para revisarlo. Veamos que opciones tenemos:

Ver el historial de todos los usuarios registrados

Para ver el historial de todos los inicios de sesión exitosos en su sistema, simplemente use el último comando.

last

La salida de este comando debería de verse de la siguiente forma. Como podemos observar, se enumera el usuario, la dirección IP, la fecha, la hora del inicio de sesión y el tiempo que duró la sesión. pts/1 o pts/0 significa que se accedió a través de SSH.

t3rr0rz0ne pts/1    192.168.1.111    Sat Nov 12 10:07 - 15:48  (05:41)
root       pts/0    192.168.1.222    Sat Nov 12 10:05 - 15:49  (05:44)
voidnull   pts/0    192.168.1.121    Fri Nov 11 22:35 - 23:03  (00:28)
t3rr0rz0ne pts/0    192.168.1.234    Fri Nov 11 13:56 - 16:12  (02:16)

wtmp begins Thu Nov 10 21:36:45 2022

La última línea de la salida se indica cuándo se creó el archivo de registro wtmp. Esto es un detalle importante, porque si el archivo wtmp se elimina, el comando last no podrá mostrar el historial de los inicios de sesión anteriores a esa fecha.

Ver el historial de inicio de sesión de un determinado usuario

Si quieres filtrar por usuario, a parte de hacerlo con un grep, puedes utilizar el mismo comando last para mostrar un usuario en particular.

last [usuario]

Verá la información de inicio de sesión solo del usuario seleccionado:

# last voidnull
voidnull pts/0    192.168.1.121    Tue Nov 12 12:07 - 14:25  (02:17)
voidnull pts/0    192.168.1.121    Tue Nov  5 12:22 - 12:28  (00:06)

wtmp begins Mon Mar  4 13:35:54 2019

Ver todos los intentos fallidos de inicio de sesión de nuestro servidor

Ahora viene la parte interesante: verificar los intentos de inicio de sesión incorrectos en su servidor.

Puedes hacerlo de dos maneras. Puede usar el último comando con el archivo de registro btmp:

last -f /var/log/btmp

O puedes usar el comando lastb:

lastb

Ambos comandos producirán el mismo resultado. El lastb es en realidad un enlace al último comando con el archivo especificado.

pi       ssh:notty    79.60.41.182     Thu Dec  1 19:48 - 19:48  (00:00)
root     ssh:notty    14.98.206.170    Thu Dec  1 19:48 - 19:48  (00:00)
test     ssh:notty    113.160.196.203  Thu Dec  1 17:28 - 17:28  (00:00)
test     ssh:notty    113.160.196.203  Thu Dec  1 17:28 - 17:28  (00:00)
root     ssh:notty    122.160.69.235   Thu Dec  1 15:08 - 15:08  (00:00)
test     ssh:notty    201.28.105.119   Thu Dec  1 12:48 - 12:48  (00:00)
test     ssh:notty    201.28.105.119   Thu Dec  1 12:48 - 12:48  (00:00)
pi       ssh:notty    14.63.170.136    Thu Dec  1 10:28 - 10:28  (00:00)
root     ssh:notty    151.251.80.105   Thu Dec  1 10:28 - 10:28  (00:00)

Los intentos de acceso fallidos, pueden ser una contraseña incorrecta por un usuario legítimo o bien un bot que intenta hacer un ataque de diccionario por fuerza bruta.

Para evitar estos intentos de acceso, es muy recomendable implementar Fail2ban en tu servidor para protegerlo de este tipo de ataques.

Proteger tu servidor con Fail2ban
Cualquier máquina, incluido nuestro VPS, conectado a Internet es un objetivo potencia para ataques maliciosos. Si bien es cierto, tener un cortafuegos bien configurado evitará muchos tipos de acceso ilegítimos.
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación