16.4. Esempi di file di configurazione PAM
Di seguito � riportato un esempio del file di configurazione PAM:
#%PAM-1.0
auth required pam_securetty.so
auth required pam_unix.so shadow nullok
auth required pam_nologin.so
account required pam_unix.so
password required pam_cracklib.so retry=3
password required pam_unix.so shadow nullok use_authtok
session required pam_unix.so |
La prima riga � un commento, come indicato dal carattere # all'inizio della stessa.
Le righe da due a quattro contengono tre moduli da usare per l'autenticazione del login.
auth required pam_securetty.so |
Questa riga assicura che se l'utente prova a collegarsi come root, la tty in uso sia elencata nel file /etc/securetty, se tale file esiste.
auth required pam_unix.so shadow nullok |
Questo modulo richiede all'utente una password, che poi verifica usando le informazioni conservate in /etc/passwd e, se esiste, /etc/shadow. Il modulo pam_unix.so rileva e utilizza automaticamente le password shadow per autenticare gli utenti. Consultate la Sezione 6.5 per maggiori informazioni.
L'argomento nullok specifica al modulo pam_unix.so di accettare una password vuota.
auth required pam_nologin.so |
Questa � la fase finale di autenticazione. Con la suddetta fase si controlla l'esistenza del file /etc/nologin. Se nologin esiste e l'utente non � root, l'autenticazione non ha successo.
| Nota Bene |
---|
| In questo esempio, tutti e tre i moduli auth vengono controllati, anche se il primo modulo auth non supera la verifica. Questa strategia impedisce all'utente di sapere perch� l'autenticazione non � permessa. Se conoscesse il motivo, l'utente riuscirebbe a capire come irrompere nel sistema. |
account required pam_unix.so |
Questo modulo effettua qualsiasi verifica necessaria dell'account. Per esempio se le password shadow sono state abilitate, la componente dell'account del modulo pam_unix.so verifica se l'account � scaduto o se l'utente non ha modificato la password nel periodo stabilito.
password required pam_cracklib.so retry=3 |
Se la password � scaduta, il componente del modulo pam_cracklib.so ne richiede una nuova. Quindi verifica la nuova password per vedere se pu� essere facilmente indovinata da un programma che ricostruisce le password. Se la verifica non va a buon fine, offre all'utente altre due possibilit� per creare una password meno facile, in base all'argomento retry=3.
password required pam_unix.so shadow nullok use_authtok |
Questa riga specifica che se il programma modifica la password dell'utente, dovrebbe utilizzare il componente password del modulo pam_unix.so per farlo. Succede solo se la porzione auth del modulo pam_unix.so ha stabilito che la password deve essere cambiata — per esempio se una password shadow � scaduta.
L'argomento shadow specifica al modulo di creare password shadow durante l'aggiornamento della password dell'utente.
L'argomento nullok specifica al modulo di consentire all'utente di modificare la password da una password vuota, altrimenti questa viene considerata come un blocco dell'account.
L'argomento finale di questa riga, use_authtok, fornisce un buon esempio sull'importanza dell'ordine quando si mettono insieme i moduli PAM. Questo argomento specifica al modulo di non richiedere all'utente una nuova password. Deve invece accettare qualsiasi password passata dal modulo precedente. In questo modo tutte le nuove password devono passare il controllo pam_cracklib.so per verificare la sicurezza delle password prima di accettarle.
session required pam_unix.so |
La riga finale specifica che il componente della sessione del modulopam_unix.so viene usato per gestire la sessione stessa. Questo modulo registra il nome utente e il tipo di servizio in /var/log/messages all'inizio e alla fine di ogni sessione. Pu�essere supportato da altri moduli di sessione per ottenere una migliore funzionalit�.
Nel file di configurazione nell'esempio successivo viene illustrato l'uso del modulo auth per il programma rlogin.
#%PAM-1.0
auth required pam_nologin.so
auth required pam_securetty.so
auth required pam_env.so
auth sufficient pam_rhosts_auth.so
auth required pam_stack.so service=system-auth |
Per prima cosa, pam_nologin.so verifica se /etc/nologin esiste. In caso positivo, pu� collegarsi solo l'utente root.
auth required pam_securetty.so |
Il modulo pam_securetty.so impedisce quindi i login di root su terminali non sicuri. In questo modo tutti i tentativi rlogin di root sono disabilitati per ragioni di sicurezza.
| Suggerimento |
---|
| Se dovete collegarvi in modo remoto come utente root, usate OpenSSH. Per maggiori informazioni consultate Capitolo 20. |
Questa riga carica il modulo pam_env.so, che imposta le variabili d'ambiente specificate in /etc/security/pam_env.conf.
auth sufficient pam_rhosts_auth.so |
Il modulo pam_rhosts_auth.so quindi autentica l'utente per l'uso di .rhosts nella sua home directory. Se va a buon fine, PAM considera immediatamente che l'autenticazione abbia avuto un esito positivo. Se pam_rhosts_auth.so non riesce ad autenticare l'utente, il tentativo di autenticazione non riuscito viene ignorato.
auth required pam_stack.so service=system-auth |
Se il modulo pam_rhosts_auth.so non riesce ad autenticare l'utente, il modulo pam_stack.so esegue una regolare autenticazione della password.
L'argomento service=system-auth indica che l'utente deve ora sottoporsi all'autenticazione PAM per l'autorizzazione del sistema in /etc/pam.d/system-auth.
| Suggerimento |
---|
| Se non volete che venga visualizzato il prompt per inserire la password quando securetty fallisce, potete cambiare il modulo pam_securetty.so da required a requisite. |