¿Cómo deshabilito o modifico los requisitos de contraseña de pam?

9

Estoy usando Fedora 19. De manera predeterminada, está configurado con pam para deshabilitar las contraseñas incorrectas, como "contraseña". Esto es bueno. Intentar cambiar este valor predeterminado es exasperante. Esta es una caja para probar cosas internas, no conectadas a Internet, ni ninguna máquina que lo esté. Las contraseñas incorrectas facilitan el proceso de prueba. Alternativamente, ¿cómo diablos cambias los requisitos de contraseña?

autenticación del sistema

man pam_cracklibtiene algunos excelentes ejemplos de establecer diferentes requisitos de contraseña. Entonces abro /etc/pam.d/system-auth, que es donde ves líneas como:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

*oficina central*. En mi experiencia, advertencias como esta significan que sus cambios se borran cada vez que se ejecuta el administrador de paquetes y / o al azar.

authconfig

Entonces ... authconfiges el siguiente paso. Busco todos los archivos llamados "authconfig". /etc/sysconfig/authconfigparece prometedor. Y, no hay advertencia en la parte superior sobre la destrucción de mis ediciones por capricho. Encuentro esta línea USEPWQUALITY=yesy la cambio. Ahora corro:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

wtf. Entonces leamos man authconfigun poco más de cerca. Oh! Parece que ese archivo no es leído por authconfig, ha cambiado . Entonces ... ¿cómo se configura authconfig? El manual sugiere system-config-authenticationque instalo y no proporciona nada parecido a una casilla de verificación para deshabilitar pam_pwquality. La siguiente sugerencia del manual son las opciones de línea de comandos. ¡Excelente! Me encantan las herramientas de línea de comandos. Solo que ninguna de las opciones de línea de comandos documentadas desactiva pam_pwquality.

pwquality.conf

Gracias a la respuesta de Aaron, supe que hace un par de años Fedora decidió hacer /etc/security/pwquality.conf el lugar para configurar los requisitos de calidad de la contraseña. Desafortunadamente, como se documenta en el archivo y en man 5 pwquality.conf, no hay (1) una forma de deshabilitar la verificación del diccionario y (2) no se puede establecer la longitud de contraseña permitida por debajo de seis.

djeikyb
fuente
Si es interno, ¿por qué Pam está instalado o incluso habilitado?
Ramhound
1
@Ramhound porque fedora está infestada de pam. yum remove pamelimina, por lo que puedo decir por el tiempo que lleva desplazar todos sus paquetes dependientes, todo . Incluyendo yum y systemd. Además, deshabilitar a pam se siente como un mazo, cuando creo que solo quiero usar papel de lija.
djeikyb

Respuestas:

4

Después de una mirada rápida al código fuente en /usr/sbin/authconfigy /usr/share/authconfig/authinfo.py:

  • La página del manual está incompleta, la lista completa de opciones aceptadas por el script está en authconfig --help
  • Todo se puede anular en la línea de comandos (incluso /etc/security/pwquality.confconfiguraciones como la longitud mínima de la contraseña), excepto pwquality. En mi humilde opinión, esto es un error y debe ser reportado.
  • Desde la authinfo.pylínea 2489 y 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...

    Primeras readSysconfiglecturas /etc/sysconfig/authconfig; entonces lo que pones allí se sobrescribe readPAMcon lo que está en /etc/pam.d/*(especialmente password_auth*y system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)

TL; DR : para las opciones que no se anulan (o no se pueden eliminar), la configuración se toma de la configuración actual, incluidos los archivos etiquetados autogenerados . Para que funcione, edite /etc/sysconfig/authconfig y elimine las líneas mostradas porgrep -E pwq\|crack /etc/pam.d/*


Editar : Hay un segundo error, que hace que el consejo anterior todavía no funcione: línea 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

Debe elegir una de las dos implementaciones de control de calidad, ¡o se elegirá una por usted! Combinado con el primer error, esto hace que sea imposible deshabilitarlo.

eddygeek
fuente
2 años después, en fedora 26 alpha, la situación sigue siendo la misma
eddygeek
2

Puede tomar el control manual sobre su system-autharchivo. Cree un nuevo archivo (puede comenzar copiando system-auth-ac) y cambie el system-authenlace simbólico para que apunte al nuevo archivo.

Esto hace que sea su responsabilidad actualizar esta parte de su configuración de PAM, ya que authconfig ya no tocará el enlace simbólico o el archivo al que apunta. Sin embargo, authconfig seguirá actualizando el system-auth-acarchivo, por lo que puede seguir usándolo como referencia si lo necesita. Con un poco de inteligencia, incluso puede incluirlo includeen su copia local, pero cómo hacerlo está más allá del alcance de esta pregunta.

También debe verificar otros enlaces simbólicos, como password-auth. Es posible que deba darles el mismo tratamiento.


Desde la página del authconfig(8)manual, debajo de Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

Entonces, si system-authes un archivo, authconfig lo cambia para vincularlo system-auth-ac. Pero si system-authes un enlace simbólico, authconfig lo deja solo.

Jander
fuente
1

Parece ser configurable a través de /etc/security/pwquality.conf

Fuente: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

Aaron Okano
fuente
Gracias, aún no lo había visto. Desafortunadamente, pwquality.confno admite la desactivación de las verificaciones de diccionario o la desactivación de las verificaciones de longitud de contraseña.
djeikyb
¿Tal vez la sugerencia en esta publicación funcionaría? serverfault.com/questions/444258/…
Aaron Okano
es decir, elimine el módulo de system-auth y también configure USEPWQUALITY = no y luego ejecute authconfig --update.
Aaron Okano
Desafortunadamente (como se menciona en la pregunta), la ejecución authconfig --updateallrestablece los archivos. Estoy completamente perplejo ante esa respuesta, ya que contradice directamente el comportamiento que estoy observando.
djeikyb
También debo tener en cuenta que simplemente configurar USEPWQUALITY=noy / o USECRACKLIB=nono resuelve mi problema, incluso antes de ejecutar authconfig.
djeikyb
1

Todavía puede cambiar desde la línea de comando. Recibirá una advertencia, pero le permitirá establecer una contraseña que sea demasiado corta, así como una que no cumpla con las reglas de complejidad.

user280281
fuente
Este no es el comportamiento que experimento con Fedora 19.
djeikyb
@djeikyb ejecuta el passwd <username>comando como root (ya sea con el terminal raíz sudo passwd <username>o después su -.
Nick
@Nick Eso no deshabilita ni modifica los requisitos de contraseña de pam.
djeikyb
@djeikyb No cambia el requisito, pero lo omite. Cuando se ejecuta passwdcomo root, ignorará las políticas de contraseña. Si solo necesita configurarlo una vez y olvidarlo, entonces eso funcionará. Si está intentando configurarlo para que cada usuario pueda cambiar libremente sus contraseñas, entonces necesita otra solución.
Nick
@ Nick, ya veo. Sí, la raíz puede usarse passwdsin que fm la use con pam. Poco tiene que ver con la pregunta real, pero hace que la afirmación en esta "respuesta" sea verdadera.
djeikyb
0

Acabo de encontrar esta pregunta basada en una búsqueda relacionada, y creo que tengo una respuesta para usted.

Fedora crea enlaces simbólicos a los archivos generados por authconfig. es decir. system-authenlaces a system-auth-ac. Si crea system-authsu propio archivo, entonces, en teoría, cualquier cambio futuro realizado por auth-configse actualizará system-auth-acpero dejará sus archivos modificados sin cambios.

En realidad es bastante elegante, pero solo lo descubrí al preguntarme qué *-achicieron los archivos.

Ciclón
fuente
Esto no funciona La próxima ejecución de authconfig(p authconfig --updateall. Ej. ) Eliminará su archivo y lo vinculará de nuevo al -acarchivo.
docwhat
@TheDoctor¿Qué es eso? Ahora tampoco tiene ningún sentido para mí por qué lo harían de esa manera si no fuera para permitir la persistencia de los cambios locales con un respaldo fácil a la configuración administrada. Oh bien.
Ciclón
Sí, también me confunde ... la documentación no habla de eso y el código fuente incluso tiene un largo comentario que explica cómo intentan ser todo para todos ... muy molesto.
docwhat