Bloquear cuenta de usuario después de n intentos fallidos de inicio de sesión en Linux

El fortalecimiento del servidor Linux es una de las tareas importantes para los administradores de sistemas cuando se trata de servidores de producción. Se recomienda habilitar la política de intentos de inicio de sesión o ssh, lo que significa que la cuenta del usuario debe bloquearse automáticamente después de n números de intentos de inicio de sesión o ssh fallidos (o incorrectos).

En distribuciones de Linux como CentOS, RHEL y Fedora, esto se logra mediante el uso del módulo pam “pam_faillock” y para distribuciones similares a Debian, esto se puede lograr usando “pam_tally2módulo pam.

En este tutorial, aprenderemos cómo bloquear cuentas de usuario después de n intentos fallidos de inicio de sesión en CentOS, RHEL, Fedora, Debian y Ubuntu.

Para CentOS/RHEL/Fedora

Agregue las siguientes líneas en dos archivos /etc/pam.d/password-auth & /etc/pam.d/system-auth,

auth     required       pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth     [default=die]  pam_faillock.so authfail audit deny=3 unlock_time=600
account  required       pam_faillock.so

Donde,

  • Auditoría -> habilitará los registros de auditoría para el intento de inicio de sesión del usuario en un archivo de registro seguro
  • Denegar = 3 -> bloqueará al usuario después de 3 intentos de inicio de sesión fallidos, puede cambiar este número según sus requisitos
  • unlock_time=600 –> significa que la cuenta del usuario permanecerá bloqueada durante 10 minutos (600 segundos), si desea que la cuenta de usuario se bloquee para siempre, configure este parámetro como «unlock_time=nunca».

Nota: Para bloquear la cuenta raíz también después de n inicios de sesión incorrectos, agregue «even_deny_root” parámetro en las líneas de la sección de autenticación, el ejemplo se muestra a continuación

auth    required       pam_faillock.so preauth silent audit even_deny_root deny=3 unlock_time=600
auth    [default=die]  pam_faillock.so authfail audit even_deny_root deny=3 unlock_time=600

Como podemos ver arriba, tenemos dos líneas para la sección de autenticación y una línea para la sección de cuenta, el orden es muy importante al agregar estas líneas a los archivos. El ejemplo se muestra a continuación donde estas líneas deben agregarse,

[[email protected] ~]# vi /etc/pam.d/password-auth

pam-contraseña-auth-archivo-linux

[[email protected] ~]# vi /etc/pam.d/system-auth

pam-system-auth-archivo-linux

Después de realizar cambios en ambos archivos, reinicie el servicio ssh usando el siguiente comando systemctl,

[[email protected] ~]# systemctl restart sshd

Hagamos la prueba de si la cuenta de usuario se bloqueará después de tres intentos fallidos de inicio de sesión o no.

Supongamos que tenemos una cuenta local con el nombre «pkumar», intentaremos hacer ssh en nuestro sistema Linux con esta cuenta con contraseñas incorrectas,

$ ssh [email protected]
[email protected]'s password:
[email protected]'s password:
[email protected]'s password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

Ahora vea registros seguros usando el comando tail,

[[email protected] ~]# tail /var/log/secure

archivo de registro seguro-linux

Los registros anteriores confirman que la cuenta se ha bloqueado después de tres intentos de inicio de sesión incorrectos, verifiquemos también desde el comando de bloqueo por falla,

[[email protected] ~]# faillock --user pkumar
pkumar:
When                Type  Source                     Valid
2019-12-15 01:50:39 RHOST 192.168.29.157             V
2019-12-15 01:50:43 RHOST 192.168.29.157             V
2019-12-15 01:50:47 RHOST 192.168.29.157             V
[[email protected] ~]#

Para vaciar o borrar estos intentos fallidos de inicio de sesión, ejecute el siguiente comando de bloqueo de fallas,

[[email protected] ~]# faillock --user pkumar --reset
[[email protected] ~]# faillock --user pkumar
pkumar:
When         Type  Source         Valid
[[email protected] ~]#

Pasemos a una distribución similar a Debian (Ubuntu, Linux Mint y Debian)

Para Debian, Ubuntu y Linux Mint

Agregue la siguiente línea en el archivo “/etc/pam.d/common-auth”,

auth    required           pam_tally2.so onerr=fail deny=3 unlock_time=600 audit

si desea bloquear la cuenta raíz también después de tres inicios de sesión incorrectos, agregue la siguiente línea,

auth    required           pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600

Donde:

  • Onerr=fail –> En caso de error emitir un fail
  • deny=3 –> Después de tres intentos fallidos de inicio de sesión, la cuenta se bloqueará
  • unlock_time=600 –> Significa que la cuenta permanecerá bloqueada durante 10 minutos o 600 segundos
  • audit -> Significa auditar los registros en el archivo audit.log
  • even_deny_root –> Bloquear la cuenta raíz después de tres inicios de sesión incorrectos
  • root_unlock_time=600 –> La cuenta raíz permanecerá bloqueada durante 10 minutos o 600 segundos después de 3 intentos fallidos de inicio de sesión

Agreguemos la línea de discusión anterior en el archivo «/etc/pam.d/common-auth” usando el editor vi,

[email protected]-linux:~$ sudo vi /etc/pam.d/common-auth

archivo de autenticación común-ubuntu

Después de realizar los cambios anteriores, guarde y salga del archivo y reinicie el servicio ssh usando el siguiente comando:

[email protected]:~$ sudo systemctl restart sshd

Probemos si las cuentas están bloqueadas después de 3 inicios de sesión ssh incorrectos,

Supongamos que tenemos un usuario «devops» local, intentaremos hacer ssh en el sistema Ubuntu con contraseñas incorrectas

$ ssh [email protected] 
[email protected]'s password: 
[email protected]'s password: d
[email protected]'s password: 
Permission denied (publickey,password).

Ahora vea el archivo de registro de autenticación para ver si los intentos de inicio de sesión incorrectos se capturan o no,

[email protected]:~$ tail /var/log/auth.log

autenticación-archivo-de-registro-ubuntu

Los registros anteriores confirman que la cuenta ha sido bloqueada, verifiquemos desde el comando pam_tally2,

[email protected]:~$ sudo pam_tally2 -u devops
Login       Failures Latest failure     From
devops      6    12/15/19 07:45:02  192.168.29.157
[email protected]:~$

Para borrar estos intentos fallidos de inicio de sesión, use el siguiente comando pam_tally2,

[email protected]:~$ sudo pam_tally2 -u devops --reset
Login        Failures Latest failure     From
devops       6    12/15/19 07:45:02  192.168.29.157
[email protected]:~$
[email protected]:~$ sudo pam_tally2 -u devops
Login        Failures Latest failure     From
devops       0
[email protected]:~$

Eso es concluir el artículo, por favor no dude en compartir los comentarios y opiniones.

Leer también : Cómo hacer cumplir las políticas de contraseñas en Linux (Ubuntu / CentOS)

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *