A menudo, un requisito en un entorno seguro es bloquear a los usuarios después de que ingresen una contraseña incorrecta una cantidad específica de veces. Esto hace que el sistema vuelva a protegerse La publicación describe cómo bloquear una cuenta después de N intentos de inicio de sesión incorrectos utilizando archivos pam.d . El pam_faillock El módulo admite el bloqueo temporal de cuentas de usuario en caso de múltiples intentos fallidos de autenticación. Este nuevo módulo mejora la funcionalidad del módulo pam_tally2 existente, ya que también permite el bloqueo temporal cuando los intentos de autenticación se realizan a través de un protector de pantalla.
Bloquear usuario después de N inicios de sesión incorrectos
1. Primero, haga una copia de seguridad del archivo /etc/pam.d/password-auth y /etc/pam.d/system-auth . Luego agregue las líneas resaltadas en rojo a ambos archivos.
auth required pam_env.so 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 auth sufficient pam_faillock.so authsucc audit deny=3 auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so account required pam_faillock.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session optional pam_oddjob_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so The above configuration file would lock out users after 3 unsuccessful login attempts and unlock them after 10 minutes.
Aquí,
rechazar - nos permite establecer el valor N (número de intentos) después del cual la cuenta de usuario debe bloquearse.
unlock_time - es el tiempo durante el cual la cuenta debe permanecer bloqueada [Opcional]
even_deny_root – se asegura de que la misma regla se aplique también al usuario raíz. Para excluir al usuario raíz de esta política, simplemente elimine el parámetro de la línea [Opcional].
Nota :La secuencia de las líneas en los archivos es importante y cualquier cambio en la secuencia terminaría bloqueando a todos los usuarios, incluido el usuario root, cuando usa la opción even_deny_root.
2. Para bloquear al usuario raíz, se requiere autenticación pam_faillock.so la línea debe agregarse en ambos /etc/pam.d/system-auth y /etc/pam.d/password-auth de la siguiente manera:
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200 root_unlock_time=600
3. Para impedir que un usuario se bloquee incluso después de varios inicios de sesión fallidos, agregue la siguiente línea justo encima de pam_faillock tanto en /etc/pam.d/system-auth y /etc/pam.d/password-auth y reemplace usuario1, usuario2 con los nombres de usuario reales.
auth [success=1 default=ignore] pam_succeed_if.so user in user1:user2:user3
4. Reinicie el servicio sshd.
# systemctl restart sshd
Restablecer la contraseña de usuario bloqueada
1. Para mostrar registros de errores de autenticación:
# faillock --user [username]
2. Para restablecer los registros de errores de autenticación:
# faillock --user [username] --reset