Di seguito è riportato un file di configurazione PAM di esempio:
#%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 si assicura che se l'utente sta provando a collegarsi come root, la tty che sta utilizzando 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 sulle password shadow.
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. Essa controlla se il file /etc/nologin esiste. Se nologin esiste e l'utente non è root, l'autenticazione fallisce.
![]() | 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 di come utilizzare una struttura a stack per 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 di sessione del modulopam_unix.so viene usato per gestire la sessione. 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 root, usate OpenSSH. Per maggiori informazioni sul protocollo SSH, consultate il Capitolo 19. |
auth required pam_env.so |
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. |