Mi Blog
▷ Cómo gestionar y bloquear los accesos SSH con Pam_Tally2

Cómo gestionar y bloquear los accesos SSH con Pam_Tally2

 

Asegurar el acceso a nuestros equipos GNU/Linux es sumamente importante hoy en día. Muchas máquinas están expuestas a Internet o en grandes redes propensas a ser atacadas por usuarios ajenos al sistema. Los sistemas GNU/Linux son muy populares y suelen accederse a todos ellos a través de la consola de SSH. Bloquear y desbloquear usuarios de forma automática es muy sencillo gracias al módulo de PAM llamado pam_tally2.

Seguid leyendo y os enseñaré controlar y bloquear los accesos indeseados a través de SSH a vuestros servidores...

🤖 Haz un resumen de este artículo con Inteligencia Artificial 🤖

💬 ChatGPT 🔍 Perplexity 🔮 Google AI Mode 🐦 Grok

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES PAM_TALLY2?

El módulo de PAM, llamado pam_tally2, se utiliza para bloquear y gestionar los accesos SSH de las cuentas de usuario, tras un cierto número de accesos fallidos a través de SSH. Pam_Tally2 guarda un registro de intentos de acceso y accesos fallidos de login.  Pam_Tally2 se basa en el módulo PAM y se puede utilizar para examinar y manipular el archivo del contador. Se puede mostrar el contador de intentos de inicio de sesión de los usuarios, establecer recuentos de forma individual y también se permite desbloquear todos los contadores de acceso de usuarios.

 

 

Pam_tally2 permite securizar los accesos a nuestros equipos GNU/Linux

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con GNU/Linux Debian/Ubuntu
  • Conexión a Internet (recomendado)

2.- BLOQUEAR Y DESBLOQUEAR CUENTAS DE USUARIO

Pam_tally2 está instalado por defecto en en casi todas las distribuciones de GNU/Linux al depender del paquete PAM de autenticación. En función de la distribución que usemos, los ficheros de configuración pueden cambiar. En las distribuciones Debian/Ubuntu/Mint el fichero de configuración es "/etc/pam.d/common-auth".  

 

 

Para controlar los accesos de "usuarios normales" del sistema, editaremos el fichero citado anteriormente y añadiremos la siguiente línea al principio del fichero:

auth required pam_tally2.so file=/var/log/tally.log onerr=fail deny=3 unlock_time=900 audit

 

 

Donde:

  • file=/var/log/tally.log : ruta del fichero de log de Pam_Tally2
  • onerr=fail : En caso de error, mostrar un error
  • deny=3 : Después de 3 intentos fallidos, la cuenta del usuario se bloqueará
  • unlock_time=900 : La cuenta se desbloqueará de forma automática cuando pasen 900 segundos (15 minutos)
  • audit : Para generar el fichero audit.log

 

 

Una vez hecho el cambio, reiniciaremos el servicio de sshd:

raul@debian:~$ sudo systemctl restart sshd

 

 

Si queremos que el control de acceso también se aplique al usuario root, añadiremos la línea siguiente:

auth required pam_tally2.so file=/var/log/tally.log onerr=fail deny=3 unlock_time=900 audit even_deny_root root_unlock_time=900

 

 

Donde:

  • file=/var/log/tally.log : ruta del fichero de log de Pam_Tally2
  • onerr=fail : En caso de error, mostrar un error
  • deny=3 : Después de 3 intentos fallidos, la cuenta del usuario se bloqueará
  • unlock_time=900 : La cuenta se desbloqueará de forma automática cuando pasen 900 segundos (15 minutos)
  • audit : Para generar el fichero audit.log
  • even_deny_root : Bloquear la cuenta de root tras 3 intentos fallidos de login
  • root_unlock_time=900 : La cuenta de root se bloqueará durante 900 segundos (15 minutos)

 

 

Una vez hecho el cambio, reiniciaremos el servicio de sshd:

raul@debian:~$ sudo systemctl restart sshd

3.- PROBAR PAM_TALLY2

Para probar si está funcionando correctamente Pam_Tally2, intentaremos acceder con un usuario del sistema a través de SSH pero con una contraseña incorrecta:

raul@debian:~$ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.

 

 

Para ver si está funcionando correctamente Pam_Tally, ejecutaremos el siguiente comando para ver los intentos de acceso fallidos del usuario raul, la hora del intento y desde que equipo se ha hecho la conexión:

raul@debian:~$ sudo pam_tally2 --user raul
Login Failures Latest failure From
raul 1 05/02/21 12:35:24 127.0.0.1

 

 

Ahora intentaremos hacer otros 2 intentos fallidos de login (para llegar al máximo de 3):

raul@debian:~$ ssh [email protected]
[email protected]'s password:
raul@debian:~$ ssh [email protected]
[email protected]'s password:

 

 

Ahora mismo al cuenta debería estar bloqueada durante 900 segundos al haber fallado 3 veces en el login:

raul@debian:~$ sudo pam_tally2 --user raul
Login Failures Latest failure From
raul 3 05/02/21 12:36:06 127.0.0.1

 

 

Ahora, si intentamos hacer login con el usuario y a contraseña correcta, vemos que no funciona porque la cuenta está bloqueada 15 minutos desde el último intento de acceso:

raul@debian:~$ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:

 

 

Si queremos resetear (desbloquear) la cuenta, ejecutaremos el siguiente comando:

raul@debian:~$ sudo pam_tally2 --user raul --reset
Login Failures Latest failure From
raul 4 05/02/21 12:36:37 127.0.0.1

 

 

Comprobamos que el contador de intentos de login está a 0, por tanto, ahora si podremos hacer login:

raul@debian:~$ sudo pam_tally2 --user raul
Login Failures Latest failure From
raul 0

 

 

Acceso correcto tras desbloquear la cuenta:

raul@debian:~$ ssh [email protected]
[email protected]'s password:
Linux debian 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Apr 22 09:42:24 2021 from 192.168.1.46

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!