Cómo bloquear cuentas de usuario después de intentos fallidos de inicio de sesión


Esta guía le mostrará cómo bloquear la cuenta de un usuario del sistema después de un número específico de intentos fallidos de inicio de sesión en las distribuciones CentOS, RHEL y Fedora . Aquí, el enfoque es hacer cumplir la seguridad del servidor simple mediante el bloqueo de la cuenta de un usuario después de un número consecutivo de autenticaciones fallidas.

Esto se puede lograr utilizando el módulo pam_faillock , que ayuda a bloquear temporalmente las cuentas de los usuarios en caso de varios intentos de autenticación fallidos y mantiene un registro de este evento. Los intentos fallidos de inicio de sesión se almacenan en los archivos por usuario en el directorio de recuento que es /var/run/faillock/ de forma predeterminada.

pam_faillock es parte de Linux PAM ( Módulos de autenticación conectables ), un mecanismo dinámico para implementar servicios de autenticación en aplicaciones y varios servicios del sistema que explicamos brevemente en la configuración de PAM para auditar la actividad del shell de inicio de sesión del usuario.

Cómo bloquear cuentas de usuario después de autenticaciones fallidas consecutivas

Puede configurar la funcionalidad anterior en los archivos /etc/pam.d/system-auth y /etc/pam.d/password-auth , agregando las entradas a continuación a la sección 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

Dónde:

  • audit – enables user auditing.
  • deny – used to define the number of attempts (3 in this case), after which the user account should be locked.
  • unlock_time – sets the time (300 seconds = 5 minutes) for which the account should remain locked.

Tenga en cuenta que el orden de estas líneas es muy importante, las configuraciones erróneas pueden provocar el bloqueo de todas las cuentas de usuario.

La sección auth en ambos archivos debe tener el siguiente contenido organizado en este orden:

auth        required      pam_env.so
auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=300
auth        sufficient    pam_unix.so  nullok  try_first_pass
auth        [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=300
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

Ahora abre estos dos archivos con tu elección de editor.

# vi /etc/pam.d/system-auth
# vi /etc/pam.d/password-auth 

Las entradas predeterminadas en la sección auth de ambos archivos se ven así.

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet
auth        required      pam_deny.so

Después de agregar la configuración anterior, debe aparecer como sigue.

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=300
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=300
auth        requisite     pam_succeed_if.so uid >= 1000 quiet
auth        required      pam_deny.so

Luego, agregue la siguiente entrada resaltada a la sección cuenta en los dos archivos anteriores.

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so
account     required      pam_faillock.so

Cómo bloquear la cuenta raíz después de intentos fallidos de inicio de sesión

Para bloquear la cuenta raíz después de intentos fallidos de autenticación, agregue la opción even_deny_root a las líneas en ambos archivos en la sección auth de esta manera.

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

Una vez que haya configurado todo. Puede reiniciar los servicios de acceso remoto como sshd , para que la política anterior tenga efecto, es decir, si los usuarios emplean ssh para conectarse al servidor.

# systemctl restart sshd  [On SystemD]
# service sshd restart    [On SysVInit]

Cómo probar los intentos de inicio de sesión fallidos de un usuario de SSH

A partir de la configuración anterior, configuramos el sistema para bloquear la cuenta de un usuario después de los intentos de autenticación fallidos de 3 .

En este escenario, el usuario tecmint está intentando cambiar al usuario aaronkilik , pero después de 3 los inicios de sesión incorrectos debido a una contraseña incorrecta, indicado por El mensaje " Permiso denegado ", la cuenta del usuario aaronkilik está bloqueada como se muestra en el mensaje " error de autenticación " en el cuarto intento.

También se notifica al usuario root de los intentos fallidos de inicio de sesión en el sistema, como se muestra en la captura de pantalla a continuación.

Cómo ver intentos de autenticación fallidos

Puede ver todos los registros de autenticación fallidos utilizando la utilidad faillock , que se utiliza para mostrar y modificar el registro de fallos de autenticación.

Puede ver intentos fallidos de inicio de sesión para un usuario en particular como este.

# faillock --user aaronkilik

Para ver todos los intentos fallidos de inicio de sesión, ejecute faillock sin ningún argumento como este:

# faillock 

Para borrar los registros de fallos de autenticación de un usuario, ejecute este comando.

# faillock --user aaronkilik --reset 
OR
# fail --reset	#clears all authentication failure records

Por último, para indicar al sistema que no bloquee las cuentas de un usuario o de usuario después de varios intentos fallidos de inicio de sesión, agregue la entrada marcada en color rojo, justo encima de donde se llama por primera vez a pam_faillock en la autenticación fuerte en ambos archivos ( /etc/pam.d/system-auth y /etc/pam.d/password-auth ) de la siguiente manera.

Simplemente agregue los puntos de usuario completos a la opción usuario en .

auth  required      pam_env.so
auth   [success=1 default=ignore] pam_succeed_if.so user in tecmint:aaronkilik 
auth   required      pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth   sufficient    pam_unix.so  nullok  try_first_pass
auth   [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=600
auth   requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth   required      pam_deny.so

Para obtener más información, consulte las páginas de manual de pam_faillock y faillock .

# man pam_faillock
# man faillock 

Es posible que también desee leer estos siguientes artículos útiles:

  1. TMOUT – Auto Logout Linux Shell When There Isn’t Any Activity
  2. Single User Mode: Resetting/Recovering Forgotten Root User Account Password
  3. 5 Best Practices to Secure and Protect SSH Server
  4. How to Get Root and User SSH Login Email Alerts

¡Eso es todo! En este artículo, mostramos cómo hacer cumplir la seguridad del servidor simple bloqueando la cuenta de un usuario después de x número de inicios de sesión incorrectos o intentos de autenticación fallidos. Utilice el formulario de comentarios a continuación para compartir sus consultas o pensamientos con nosotros.

Todos los derechos reservados © Linux-Console.net • 2019-2021