Bloqueo de cuentas de usuarios en Linux por intentos de login fallidos
En las distribuciones basadas en RedHat este bloqueo se consigue gracias al módulo de PAM denominado “pam_faillock” y en Debian el módulo se llama “pam_tally2”
Bloqueo de cuentas en RedHat
Para el bloqueo de cuentas habrá que añadir las siguientes líneas en los ficheros password-auth (sólo en algunas distribuciones) y system-auth del directorio /etc/pam.d
auth required pam_faillock.so preauth silent audit deny=2 unlock_time=120
auth [default=die] pam_faillock.so authfail audit deny=2 unlock_time=120
account required pam_faillock.so
Donde podemos ver los siguientes parámetros
- audit: Habilita los logs para el registro de intentos de Login
- deny=2: Bloquea la cuenta de usuario después de 2 intentos fallidos
- unlock_time=120: Tiempo de bloqueo de la cuenta, en nuestro caso 120 segundos
- silent: No informa al usuario que la cuenta ha sido bloqueada
Debemos tener en cuenta que esta configuración no afecta al usuario root a menos que añadimos en las dos primeras líneas el parámetro “even_deny_root”.
El siguiente ejemplo muestra una cuenta bloqueada, en la configuración se ha omitido el parámetro silent para ver el mensaje de bloqueo:
Con el siguiente comando podemos ver los intentos de acceso fallidos, por ejemplo del usuario lionel:
# faillock –user Lionel
También podemos ver el log generado en /var/log/secure:
Bloqueo de cuentas en Debian
Añadiremos la siguiente línea en el fichero /etc/pam.d/common-auth
auth required pam_tally2.so onerr=fail deny=3 unlock_time=120 audit even_deny_root root_unlock_time=600
En este caso también añadimos el parámetro root_unlock_time para que sea diferente el tiempo de bloqueo para el usuario root.
Cuando la cuenta es bloqueada muestra el siguiente mensaje:
Para ver los intentos fallidos en el caso de Debian podemos consultar el archivo /var/log/auth.log
Y también consultar los intentos de login, por ejemplo del usuario lionel, con el siguiente comando
# pam_tally2 -u lionel