Come disabilitare o modificare i requisiti della password di pam?


9

Sto usando Fedora 19. Di default è impostato con pam per disabilitare le password errate, come "password". Questo è buono. Cercare di cambiare questa impostazione predefinita è esasperante. Questa è una scatola per testare cose interne, non connesse a Internet, né qualsiasi macchina. Le password errate facilitano il processo di test. In alternativa, come diavolo cambi i requisiti della password?

system-auth

man pam_cracklibha alcuni ottimi esempi di impostazione di diversi requisiti di password. Quindi apro /etc/pam.d/system-auth, che è dove vedi linee come:

#%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. Nella mia esperienza, avvisi come questo significano che le tue modifiche vengono cancellate ogni volta che il gestore pacchetti viene eseguito e / o in modo casuale.

authconfig

Quindi ... authconfigè il prossimo passo. Cerco tutti i file denominati "authconfig". /etc/sysconfig/authconfigsembra promettente. E, nessun avvertimento in alto sul distruggere le mie modifiche per un capriccio. Trovo questa linea USEPWQUALITY=yese la cambio. Ora corro:

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

WTF. Quindi leggiamo man authconfigun po 'più da vicino. Oh! Sembra che quel file non sia letto da authconfig, è cambiato . Quindi .... come si configura authconfig? Il manuale suggerisce system-config-authentication, che installo e non fornisce nulla di simile a una casella di controllo per disabilitare pam_pwquality. Il prossimo suggerimento dal manuale sono le opzioni della riga di comando. Grande! Adoro gli strumenti da riga di comando. Solo, nessuna delle opzioni documentate della riga di comando disabilita pam_pwquality.

pwquality.conf

Grazie alla risposta di Aaron, ho appreso che un paio di anni fa Fedora ha deciso di creare /etc/security/pwquality.conf un posto per configurare i requisiti di qualità della password. Sfortunatamente, come documentato nel file e in man 5 pwquality.conf, lì (1) non è un modo per disabilitare il controllo del dizionario e (2) non è possibile impostare una lunghezza della password consentita inferiore a sei.


Se è interno, perché Pam è installato o addirittura abilitato?
Ramhound,

1
@Ramhound perché fedora è infestata da pam. yum remove pamrimuove, per quanto posso dire dal tempo che serve per scorrere tutti i suoi pacchetti dipendenti, tutto . Compresi yum e systemd. Inoltre, disabilitare pam sembra una mazza, quando penso di voler usare solo carta vetrata.
djeikyb,

Risposte:


4

Dopo una rapida occhiata al codice sorgente in /usr/sbin/authconfige /usr/share/authconfig/authinfo.py:

  • La pagina man è incompleta, l'elenco completo delle opzioni accettate dallo script è presente authconfig --help
  • Tutto può essere sovrascritto dalla riga di comando (anche /etc/security/pwquality.confimpostazioni come la lunghezza minima della password), tranne pwquality stesso. IMHO, questo è un bug e dovrebbe essere segnalato.
  • Dalle authinfo.pylinee 2489 e 2156:

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

    Prima readSysconfiglegge /etc/sysconfig/authconfig; quindi ciò che metti lì viene sovrascritto da readPAMciò che è in /etc/pam.d/*(specialmente password_auth*e system_auth*):

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

TL; DR : per le opzioni che non sono sostituite (o non possono essere), le impostazioni sono prese dalla configurazione corrente inclusi i file che sono taggati con generazione automatica . Per farlo funzionare, modifica /etc/sysconfig/authconfig e rimuovi le linee mostrate dagrep -E pwq\|crack /etc/pam.d/*


Modifica : c'è un secondo bug, che rende i consigli sopra ancora non funzionanti: riga 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)

Devi scegliere una delle due implementazioni del controllo di qualità, oppure una sarà scelta per te! In combinazione con il primo bug, questo rende impossibile disabilitare.


2 anni dopo su fedora 26 alpha la situazione rimane la stessa
eddygeek

2

Puoi prendere il controllo manuale del tuo system-authfile. Creare un nuovo file (è possibile iniziare copiando system-auth-ac) e modificare il system-authcollegamento simbolico in modo che punti al nuovo file.

Ciò rende responsabilità dell'utente aggiornare questa parte della configurazione di PAM, poiché authconfig non toccherà più il collegamento simbolico o il file a cui punta. Tuttavia, authconfig aggiornerà comunque il system-auth-acfile, quindi puoi continuare a usarlo come riferimento se necessario. Con un po 'di intelligenza, potresti persino essere in grado di includefarlo nella tua copia locale, ma il modo in cui farlo è oltre lo scopo di questa domanda.

Dovresti anche controllare altri collegamenti simbolici, come password-auth. Potrebbe essere necessario dare loro lo stesso trattamento.


Dalla authconfig(8)manpage, sotto 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. 

Quindi se system-authè un file, authconfig lo modifica per collegarlo a system-auth-ac. Ma se system-authè un collegamento simbolico, authconfig lo lascia da solo.


1

Sembra essere configurabile tramite /etc/security/pwquality.conf

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


Grazie, non l'avevo ancora visto. Sfortunatamente, pwquality.confnon supporta la disabilitazione dei controlli del dizionario o la disabilitazione dei controlli della lunghezza della password.
djeikyb,

Forse il suggerimento in questo post avrebbe funzionato? serverfault.com/questions/444258/…
Aaron Okano,

cioè rimuovere il modulo da system-auth e anche impostare USEPWQUALITY = no e quindi eseguire authconfig --update.
Aaron Okano,

Sfortunatamente (come menzionato nella domanda), l'esecuzione authconfig --updateallripristina i file. Sono profondamente perplesso per quella risposta, poiché contraddice direttamente il comportamento che sto osservando.
djeikyb,

Dovrei anche notare, anche solo l'impostazione USEPWQUALITY=noe / o USECRACKLIB=nonon risolve il mio problema, anche prima di eseguire authconfig.
djeikyb,

1

Puoi ancora cambiare dalla riga di comando. Riceverai un avviso, ma ti consentirà di impostare una password troppo corta, oltre a quella che non soddisfa le regole di complessità.


Questo non è assolutamente il comportamento che provo con Fedora 19.
djeikyb

@djeikyb esegui il passwd <username>comando come root (con sudo passwd <username>o dopo il su -terminale root.
Nick,

@Nick Questo non disabilita o modifica i requisiti della password di pam.
djeikyb,

@djeikyb Non modifica il requisito, ma lo ignora. Quando esegui passwdcome root, ignorerà i criteri password. Se devi solo impostarlo una volta e dimenticarlo, allora funzionerà. Se stai cercando di impostarlo in modo che ogni utente possa cambiare liberamente le proprie password, allora hai bisogno di un'altra soluzione.
Nick,

@Nick vedo. Sì, root può usare passwdsenza essere trovato da pam. Poco a che fare con la domanda reale, ma rende vero il reclamo in questa "risposta".
djeikyb,

0

Ho appena trovato questa domanda sulla base di una ricerca correlata e penso di avere una risposta per te.

Fedora crea collegamenti simbolici ai file generati da authconfig. vale a dire. system-authcollegamenti a system-auth-ac. Se crei system-authun suo file, teoricamente eventuali modifiche future apportate auth-configverranno comunque aggiornate system-auth-acma lasceranno invariati i file modificati.

In realtà è piuttosto elegante, ma l'ho scoperto solo quando mi chiedevo cosa *-acfacessero i file.


Questo non funziona La prossima esecuzione di authconfig(ad es. authconfig --updateall) Cancellerà il tuo file e lo ricollegherà al -acfile.
docwhat,

@TheDoctor: Cos'è? Ora non ha alcun senso anche per me perché lo farebbero in questo modo se non fosse per consentire la persistenza delle modifiche locali con un facile fallback alla configurazione gestita. Oh bene.
Ciclone

Sì, anche questo mi confonde ... la documentazione non ne parla e il codice sorgente ha anche un lungo commento che spiega come stanno cercando di essere tutto per tutti ... molto fastidioso.
docwhat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.