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 se proteja contra ataques como ataques de diccionario de contraseñas. La publicación describe cómo bloquear una cuenta después de N intentos de inicio de sesión incorrectos utilizando archivos pam.d .
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 siguientes líneas al archivo.
auth required pam_tally2.so file=/var/log/tallylog deny=N even_deny_root unlock_time=1200 account required pam_tally2.so
Aquí,
file=/var/log/tallylog – Los intentos fallidos de inicio de sesión se registran aquí.
denegar – nos permite establecer el valor N (número de intentos) después del cual se debe bloquear la cuenta de usuario.
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]
desbloqueo_tiempo – es el tiempo durante el cual la cuenta debe permanecer bloqueada [Opcional]
El ejemplo /etc/pam.d/system-auth tendrá el siguiente aspecto:
# cat /etc/pam.d/system-auth #%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_success auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_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_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so
2. Edite el archivo /etc/ssh/sshd_config para aumentar los MaxAuthTries valor a un valor más alto que el número anterior.
# vi /etc/ssh/sshd_config MaxAuthTries 10
3. Guarde el archivo después de marcar el ChallengeResponseAuthentication no ya está configurado en el archivo.
# vi /etc/ssh/sshd_config ChallengeResponseAuthentication no
4. Reinicie el servicio sshd.
# service sshd restart
Restablecer el bloqueo
1. registro fallido El comando informa el número de intentos de inicio de sesión fallidos para un usuario específico:
# faillog -u [username]
2. Si se usa pam_tally2.so, el comando pam_tally2 se puede usar para verificar el número de intentos de inicio de sesión fallidos para un usuario específico:
# pam_tally2 -u [username]
3. Para restablecer el bloqueo de un usuario, pam_tally2 se puede usar el comando:
# pam_tally2 --user=[username] --reset