Comment désactiver ou modifier les exigences de mot de passe de pam?

9

J'utilise Fedora 19. Par défaut, il est configuré avec pam pour désactiver les mauvais mots de passe, comme "mot de passe". C'est bon. Essayer de changer cette valeur par défaut est exaspérant. Ceci est une boîte pour tester des trucs internes, non connectés à Internet, ni aucune machine qui l'est. Les mauvais mots de passe facilitent le processus de test. Sinon, comment diable changez-vous les exigences de mot de passe?

auth système

man pam_cracklibcontient de bons exemples de définition de différentes exigences de mot de passe. J'ouvre donc /etc/pam.d/system-auth, c'est là que vous voyez des lignes comme:

#%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

* headdesk *. D'après mon expérience, des avertissements comme celui-ci signifient que vos modifications sont effacées à chaque exécution du gestionnaire de packages et / ou de manière aléatoire.

authconfig

Alors ... authconfigest la prochaine étape. Je recherche tous les fichiers nommés "authconfig". /etc/sysconfig/authconfigCela semble prometteur. Et, aucun avertissement au sommet sur la destruction de mes modifications sur un coup de tête. Je trouve cette ligne USEPWQUALITY=yeset la change. Maintenant je lance:

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

wtf. Alors lisons man authconfigun peu plus près. Oh! On dirait que ce fichier n'est pas lu par authconfig, il a changé . Alors .... comment configurez-vous authconfig? Le manuel suggère system-config-authentication, que j'installe et ne fournit rien qui ressemble à une case à cocher pour désactiver pam_pwquality. La prochaine suggestion du manuel concerne les options de ligne de commande. Génial! J'adore les outils de ligne de commande. Seulement, aucune des options de ligne de commande documentées ne désactive pam_pwquality.

pwquality.conf

Grâce à la réponse d'Aaron, j'ai appris qu'il y a quelques années, fedora a décidé de faire de /etc/security/pwquality.conf la place pour configurer les exigences de qualité des mots de passe. Malheureusement, comme indiqué dans le fichier et dans man 5 pwquality.conf, il n'y a (1) aucun moyen de désactiver la vérification du dictionnaire et (2) ne peut pas définir une longueur de mot de passe autorisée inférieure à six.

djeikyb
la source
Si c'est interne, pourquoi Pam est-il installé ou même activé?
Ramhound
1
@Ramhound parce que fedora est infesté de pam. yum remove pamsupprime, pour autant que je sache, le temps qu'il faut pour faire défiler tous ses packages dépendants, tout . Y compris yum et systemd. De plus, la désactivation du pam ressemble à un marteau, quand je pense que je veux juste utiliser du papier de verre.
djeikyb

Réponses:

4

Après un aperçu rapide du code source dans /usr/sbin/authconfiget /usr/share/authconfig/authinfo.py:

  • La page de manuel est incomplète, la liste complète des options acceptées par le script est en authconfig --help
  • Tout peut être remplacé sur la ligne de commande (même les /etc/security/pwquality.confparamètres comme la longueur minimale du mot de passe), à ​​l' exception de pwquality lui-même. À mon humble avis, ceci est un bug et doit être signalé.
  • De la authinfo.pyligne 2489 et 2156:

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

    Première readSysconfiglecture /etc/sysconfig/authconfig; alors ce que vous y mettez est remplacé par readPAMce qui est dedans /etc/pam.d/*(surtout password_auth*et system_auth*):

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

TL; DR : pour les options qui ne sont pas remplacées (ou ne peuvent pas l'être), les paramètres sont issus de la configuration actuelle, y compris les fichiers qui sont étiquetés générés automatiquement . Pour le faire fonctionner, modifiez /etc/sysconfig/authconfig et supprimez les lignes affichées pargrep -E pwq\|crack /etc/pam.d/*


Edit : il y a un deuxième bug, qui fait que les conseils ci-dessus ne fonctionnent toujours pas: ligne 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)

Vous devez choisir l'une des deux implémentations de contrôle qualité, ou une sera choisie pour vous! Combiné avec le premier bug, cela rend impossible la désactivation.

eddygeek
la source
2 ans plus tard sur fedora 26 alpha, la situation reste la même
eddygeek
2

Vous pouvez contrôler manuellement votre system-authfichier. Créez un nouveau fichier (vous pouvez commencer par copier system-auth-ac) et modifiez le system-authlien symbolique pour pointer vers le nouveau fichier.

Cela vous oblige à mettre à jour cette partie de votre configuration PAM, car authconfig ne touchera plus le lien symbolique ou le fichier vers lequel il pointe. Cependant, authconfig mettra toujours à jour le system-auth-acfichier, vous pouvez donc continuer à l'utiliser comme référence si vous en avez besoin. Avec un peu d'intelligence, vous pourrez peut-être même le faire includedans votre copie locale, mais comment le faire dépasse le cadre de cette question.

Vous devez également rechercher d'autres liens symboliques, tels que password-auth. Vous devrez peut-être leur donner le même traitement.


De la authconfig(8)page de manuel, sous 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. 

Donc, si system-authc'est un fichier, authconfig le modifie pour le lier system-auth-ac. Mais si system-authest un lien symbolique, authconfig le laisse seul.

Jander
la source
1

Il semble être configurable via /etc/security/pwquality.conf

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

Aaron Okano
la source
Merci, je ne l'avais pas encore vu. Malheureusement, pwquality.confne prend pas en charge la désactivation des vérifications de dictionnaire ou la désactivation des vérifications de la longueur des mots de passe.
djeikyb
Peut-être que la suggestion de cet article fonctionnerait? serverfault.com/questions/444258/…
Aaron Okano
c'est-à-dire supprimer le module de system-auth et définir également USEPWQUALITY = no, puis exécuter authconfig --update.
Aaron Okano
Malheureusement (comme mentionné dans la question), l'exécution authconfig --updateallréinitialise les fichiers. Je suis profondément perplexe à cette réponse, car elle contredit directement le comportement que j'observe.
djeikyb
Je devrais également noter que le simple fait de régler USEPWQUALITY=noet / ou USECRACKLIB=none résout pas mon problème non plus, avant même d'exécuter authconfig.
djeikyb
1

Vous pouvez toujours changer à partir de la ligne de commande. Vous obtenez un avertissement, mais cela vous permettra de définir un mot de passe trop court, ainsi qu'un autre qui ne respecte pas les règles de complexité.

user280281
la source
Ce n'est absolument pas le comportement que j'éprouve avec Fedora 19.
djeikyb
@djeikyb exécutez la passwd <username>commande en tant que root (avec sudo passwd <username>ou après le su -terminal root.
Nick
@Nick That ne désactive ni ne modifie les exigences de mot de passe de pam.
djeikyb
@djeikyb Il ne modifie pas l'exigence, mais il la contourne. Lorsque vous exécutez en passwdtant que root, il ignorera les stratégies de mot de passe. Si vous avez juste besoin de le régler une fois et de l'oublier, cela fonctionnera. Si vous essayez de le configurer pour que chaque utilisateur puisse modifier librement ses mots de passe, alors vous avez besoin d'une autre solution.
Nick
@ Nick je vois. Oui, root peut utiliser passwdsans être fd avec pam. Peu de chose à voir avec la question réelle, mais cela rend la revendication de cette "réponse" vraie.
djeikyb
0

Je viens de trouver cette question basée sur une recherche connexe, et je pense avoir une réponse pour vous.

Fedora crée des liens symboliques vers les fichiers générés par authconfig. c'est à dire. system-authliens vers system-auth-ac. Si vous créez system-authson propre fichier, alors théoriquement, toutes les modifications futures apportées par auth-configseront toujours mises à jour system-auth-acmais laisser vos fichiers modifiés inchangés.

C'est en fait assez élégant, mais je ne l'ai découvert qu'en me demandant ce que *-acfaisaient les fichiers.

Cyclone
la source
Ça ne marche pas. La prochaine exécution de authconfig(par exemple authconfig --updateall) supprimera votre fichier et le redirigera vers le -acfichier.
docwhat
@TheDoctorWhat est-ce ainsi? Maintenant, cela n'a aucun sens moi aussi pourquoi ils le feraient de cette façon si ce n'était pas pour permettre la persistance des changements locaux avec un retour facile à la configuration gérée. Tant pis.
Cyclone
Ouais, ça me déroute aussi ... la documentation n'en parle pas et le code source a même un long commentaire expliquant comment ils essaient d'être tout pour tout le monde ... très ennuyeux.
docwhat