¿Cómo se cambia el retraso que ocurre después de ingresar una contraseña incorrecta?
32
Después de ingresar una contraseña incorrecta en la solicitud de inicio de sesión, hay un retraso de aproximadamente 3 segundos. ¿Cómo puedo cambiar eso en un sistema Linux con PAM?
Tengo la necesidad de un retraso desde una perspectiva de seguridad, pero el retraso predeterminado es bastante molesto
Mike Pennington
3
Esto ha sido interesante; tal vez escribiré un módulo que permita N intentos sin demora seguido de cualquier número de intentos con un retraso prolongado.
Shawn J. Goff
1
En lugar de un nuevo módulo (sugerido en mi comentario anterior), utilicé pam_unixcon la nodelayopción y pam_tally2con deny=5 unlock_time=15; Esto permite 5 reintentos inmediatos, pero niega el acceso (incluso con una contraseña correcta) durante 15 segundos. Todavía tengo la intención de intentar escribir el modelo descrito, pero ahora es un proyecto secundario, porque esto no sería adecuado si su acceso principal al sistema está basado en la red, ya que hace que un ataque de DOS sea trivial.
Shawn J. Goff
1
si le preocupa un DoS de red debido a tiempos de espera, use fail2ban ... de hecho, úselo incluso si cree que está seguro :-). uso dos días de prohibición
Mike Pennington
Respuestas:
21
Supongo que estás usando Linux y pam. El retraso probablemente sea causado por pam_faildelay.so. Verifique la configuración de su pam /etc/pam.dusando pam_faildelay, por ejemplo:
# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth optional pam_faildelay.so delay=3000000
Para cambiar el tiempo, ajuste el parámetro de retraso. Si desea deshacerse del retraso, puede eliminar / comentar la línea completa.
Otra fuente de la demora puede ser pam_unix.so. Para deshabilitar el retraso causado por pam_unix.soagregar el nodelayparámetro y, opcionalmente, agregar una línea que llame pam_faildelay.sopara agregar un retraso (variable) en su lugar, por ejemplo:
No hay mención de retraso en ninguna parte /etc/pam.d/*. Lo más parecido que veo es lo pam_tally.soque permite el bloqueo después de varios intentos. Pero tengo n /etc/login.defs, que podría ser lo que necesito.
Shawn J. Goff
@ ShawnJ.Goff pam_tally.sono causa un retraso hasta donde yo sé. Puede ser otra fuente del acuerdo pam_unix.so: puede deshabilitarlo con la nodelayopción; consulte linux.die.net/man/8/pam_unix para obtener más detalles
Ulrich Dangel
1
Agregar la nodelayopción pam_unix.soy agregar una nueva entrada con pam_faildelay.so delay=$some_numberme permite configurar lo que quiera. ¡Gracias!
Shawn J. Goff
2
Al ejecutar fedora 23, tuve que deshabilitar el pam_unix.soretraso y comenzar a usar el pam_faildelay.soque dice @ ShawnJ.Goff. Sin embargo, la mayoría de las pam.dconfiguraciones tienen " Este archivo se genera automáticamente. Los cambios del usuario se destruirán la próxima vez que se ejecute authconfig " . Entonces, ¿dónde puedo configurar permanentemente el retraso?
jozxyqk
11
Necesita pasar el nodelayparámetro a authpam_unix.so.
Dependiendo de cómo se esté autenticando, el lugar donde necesita establecer el parámetro varía. Sin embargo, la mayoría de las distribuciones de Linux tienen algo como lo /etc/pam.d/system-authque se incluye en todos los archivos diferentes.
Entonces, por ejemplo /etc/pam.d/system-auth, puede tener una línea que se vea así:
El pam_unix.somódulo es el que realiza la autenticación contra /etc/passwdy /etc/shadow. Si usted está usando LDAP o algún otro motor de contraseñas, es probable que aún debe estar fijándose nodelayen el pam_unix.soya que es lo que controla el símbolo (cuando pam_unix.sodeja de autenticación, que por lo general sólo pasa la contraseña se obtiene con el siguiente módulo).
Puedes leer más sobre pam_unix.sohaciendoman pam_unix
pam_unix
con lanodelay
opción ypam_tally2
condeny=5 unlock_time=15
; Esto permite 5 reintentos inmediatos, pero niega el acceso (incluso con una contraseña correcta) durante 15 segundos. Todavía tengo la intención de intentar escribir el modelo descrito, pero ahora es un proyecto secundario, porque esto no sería adecuado si su acceso principal al sistema está basado en la red, ya que hace que un ataque de DOS sea trivial.Respuestas:
Supongo que estás usando Linux y pam. El retraso probablemente sea causado por
pam_faildelay.so
. Verifique la configuración de su pam/etc/pam.d
usandopam_faildelay
, por ejemplo:Para cambiar el tiempo, ajuste el parámetro de retraso. Si desea deshacerse del retraso, puede eliminar / comentar la línea completa.
Otra fuente de la demora puede ser
pam_unix.so
. Para deshabilitar el retraso causado porpam_unix.so
agregar elnodelay
parámetro y, opcionalmente, agregar una línea que llamepam_faildelay.so
para agregar un retraso (variable) en su lugar, por ejemplo:fuente
/etc/pam.d/*
. Lo más parecido que veo es lopam_tally.so
que permite el bloqueo después de varios intentos. Pero tengo n/etc/login.defs
, que podría ser lo que necesito.pam_tally.so
no causa un retraso hasta donde yo sé. Puede ser otra fuente del acuerdopam_unix.so
: puede deshabilitarlo con lanodelay
opción; consulte linux.die.net/man/8/pam_unix para obtener más detallesnodelay
opciónpam_unix.so
y agregar una nueva entrada conpam_faildelay.so delay=$some_number
me permite configurar lo que quiera. ¡Gracias!pam_unix.so
retraso y comenzar a usar elpam_faildelay.so
que dice @ ShawnJ.Goff. Sin embargo, la mayoría de laspam.d
configuraciones tienen " Este archivo se genera automáticamente. Los cambios del usuario se destruirán la próxima vez que se ejecute authconfig " . Entonces, ¿dónde puedo configurar permanentemente el retraso?Necesita pasar el
nodelay
parámetro aauth
pam_unix.so
.Dependiendo de cómo se esté autenticando, el lugar donde necesita establecer el parámetro varía. Sin embargo, la mayoría de las distribuciones de Linux tienen algo como lo
/etc/pam.d/system-auth
que se incluye en todos los archivos diferentes.Entonces, por ejemplo
/etc/pam.d/system-auth
, puede tener una línea que se vea así:Esto debería cambiarse a:
El
pam_unix.so
módulo es el que realiza la autenticación contra/etc/passwd
y/etc/shadow
. Si usted está usando LDAP o algún otro motor de contraseñas, es probable que aún debe estar fijándosenodelay
en elpam_unix.so
ya que es lo que controla el símbolo (cuandopam_unix.so
deja de autenticación, que por lo general sólo pasa la contraseña se obtiene con el siguiente módulo).Puedes leer más sobre
pam_unix.so
haciendoman pam_unix
fuente
system-auth
no existía; fue/etc/common-auth
. ¡Gracias!