Ciao di nuovo! Domani inizieranno le lezioni del nuovo gruppo di corsi
Nel tutorial precedente ti abbiamo spiegato come utilizzare pam_cracklib
per rendere le password sui sistemi più complesse pam_pwquality
sostituito cracklib
come pam
modulo predefinito per il controllo delle password. Modulo pam_pwquality
supportato anche su Ubuntu e CentOS, così come su molti altri sistemi operativi. Questo modulo semplifica la creazione di policy sulle password per garantire che gli utenti accettino gli standard di robustezza della password.
Per molto tempo, l'approccio comune alle password è stato quello di costringere l'utente a utilizzare lettere maiuscole, minuscole, numeri o altri simboli. Queste regole di base per la complessità delle password sono state ampiamente promosse negli ultimi dieci anni. Si è discusso molto se questa sia una buona pratica o meno. L’argomento principale contro l’impostazione di condizioni così complesse era che gli utenti scrivevano le password su pezzi di carta e le conservavano in modo non sicuro.
Un'altra politica recentemente messa in discussione obbliga gli utenti a cambiare la propria password ogni x giorni. Ci sono stati alcuni studi che hanno dimostrato che questo è anche dannoso per la sicurezza.
Sul tema di queste discussioni sono stati scritti molti articoli che confermano un punto di vista o un altro. Ma non è di questo che parleremo in questo articolo. In questo articolo parleremo di come impostare correttamente la complessità della password anziché gestire la politica di sicurezza.
Impostazioni della politica della password
Di seguito vedrai le opzioni della politica della password e una breve descrizione di ciascuna. Molti di essi sono simili ai parametri nel modulo cracklib
. Questo approccio semplifica il trasferimento delle policy dal sistema legacy.
- Mi dispiace – Il numero di caratteri nella tua nuova password che NON dovrebbero essere presenti nella tua vecchia password. (Predefinito 5)
- minuti – Lunghezza minima della password. (Predefinito 9)
- ucredit – Il numero massimo di crediti per l'utilizzo di caratteri maiuscoli (se parametro > 0) o il numero minimo richiesto di caratteri maiuscoli (se parametro < 0). L'impostazione predefinita è 1.
- credito — Il numero massimo di crediti per l'utilizzo di caratteri minuscoli (se parametro > 0) o il numero minimo richiesto di caratteri minuscoli (se parametro < 0). L'impostazione predefinita è 1.
- credito — Il numero massimo di crediti per l'utilizzo delle cifre (se parametro > 0) o il numero minimo richiesto di cifre (se parametro < 0). L'impostazione predefinita è 1.
- lui crede — Il numero massimo di crediti per l'utilizzo di altri simboli (se parametro > 0) o il numero minimo richiesto di altri simboli (se parametro < 0). L'impostazione predefinita è 1.
- minclass – Imposta il numero di classi richieste. Le classi includono i parametri di cui sopra (caratteri maiuscoli, caratteri minuscoli, numeri, altri caratteri). L'impostazione predefinita è 0.
- maxrepeat – Il numero massimo di volte in cui un carattere può essere ripetuto in una password. L'impostazione predefinita è 0.
- maxclassrepeat — Il numero massimo di caratteri consecutivi in una classe. L'impostazione predefinita è 0.
- gecoscheck – Controlla se la password contiene parole delle stringhe GECOS dell'utente. (Informazioni sull'utente, ad esempio nome reale, posizione, ecc.) L'impostazione predefinita è 0 (disattivato).
- dictpath – Andiamo ai dizionari cracklib.
- parolacce – Parole separate da spazi vietate nelle password (nome dell'azienda, la parola "password", ecc.).
Se il concetto di prestito suona strano, va bene, è normale. Ne parleremo più approfonditamente nelle sezioni seguenti.
Configurazione della politica della password
Prima di iniziare a modificare i file di configurazione, è buona pratica scrivere in anticipo una politica di password di base. Ad esempio, utilizzeremo le seguenti regole di difficoltà:
- La password deve avere una lunghezza minima di 15 caratteri.
- Lo stesso carattere non deve essere ripetuto più di due volte nella password.
- Le classi di caratteri possono essere ripetute fino a quattro volte in una password.
- La password deve contenere caratteri di ciascuna classe.
- La nuova password dovrà avere 5 caratteri nuovi rispetto a quella vecchia.
- Abilita il controllo GECOS.
- Vietare le parole “password, pass, word, putorius”
Ora che abbiamo definito la policy, possiamo modificare il file /etc/security/pwquality.conf
per aumentare i requisiti di complessità della password. Di seguito è riportato un file di esempio con commenti per una migliore comprensione.
# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius
Come avrai notato, alcuni parametri nel nostro file sono ridondanti. Ad esempio, il parametro minclass
è ridondante poiché utilizziamo già almeno due caratteri della classe che utilizza i campi [u,l,d,o]credit
. Anche il nostro elenco di parole che non possono essere utilizzate è ridondante, poiché abbiamo proibito di ripetere qualsiasi lezione 4 volte (tutte le parole nel nostro elenco sono scritte in caratteri minuscoli). Ho incluso queste opzioni solo per dimostrare come utilizzarle per configurare la policy della password.
Una volta creata la policy, puoi obbligare gli utenti a modificare la propria password al successivo accesso.
Un'altra cosa strana che potresti aver notato sono i campi [u,l,d,o]credit
contenere un numero negativo. Questo perché i numeri maggiori o uguali a 0 daranno credito per l'utilizzo del carattere nella tua password. Se il campo contiene un numero negativo significa che è necessaria una certa quantità.
Cosa sono i prestiti?
Li chiamo prestiti perché rendono il loro scopo nel modo più accurato possibile. Se il valore del parametro è maggiore di 0, si aggiunge un numero di "crediti carattere" pari a "x" alla lunghezza della password. Ad esempio, se tutti i parametri (u,l,d,o)credit
impostato su 1 e la lunghezza della password richiesta era 6, avrai bisogno di 6 caratteri per soddisfare i requisiti di lunghezza perché ogni lettera maiuscola, minuscola, cifra o altro carattere ti darà un credito.
Se installi dcredit
a 2, potresti teoricamente utilizzare una password lunga 9 caratteri e ottenere crediti di 2 caratteri per i numeri, quindi la lunghezza della password potrebbe già essere 10.
Guarda questo esempio. Ho impostato la lunghezza della password su 13, ho impostato dcredit su 2 e tutto il resto su 0.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
Il mio primo controllo non è riuscito perché la password era lunga meno di 13 caratteri. La volta successiva ho cambiato la lettera "I" con il numero "1" e ho ricevuto due crediti per i numeri, che hanno reso la password uguale a 13.
Test della password
Pacchetto libpwquality
fornisce la funzionalità descritta nell'articolo. Viene fornito anche con un programma pwscore
, progettato per verificare la complessità della password. L'abbiamo usato sopra per controllare i prestiti.
Utilità pwscore
legge da
Il punteggio di qualità della password è correlato al parametro minlen
nel file di configurazione. In generale, un punteggio inferiore a 50 è considerato una “password normale”, mentre un punteggio superiore è considerato una “password complessa”. Qualsiasi password che superi i controlli di qualità (in particolare la verifica forzata cracklib
) deve resistere agli attacchi del dizionario e una password con un punteggio superiore a 50 con l'impostazione minlen
anche per impostazione predefinita brute force
attacchi.
conclusione
registrazione pwquality
– è facile e semplice rispetto alla scomodità di utilizzo cracklib
con modifica diretta del file pam
. In questa guida abbiamo trattato tutto ciò di cui avrai bisogno durante l'impostazione delle policy relative alle password su Red Hat 7, CentOS 7 e persino sui sistemi Ubuntu. Abbiamo parlato anche del concetto di prestito, di cui raramente si parla nel dettaglio, per cui questo argomento spesso rimaneva poco chiaro a chi non lo aveva mai affrontato in precedenza.
Fonti:
Link utili:
Fonte: habr.com