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-auth
se 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 requisite
aquí le indica a la autenticación que se cierre inmediatamente si falla. Las otras líneas utilizan required
en 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 elunlock-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.so
línea (la línea de entrada de contraseña) antes de continuar. Si coloca la pam_tally2.so
lí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_tally2
aumenta. Sin siquiera escribir una contraseña, pronto quedarás atrapado en una situación similar a la siguiente:
Colocar la pam_tally2.so
lí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.so
o pam_permit.so
se basa en ella, y cuando pam_tally2.so
llega el momento, ya se han indicado las entradas de contraseña incorrectas.
Aunque pam_permit.so
se alcance independientemente de la contraseña ingresada, el módulo siempre fallará si pam_deny.so
también se alcanza. Esto se debe a que la pam_deny.so
lí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/
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.