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