GNU/Linux >> Linux Esercitazione >  >> Cent OS

Complessità della password PAM e sistema di credito pam_cracklib in CentOS/RHEL

Questo post descrive il sistema di crediti PAM pam_cracklib in relazione alla complessità della password PAM Linux.

Panoramica di PAM

Il Pluggable Authentication Modules (PAM) è un framework centrale, flessibile e modulare utilizzato per gestire le politiche di autenticazione del sistema e facilitare l'autenticazione dell'utente. PAM fornisce un'API (Application Programming Interface) generale a cui i programmi di concessione dei privilegi rimandano per l'autenticazione dell'utente.

Il flusso di autenticazione PAM è il seguente:
Applicazione (login, ssh, sudo, su, ftp, ecc.) -> PAM -> Fonte di autenticazione (password locale, LDAP, Kerberos, ecc.)

PAM separa le attività di autenticazione in quattro gruppi di gestione:

  • Gestione dell'account – verificare l'autorizzazione dell'utente al servizio, la scadenza della password dell'utente, ecc.
  • Gestione dell'autenticazione – autenticazione utente, credenziali utente, challenge/response (password), dati biometrici.
  • Gestione password – facilita la gestione delle password – modifiche, aggiornamenti, ecc.
  • Gestione delle sessioni – attività di connessione al servizio pre/post utente, ad es. audit trail, montare la home directory dell'utente, ecc.

Modulo PAM pam_cracklib

Quando viene aggiunto allo stack di password PAM, il modulo pam_cracklib esegue il controllo di efficacia delle password utente proposte. Il modulo chiama la routine cracklib che confronta le password con un dizionario di parole note (comuni, deboli, predefinite, ecc.) prima di eseguire ulteriori controlli di forza, come ad esempio:

  • Palindromo :La nuova password è un palindromo cioè una stringa che legge la stessa avanti e indietro ad es. radar, signora, ecc.
  • Solo cambio caso :La nuova password è uguale a quella vecchia con solo un cambio di maiuscolo?
  • Simile :La nuova password è troppo simile a quella precedente?
  • Semplice :La nuova password è troppo piccola? Questo è controllato da 6 argomenti:minlen , maxclassrepeat , credito , ucredito , credito e ocredito .
  • Ruotato :La nuova password è una versione ruotata della vecchia password?
  • Già usato :La password è stata utilizzata in precedenza?
  • Stessi caratteri consecutivi :Controllo facoltativo per gli stessi caratteri consecutivi.
  • Contiene il nome utente :Facoltativo, controlla se la password contiene il nome dell'utente.

Se abilitato senza argomenti, le opzioni/valori di controllo della forza di pam_cracklib predefiniti aiutano a garantire l'accettazione di password sufficientemente sicure.

Il sistema di credito pam_cracklib

Il modulo pam_cracklib offre varie opzioni di cui le seguenti controllano direttamente la complessità della password:

  • minore – Lunghezza minima della password
  • credito – Numero minimo di lettere minuscole
  • ucredito – Numero minimo di lettere maiuscole
  • credito – Numero minimo di caratteri numerici
  • ocredito – Numero minimo di caratteri non alfanumerici

Il minore opzione definisce la dimensione minima accettabile per una nuova password. Tuttavia, oltre al numero di caratteri, viene assegnato un credito (cioè un punteggio) per ogni diverso tipo di carattere utilizzato, ovvero inferiore, superiore, cifra, altro. Il valore del credito di ogni tipo di carattere utilizzato conta per raggiungere il valore minlen definito.

lcredito=N :(N>=0) Questo è il credito massimo per avere lettere minuscole nella nuova password. Se hai meno di o N lettere minuscole, ogni lettera conterà +1 per raggiungere il valore minlen corrente. Il valore predefinito per lcredit è 1, che è il valore consigliato per minlen inferiore a 10.

(N <0) Questo è il numero minimo di lettere minuscole che devono essere soddisfatte per una nuova password.

ucredit=N :(N>=0) Questo è il credito massimo per avere lettere maiuscole nella nuova password. Se hai meno di o N lettere maiuscole, ogni lettera conterà +1 per raggiungere il valore minlen corrente. Il valore predefinito per ucredit è 1, che è il valore consigliato per minlen inferiore a 10.

(N <0) Questo è il numero minimo di lettere maiuscole che devono essere soddisfatte per una nuova password.

dcredit=N (N>=0) Questo è il credito massimo per avere cifre nella nuova password. Se hai meno di o N cifre, ogni cifra conterà +1 per raggiungere il valore minlen corrente. Il valore predefinito per dcredit è 1, che è il valore consigliato per minlen inferiore a 10.

(N <0) Questo è il numero minimo di cifre che devono essere soddisfatte per una nuova password.

ocredito=N :(N>=0) Questo è il credito massimo per avere altri caratteri nella nuova password. Se hai meno di o N altri personaggi, ogni personaggio conterà +1 per raggiungere il valore minlen corrente. Il valore predefinito per ocredit è 1, che è il valore consigliato per minlen inferiore a 10.

(N <0) Questo è il numero minimo di altri caratteri che devono essere soddisfatti per una nuova password.

Quando si utilizza il sistema di crediti PAM, è del tutto possibile che una password con una lunghezza inferiore a quella definita da minlen venga accettata, ovvero la password può contenere anche caratteri di uno o più tipi di carattere:inferiore, superiore, cifra, altro.

Considera la seguente configurazione di pam_cracklib:

--/etc/pam.d/system-auth-ac:
...
password required pam_cracklib.so minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1
...

Di seguito è riportato il calcolo del credito della password pam_cracklib per una password utente di "@1Bcdef2":

  • @1Bcdef2:assegnati 8 crediti ovvero uno per ogni personaggio
  • @:1 credito assegnato (altro)
  • 1,2:1 credito assegnato (cifra)
  • B:1 credito assegnato (superiore)
  • cdef:1 credito assegnato (inferiore)

8 + 4 =12 (minore)

Dato il numero e il tipo di caratteri utilizzati nella password di cui sopra, il sistema accetta una lunghezza minima della password di 8 caratteri. Tieni presente che verrà accettata anche una password contenente solo 11 lettere minuscole, ad esempio:

  • abcdefghijk:11 crediti assegnati, uno per ogni personaggio
  • abcdefghijk:0 crediti assegnati (altro)
  • abcdefghijk:0 crediti assegnati (cifra)
  • abcdefghijk:0 crediti assegnati (superiore)
  • abcdefghijk:assegnato 1 credito (inferiore)

11 + 1 =12 (minore)

Di seguito sono riportati esempi dettagliati di password accettate e non accettate:

minlen Password Lunghezza password (caratteri) Credito Password accettata?
10 qwertasdf 9 9 (caratteri) + 1 (inferiore) =10
12 qwertasdfgz 11 11 (caratteri) + 1 (inferiore) =12
14 qwertasdfgzxc 13 13 (caratteri) + 1 (inferiore) =14
14 qwertasdf1$ 11 11 (caratteri) + 1 (minore) + 1 (cifra) + 1 (altro) =14
10 qwertasd 8 8 (caratteri) + 1 (inferiore) = 9 No
12 qwertasdfg 10 10 (caratteri) + 1 (inferiore) =11 No
14 qwertasdfgzx 12 12 (caratteri) + 1 (inferiore) =13 No

Applicazione della complessità delle password con il sistema di crediti pam_cracklib

In tutti gli esempi fino ad ora, si noti che l'uso del sistema di crediti non impone effettivamente la complessità delle password. Per imporre la complessità della password, specificare valori negativi per le opzioni pam_cracklib lcredit, ucredit, dcredit, ocredit. Quando si specificano valori negativi, i crediti non vengono assegnati per l'utilizzo di caratteri inferiore, superiore, cifra e altri, tuttavia la password deve comunque contenere caratteri di ciascuno dei gruppi di caratteri specificati.

Considera la seguente configurazione di pam_cracklib:

--/etc/pam.d/system-auth-ac:
...
password required pam_cracklib.so minlen=8 lcredit=-1 ucredit=-1 dcredit=-2 ocredit=-1
...

Con quanto sopra, una password utente corretta deve …

  • essere di almeno 8 caratteri di lunghezza e
  • contengono almeno 1 carattere minuscolo e
  • contengono almeno 1 carattere maiuscolo e
  • contengono almeno 2 cifre e
  • contengono almeno 1 altro carattere

Nota :CentOS/RHEL 7 usa pam_pwquality module invece di pam_cracklib e il modulo pam_pwquality è retrocompatibile con le sue opzioni.

PAM_PWQUALITY(8) System Manager's Manual PAM_PWQUALITY(8)

NAME
pam_pwquality - PAM module to perform password quality checking

SYNOPSIS
pam_pwquality.so [...]

DESCRIPTION
This module can be plugged into the password stack of a given service to provide some plug-in strength-checking for passwords. 
The code was originally based on pam_cracklib module and the module is backward compatible with its options.


Cent OS
  1. Modalità utente singolo in CentOS 7 / RHEL 7

  2. Riparare i problemi del filesystem all'avvio in CentOS/RHEL 7 e 8

  3. "BAD PASSWD:è troppo semplice" - errore durante la modifica della password in CentOS/RHEL 7 e 8

  4. Come configurare la scadenza della password e i requisiti di complessità in CentOS/RHEL

  5. CentOS / RHEL:come disabilitare l'accesso root o l'accesso root su un sistema

RHEL 8 / CentOS 8 recupera la password di root

Come installare ONLYOFFICE su Red Hat Linux (RHEL) e CentOS

Come installare Cockpit su CentOS 8 / RHEL 8

Come controllare e riparare il filesystem XFS in RHEL/Centos

CentOS / RHEL 7:come reimpostare la password di root

CentOS / RHEL 7:processo di avvio