GNU/Linux >> Tutoriales Linux >  >> Linux

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 fallidos (o incorrectos) de inicio de sesión o ssh.

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_tally2 ” mó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

Dónde,

  • 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 fallidos de inicio de sesión, 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 del usuario se bloquee para siempre, configure este parámetro como "unlock_time=never"

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 se deben agregar estas líneas,

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

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

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

[[email protected] ~]# systemctl restart sshd

Probemos 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

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, emita 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
  • auditoría –> 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]:~$ sudo vi /etc/pam.d/common-auth

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

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]:~$

Con eso concluye el artículo, no dude en compartir sus comentarios y opiniones.


Linux
  1. UNIX/Linux:Cómo bloquear o deshabilitar una cuenta de usuario

  2. UNIX/Linux:cómo obligar al usuario a cambiar su contraseña en el próximo inicio de sesión después de restablecer la contraseña

  3. CentOS/RHEL 6:Bloquear cuenta de usuario después de N número de intentos de inicio de sesión incorrectos

  4. Cómo verificar los intentos de inicio de sesión fallidos o incorrectos en Linux

  5. Compruebe los intentos de inicio de sesión de usuario exitosos y fallidos en Linux

11 formas de encontrar información de cuenta de usuario y detalles de inicio de sesión en Linux

Cómo forzar al usuario a cambiar la contraseña en el próximo inicio de sesión en Linux

Comando userdel - Eliminar cuenta de usuario del sistema Linux

Cómo deshabilitar el inicio de sesión SSH para un usuario específico en Linux

Comando pam_tally2:bloquear y desbloquear inicios de sesión fallidos de ssh en Linux

Ejemplos de comandos de inicio de sesión en Linux