GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo enumerar inicios de sesión SSH fallidos en Linux

"No hay blanco ni negro, solo hay tonos de gris. No podemos decir si es bueno o malo".

Y a veces necesitamos profundizar en los tonos de gris y buscar problemas antes de que ocurran. Una de estas comprobaciones podría ser una búsqueda de intentos de inicio de sesión SSH fallidos. Afortunadamente, Ubuntu viene con una solución que es lo suficientemente simple pero lo suficientemente poderosa para detectar la mayoría de los casos en los que alguien permite contraseñas débiles y ataques de fuerza bruta.

Cada intento de iniciar sesión en el servidor SSH se registra en un archivo llamado auth.log ubicado en /var/log/auth.log por el demonio rsyslog.

Los administradores pueden revisar los registros para ver si hay tráfico entrante extraño. Un archivo de registro contiene mucha información en texto sin formato, pero no es fácil leer todo el resultado. Necesitamos aprender a usar grep para buscar en el archivo de registro y, en este ejemplo, nos centraremos en los intentos fallidos.

Instalando OpenSSH

OpenSSH es un servicio que proporciona acceso remoto seguro a los sistemas en forma de un protocolo de capa de aplicación, también incluye el programa de línea de comandos scp. Inicie sesión como usuario root o cambie a un usuario con privilegios sudo, luego use el siguiente comando para instalar OpenSSH:

sudo apt-get update
sudo apt-get install openssh-server -y

Este comando debería instalar OpenSSH y sus dependencias. Debería ver que también se están instalando paquetes adicionales porque OpenSSH requiere bastantes para funcionar correctamente.

Después de la instalación, puede habilitar ssh escribiendo el siguiente comando en la ventana del terminal:

sudo systemctl enable ssh

Debería ver un resultado similar a la imagen a continuación en la ventana de su terminal si el comando fue exitoso:

Los siguientes comandos se pueden usar para detener SSH en máquinas con Ubuntu en caso de que desee deshabilitarlo:

sudo systemctl stop ssh

Se puede iniciar de nuevo ejecutando:

sudo systemctl start ssh

Para verificar si el servidor SSH se está ejecutando, puede usar el siguiente comando:

sudo systemctl status ssh

Debería ver un resultado similar en su terminal:

En la captura de pantalla anterior, puede ver que el servidor SSH ya se está ejecutando y habilitado, lo que significa que se ejecutará en el momento del arranque.

Cómo encontrar todos los intentos fallidos de inicio de sesión SSH

Un intento de inicio de sesión fallido puede deberse a una variedad de razones y no solo a un intento de inicio de sesión automatizado. Un intento de inicio de sesión fallido puede ocurrir cuando:

  • Un usuario puede escribir mal su contraseña.
  • Intentando usar una contraseña incorrecta para iniciar sesión.
  • El servidor está bajo un ataque de fuerza bruta y los piratas informáticos intentan adivinar la contraseña mediante scripts automatizados.

La forma más fácil de enumerar todos los intentos de inicio de sesión SSH fallidos es usar el siguiente comando:

grep "Failed password" /var/log/auth.log

Debería ver un resultado similar en su terminal:

Los siguientes comandos se pueden usar para mostrar inicios de sesión SSH fallidos en CentOS o RHEL en una versión ligeramente modificada del comando anterior:

grep "Failed" /var/log/secure
grep "authentication failure" /var/log/secure

Alternativamente, podemos ver los registros usando el demonio Systemd con el comando journalctl:

journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"

Para mostrar una lista de todas las direcciones IP que son responsables de los intentos de inicio de sesión SSH fallidos, con el número de intentos al lado, puede usar este comando:

grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr

Es inevitable que de vez en cuando se produzca un intento fallido de inicio de sesión. Sin embargo, sigue siendo crucial identificar los inicios de sesión fallidos en su servidor. Es importante identificar las direcciones IP que acceden con frecuencia a su servidor SSH y tomar las medidas necesarias.

Conclusión

En esta guía, hemos cubierto cómo encontrar intentos de inicio de sesión SSH fallidos en una máquina Linux. También aprendimos un enfoque diferente que involucra el uso del comando journalctl. Esperamos que este artículo le haya resultado útil. No dude en enviar sus comentarios o cualquier pregunta que pueda tener en la sección de comentarios.


Linux
  1. Cómo usar el comando SS de Linux

  2. Cómo enumerar los procesos en ejecución en Linux

  3. Cómo administrar y enumerar servicios en Linux

  4. Cómo cambiar el puerto SSH en Linux

  5. Cientos de inicios de sesión ssh fallidos

Cómo enumerar los miembros de un grupo en Linux

Cómo listar usuarios en Linux

Cómo crear una frase de contraseña de clave SSH en Linux

Cómo enumerar discos en Linux

Cómo enumerar servicios en Linux

Cómo SSH al servidor a través de Linux