I moduli di autenticazione pluggable (PAM) sono in circolazione in Linux da molto tempo ormai. L'obiettivo di PAM è centralizzare i requisiti di autenticazione e autenticazione per servizi e moduli.
In un recente articolo che introduce PAM, ho menzionato che molte modifiche alla configurazione vengono apportate utilizzando altre utilità. Una di queste utilità è authconfig
. Questo strumento viene utilizzato con Red Hat Enterprise Linux, fino a RHEL7 incluso. Le ultime versioni di Fedora e RHEL8 usano authselect
invece, anche se potresti trovare authconfig
utility in modalità compatibilità.
Il authconfig
strumento è stato creato per assistere nella configurazione del client per l'autenticazione centralizzata. I file PAM sono solo una parte di questa configurazione. Ad esempio, utilizzando authconfig
per abilitare l'autenticazione Kerberos, apporta modifiche a /etc/nsswitch.conf
e il /etc/krb5.conf
oltre ad aggiungere il pam_krb5
modulo al /etc/pam.d/{system,password}-auth
File. È ora possibile anche una configurazione PAM aggiuntiva con authconfig
strumento, come vedremo negli esempi seguenti.
Tre interfacce authconfig
Come molte utilità di configurazione del sistema, l'autenticazione può essere configurata con uno strumento di interfaccia utente grafica (GUI), tramite un'interfaccia di testo interattiva (TUI) o dalla riga di comando. Diamo un'occhiata a tutte e tre le opzioni.
Lo strumento grafico è fornito da authconfig-gtk
pacchetto. Questa utility ha più schede per organizzare le opzioni:
Si accede alla versione testuale interattiva ("TUI") con il authconfig-tui
comando. Usa il TAB
tasto per spostare i campi e il SPACE
barra per selezionare o deselezionare le opzioni:
Infine, c'è lo strumento da riga di comando con script authconfig
. Questo comando ha anche molte opzioni descritte con --help
opzione e in man
pagina.
Le versioni grafica e testuale sono interattive, ma hanno opzioni limitate. Ad esempio, puoi abilitare l'autenticazione utilizzando un lettore di impronte digitali in tutte e tre le interfacce, ma solo lo strumento della riga di comando ha un'opzione per configurare il pam_faillock
modulo. Modifiche alla sicurezza della password utilizzando pam_pwquality
modulo sono realizzati con lo strumento grafico e lo strumento a riga di comando ma non l'interfaccia di testo interattiva.
Primo esempio:abilitare il lettore di impronte digitali
Prima di arrivare alle specifiche dell'utilizzo delle opzioni della riga di comando, diamo un'occhiata alle modifiche apportate abilitando il lettore di impronte digitali utilizzando authconfig-tui
o authconfig-gtk
:
[demo]$ grep fprintd /etc/pam.d/* # before enabling the fingerprint reader
/etc/pam.d/fingerprint-auth:auth sufficient pam_fprintd.so
/etc/pam.d/fingerprint-auth-ac:auth sufficient pam_fprintd.so
Con l'opzione disabilitata, solo fingerprint-auth
contiene riferimenti a fprintd
modulo. Dopo aver abilitato l'opzione, vengono aggiunte nuove linee a /etc/pam.d/system-auth
file:
[demo]$ grep fprintd /etc/pam.d/* # after enabling the fingerprint reader
/etc/pam.d/fingerprint-auth:auth sufficient pam_fprintd.so
/etc/pam.d/fingerprint-auth-ac:auth sufficient pam_fprintd.so
/etc/pam.d/system-auth:auth sufficient pam_fprintd.so
/etc/pam.d/system-auth-ac:auth sufficient pam_fprintd.so
Secondo esempio:impostazioni pwquality
Lo strumento grafico dispone anche di Opzioni password scheda che controlla il /etc/security/pwquality
file:
[demo]# grep '^[^# ]' /etc/security/pwquality.conf # before changing a field
Questo file contiene molti commenti utili che mostrano la sintassi e i valori predefiniti. Dopo aver modificato uno dei campi, tutte le opzioni vengono impostate alla fine del file:
[demo]# grep '^[^# ]' /etc/security/pwquality.conf # after changing a field
minlen = 12
minclass = 2
maxrepeat = 0
maxclassrepeat = 0
lcredit = 0
ucredit = 0
dcredit = 0
ocredit = 0
Ho modificato la lunghezza richiesta e il numero richiesto di classi di caratteri.
Utilizzare lo strumento CLI authconfig
Una delle cose difficili da ricordare quando si usa authconfig
alla riga di comando è aggiungere il --update
opzione. C'è un --test
opzione per controllare la sintassi, un --update
opzione per aggiornare authconfig
informazioni e i file di configurazione effettivi per le opzioni specificate e un --updateall
opzione che reimposta tutti i file di configurazione in modo che corrispondano a authconfig
impostazioni. Il --updateall
è un ottimo modo per eliminare tutte le modifiche manuali che un amministratore potrebbe aver apportato al sistema. Il mio flusso di lavoro in genere utilizza solo il --update
opzione per ogni modifica.
Se esegui authconfig
comandi come un utente normale, ti viene richiesta una password per aumentare i privilegi prima che i comandi vengano eseguiti. Questo vale anche con --help
domande:
[demo]# authconfig --help
Usage: authconfig [options] {--update|--updateall|--test|--probe|--restorebackup <name>|--savebackup <name>|--restorelastbackup}
Options:
...omitted...
--test do not update the configuration files, only print new settings
--update, --kickstart opposite of --test, update configuration files with changed settings
--updateall update all configuration files
Come visto nelle versioni GUI e TUI, l'autenticazione tramite impronta digitale è un interruttore on/off. Le opzioni della riga di comando sono:
[demo]# authconfig --help | grep finger
--enablefingerprint enable authentication with fingerprint readers by default
--disablefingerprint disable authentication with fingerprint readers by default
E il comando per abilitare la funzione di impronta digitale è:
[demo]# authconfig --enablefingerprint --update
Le impostazioni della password disponibili nella versione GUI ma non nella versione TUI possono essere impostate anche dalla riga di comando.
[demo]# authconfig --help | grep passmin
--passminlen=<number> minimum length of a password
--passminclass=<number> minimum number of character classes in a password
Puoi impostare più opzioni contemporaneamente:
[demo]# authconfig --passminlen=12 --passminclass=2 --update
Dal momento che non tutti i pwquality
le impostazioni possono essere effettuate con tutte le versioni di authconfig
, è comune utilizzare una delle opzioni della riga di comando, come --passminlen
opzione, per configurare inizialmente il /etc/security/pwquality
file. L'utilità imposta i valori per tutte le opzioni nella parte inferiore del file. Un amministratore può quindi modificare manualmente uno qualsiasi di questi campi facilmente con un sed
comando o utilizzando il lineinfile
di Ansible modulo.
Il faillock
module è un esempio di modifica ai file di configurazione PAM disponibile solo con la versione da riga di comando di authconfig
. Questo modulo conta i tentativi di autenticazione falliti per utente durante un intervallo specificato e blocca l'account se sono presenti troppe autenticazioni consecutive non riuscite.
[demo]# authconfig --help | grep fail
--enablefaillock enable account locking in case of too many consecutive authentication failures
--disablefaillock disable account locking on too many consecutive authentication failures
--faillockargs=<options> the pam_faillock module options
Il faillock
anche il modulo è leggermente diverso. Ci sono opzioni per abilitare e disabilitare, ma c'è anche un'opzione per passare argomenti. La soglia di conteggio può essere regolata, così come la durata dell'intervallo e il timeout di sblocco. Puoi anche scegliere se il modulo si applica solo agli utenti ordinari o anche all'account root. La pagina man di pam_faillock
mostra le opzioni valide e gli esempi della riga finale nel /etc/pam.d/*
File. Il --faillockargs
opzione per authconfig
si aspetta una stringa tra virgolette di tutte le opzioni impostate nei file PAM. Se lo lasci disattivato, vengono utilizzate le opzioni predefinite del modulo.
Quando disabilitato, non ci sono riferimenti a pam_faillock
modulo. Tuttavia, se grep
solo per fallire potresti vedere il pam_faildelay
modulo:
[demo]# grep faillock /etc/pam.d/* # before enabling the faillock module
Assicurati di citare il faillock
argomenti se includi tale opzione:
[demo]# authconfig --enablefaillock --faillockargs='deny=4 unlock_time=300' --update
Dopo aver abilitato il modulo, vengono aggiunte diverse righe a diversi /etc/pam.d/*auth
file.
E le modifiche manuali ai file PAM?
Durante l'esplorazione dei file PAM modificati da authconfig
, potresti notare che diversi file nel /etc/pam.d
directory hanno un commento in alto sulle modifiche manuali che vengono sovrascritte dall'utilità. L'utilità è stata ampliata per coprire molte delle funzionalità PAM standard, ma a volte è necessario apportare modifiche manuali. Se apporti modifiche manuali, devi disabilitare le modifiche direttamente da authconfig
.
C'è un articolo di knowledge base e un post sul blog di servizi che forniscono i passaggi per le modifiche manuali. Puoi anche trovare esercizi di formazione formale per le modifiche manuali e approfondire diversi moduli specifici frequentando il corso Red Hat Security:Linux in Physical, Virtual, and Cloud (RH415).
Dopo tutto questo, è uno strumento deprecato?
Il authconfig
le utilità sono state originariamente create per assistere nella configurazione di diversi tipi di autenticazione centralizzata. Nel corso degli anni si è ampliato per gestire anche altre configurazioni PAM. Nei sistemi attuali, la maggior parte dell'autenticazione centralizzata è ora configurata tramite ipa-client-install
o realmd
, entrambi si aspettano il sssd
e il pam_sss
moduli. Il authselect
l'utilità sostituisce authconfig
nelle recenti versioni di Fedora ed è stato introdotto in Red Hat Enterprise Linux con la versione 8. Questo nuovo strumento gestisce le configurazioni attraverso i profili e non modifica più tutti i diversi file di configurazione centralizzati. Il focus è su /etc/nsswitch.conf
file e i file di configurazione PAM. Ha molte opzioni simili per abilitare e disabilitare funzioni come lettori di impronte digitali, smartcard e faillock
modulo. Puoi saperne di più sulla migrazione con man authselect-migration
.
[ Download gratuito:cheat sheet dei comandi avanzati di Linux. ]