¿Cómo habilito el bloqueo de cuenta usando pam_tally?

¿Cómo habilito el bloqueo de cuenta usando pam_tally?

Estoy intentando implementar el bloqueo de cuenta en Ubuntu usando pam_tally. He intentado agregar las siguientes líneas en /etc/pam.d/common-auth

auth required pam_tally.so deny=3
account     required  pam_tally.so

Las fallas se registran, pero la cuenta no se bloquea incluso cuando se alcanza el máximo de fallas. Estoy intentando esto iniciando sesión directamente (pantalla de inicio de sesión de GNOME).

¿Algún consejo? ¿Debo agregar también pam.d/gdm o el archivo de inicio de sesión?

Respuesta1

Explicación detrás de la autenticación común

Si solo está buscando una solución rápida, vaya a continuación aCómo configurar common-auth para bloquear.


Con suerte, esto ayudará a darle sentido a cómo /etc/pam.d/common-authse configura el bloqueo.

Si eliminas todos los comentarios en /etc/pam.d/common-auth, te queda lo siguiente:

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

Echemos un vistazo a cada línea de este archivo y cómo se usa.


auth    [success=1 default=ignore]      pam_unix.so nullok_secure

Lee la entrada de contraseña.Si la contraseña es correcta, se omite la siguiente línea del archivo (la que tiene pam_deny.so). Puede cambiar cuántas líneas se omiten estableciendo el valor en success=1.

auth    requisite                       pam_deny.so

Falla inmediatamente el intento de inicio de sesión.La palabra requisiteaquí le indica a la autenticación que se cierre inmediatamente si falla. Las otras líneas utilizan requireden su lugar, que espera hasta el final del módulo para señalar un fallo.

auth    required                        pam_permit.so

Permite el intento de inicio de sesión.Esto se hace usando pam_permit.so.


Una vez establecido esto, se puede comprender mejor la configuración del módulo para bloquear al usuario.

Cómo configurar common-auth para bloquear

Para Ubuntu:

Añade la siguiente líneadespués de pam_deny.so y antes de pam_permit.so:

auth    required    pam_tally2.so    onerr=fail deny=3 unlock_time=1800

Cambie la línea pam_deny.so a lo siguiente:

auth    required                        pam_deny.so

El archivo completo se vería así:

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    required                        pam_deny.so
auth    required    pam_tally2.so    onerr=fail deny=3 unlock_time=1800
auth    required                        pam_permit.so

Puede configurar las siguientes opciones para satisfacer sus necesidades:

  • deny=3- El número de intentos permitidos antes de que quedes bloqueado.
  • unlock_time=1800- El número de segundos antes de que se le permita intentar iniciar sesión nuevamente.(Nota adicional: si el sistema se desbloquea después de una serie de fallas y usted no logra autenticarse nuevamente, no tiene 2 intentos más para autenticarse. El sistema lo hace esperar hasta que pase el unlock-time de nuevo.)

La mayoría de los recursos recomiendan que esta línea se agregue en la parte superior del archivo, enfatizando la importancia del orden; sin embargo, en los sistemas de escritorio Ubuntu, esta configuración puede bloquearle la pantalla de inicio de sesión de la GUI.

¿Por qué pasó esto? Parece que cuando seleccionas un usuario en la pantalla de inicio de sesión de Ubuntu, el módulo PAM comienza inmediatamente y espera en la pam_unix.solínea (la línea de entrada de contraseña) antes de continuar. Si coloca la pam_tally2.solínea antes de este "punto de parada", el bloqueo se activa inmediatamente y si se aleja del usuario presionando las teclas de flecha, el módulo indica una falla al iniciar sesión y pam_tally2aumenta. Sin siquiera escribir una contraseña, pronto quedarás atrapado en una situación similar a la siguiente:

Una pantalla de inicio de sesión típica de Ubuntu con un archivo de autenticación común configurado incorrectamente.

Colocar la pam_tally2.solínea en la parte inferior del archivo soluciona este problema. En esta configuración se mantiene el orden adecuado; la primera línea salta a la validez de la contraseña pam_deny.soo pam_permit.sose basa en ella, y cuando pam_tally2.sollega el momento, ya se han indicado las entradas de contraseña incorrectas.

Aunque pam_permit.sose alcance independientemente de la contraseña ingresada, el módulo siempre fallará si pam_deny.sotambién se alcanza. Esto se debe a que la pam_deny.solínea contiene required; permitirá que se ejecuten el resto de las líneas, pero el módulo en sí fallará al final.

Para obtener más información sobre cómo funciona PAM, puede buscar en Google "Cómo funciona PAM" o simplemente ir aquí:http://www.tuxradar.com/content/how-pam-works


¡Deberias hacer eso!

Respuesta2

Ha pasado un tiempo desde que vi esto, pero

creo que necesitas editar/etc/pam.d/common-auth

Añade esto en elarribadel expediente (el orden de las reglas importa).

auth required pam_tally.so per_user magic_root onerr=fail

Luego estableces el número de intentos permitidos.

sudo faillog -m 3

Para desbloquear una cuenta

faillog -u login_name -r

para detalles adicionales ver

Mi bloghttp://blog.bodhizazen.com/linux/ubuntu-how-to-faillog/

ohombre pam_tally

Respuesta3

También puede intentar bloquear las cuentas de usuario después de n intentos fallidos de inicio de sesión.

Pude hacerlo funcionar siguiendo las instrucciones en el enlace a continuación que usa pam_faillock.so, que supongo que funciona tanto en Ubuntu como en CentOS.

Sobre CentOS y derivados similares:

/etc/pam.d/system-auth

/etc/pam.d/password-auth

En Ubuntu/Debian y derivados similares:

/etc/pam.d/common-auth

/etc/pam.d/common-account

Bloquear cuenta de usuario de Linux después de varios intentos fallidos de inicio de sesión

Espero que esto ayude a alguien más también.

información relacionada