Come possiamo aggiungere ulteriori parole all'elenco delle parole controllate dal dizionario delle password di pam_cracklib in Red Hat Enterprise Linux 6?
Cos'è PAM cracklib
Red Hat Enterprise Linux può essere configurato per verificare che le password non possano essere indovinate facilmente. Su Red Hat Enterprise Linux questo controllo viene eseguito dal Pluggable Authentication Module (PAM) /lib/security/pam_cracklib.so . Verifica che le password abbiano una lunghezza minima e verifica che non sia presente una password in un dizionario.
Il dizionario utilizzato da questo modulo si trova in /usr/lib/ ed è in formato cracklib. Per impostazione predefinita, a ciascuno dei file del dizionario è preceduto il nome del file cracklib_dict .
Questo modulo ha una serie di parametri, alcuni dei più utili sono di seguito:
Parametro | Descrizione |
---|---|
minore | Specifica la lunghezza minima consentita per un account |
difok | Specifica il numero minimo di caratteri che devono differire dalla password precedente |
Un esempio di implementazione potrebbe essere l'aggiunta della seguente riga al file /etc/pam.d/system-auth:
password required /lib/security/pam_cracklib.so retry=3 type= minlen=8 difok=3Nota :L'argomento type=non necessita di un valore a meno che non si desideri definire questo parametro. Definirlo altererà il messaggio stampato come prompt per l'utente.
Ulteriori informazioni sul modulo pam_cracklib sono disponibili nella documentazione di sistema all'indirizzo:/usr/share/doc/pam-
Aggiunta di nuove parole al dizionario cracklib
Segui i passaggi seguenti per aggiungere parole al dizionario utilizzato da cracklib per convalidare le password rispetto alle parole conosciute del dizionario.
1. Assicurati di avere meno di rpm installati sul tuo server CentOS/RHEL/Fedora:
pam-1.1.1-22.0.1.el6.x86_64 cracklib-2.8.16-4.el6.x86_64 cracklib-dicts-2.8.16-4.el6.x86_64 words-3.0-17.el6.noarch
Nota che la versione di rpms cambierà in base alla versione del sistema operativo.
2. Verifica se la nuova parola da aggiungere al dizionario già esistente nel dizionario o meno.
# echo "pwd1234@" | cracklib-check pwd1234@: OK
L'“OK” nell'output indica che la nuova parola non è già inclusa nel dizionario.
3. Modifica /usr/share/dict/linux.words e aggiungi "pwd1234@" per ultimo.
# vi /usr/share/dict/linux.words pwd1234@
3. Verifica il file che la voce è stata aggiunta.
# tail /usr/share/dict/linux.words Zyzomys Zyzzogeton zyzzyva zyzzyvas ZZ Zz zZt ZZZ pwd1234@
4. Aggiorna il dizionario cracklib con il comando seguente:
# create-cracklib-dict /usr/share/dict/linux.words
5. Ora controlla ancora una volta se lo stesso è stato aggiunto al Dizionario o no?
# echo "pwd1234@" | cracklib-check pwd1234@: it is based on a dictionary word
La nuova parola è già nel dizionario come si vede dall'output sopra.
6. Ora prova anche con la stessa password dall'utente
$ passwd Changing password for user test. Changing password for test. (current) UNIX password: New password: >>>>>>>>>>>>> Input pwd1234@ BAD PASSWORD: it is based on a dictionary word
Come puoi vedere dall'output sopra, la nuova parola aggiunta al dizionario non può essere utilizzata come password ora.