Sommario
Estratto
I moduli di autenticazione aggiungibili, PAM, vengono utilizzati da Linux nel processo di autenticazione per costituire il livello che collega utente e applicazione. I moduli PAM sono disponibili in tutto il sistema e disponibili per tutte le applicazioni. Nel presente capitolo viene descritto il meccanismo di autenticazione modulare e la sua configurazione.
Gli amministratori di sistema e i programmatori hanno spesso l'esigenza di limitare l'accesso ad alcune aree del sistema o impedire l'utilizzo di alcune funzioni di un'applicazione. Senza il PAM, le applicazioni devono essere adattate in presenza di ogni nuovo meccanismo di autenticazione, come LDAP o SAMBA. Tuttavia tale processo è impegnativo dal punto di vista del tempo ed esposto a errori. Un modo per evitare questi svantaggi è quello di separare le applicazioni dal meccanismo di autenticazione e di delegare quest'ultimo a moduli a gestione unificata. In presenza di una richiesta di un nuovo schema di autenticazione, sarà sufficiente adattare o sviluppare un modulo PAM appropriato al programma in questione.
Ogni programma affidato al meccanismo PAM dispone di un proprio file di configurazione nella directory /etc/pam.d/. Questi file definiscono i moduli PAM utilizzati per l'authentication. Inoltre, esistono dei file di configurazione globali per la maggior parte dei moduli PAM, sotto nome_programma/etc/security, che definiscono il comportamento preciso di questi moduli; ad esempio pam_env.conf, pam_pwcheck.conf, pam_unix2.conf e time.conf). L'applicazione che utilizza un modulo PAM in realtà invoca una serie di funzioni PAM, che a loro volta elaborano le informazioni del file di configurazione e restituiscono il risultato all'applicaizone invocante.
Ciascuna riga del file di configurazione PAM contiene un massimo di 4 colonne:
<Tipo di modulo> <Flag di controllo> <Percorso del modulo> <Opzioni>
I moduli PAM vengono elaborati in modalità stack. Il tipo di modulo varia a seconda dello scopo; ad esempio, un modulo verifica la parola d'ordine, un altro verifica l'ubicazione da cui si accede al sistema e un altro ancora legge le impostazioni specifiche all'utente. PAM è costituito da 4 diversi tipi di modulo:
authLo scopo di questo tipo di modulo è verificare l'autenticità dell'utente. Questa operazione viene di norma svolta tramite richiesta di una parola d'ordine, ma può essere effettuata anche tramite chip o verifiche biometriche (impronte digitali o iride).
accountQuesto tipo di modulo verifica se l'utente dispone dell'autorizzazione generale per utilizzare il servizio richiesto. Ad esempio, una tale verifica deve essere svolta per accertarsi che nessuno esegua un login con nome utente e parola d'ordine scaduti.
passwordLo scopo di questo tipo di modulo è quello di abilitare la modifica di un token di authentication. Nella maggior parte dei casi, il token è una parola d'ordine.
sessionQuesto tipo di modulo è responsabile della gestione e configurazione delle sessioni utente. Queste vengono aperte prima e dopo l'autenticazione per registrare i tentativi di login nei file di log del sistema e per configurare l'ambiente specifico dell'utente (conti e-mail, home directory, limiti del sistema, ecc.).
La seconda colonna contiene dei flag di controllo per pilotare il comportamento dei moduli avviati:
required
Un modulo con un flag simile deve essere elaborato correttamente prima che possa avere luogo l'autenticazione. Se un modulo con flag required restituisce un errore, vengono elaborati tutti gli altri moduli con lo stesso flag prima che il sistema invii all'utente un messaggio riguardo il fallito tentativo di autenticazione.
requisite
Anche i moduli con questo flag devono essere elaborati correttamente in modo analogo a quelli con flag required. Tuttavia, questo modulo restituisce immediatamente l'eventuale errore senza proseguire l'elaborazione di ulteriori moduli. In caso di elaborazione corretta, gli altri moduli vengono elaborati in successione analogamente a come avviene per i moduli con flag required. Il flag requisite può essere utilizzato come filtro di base per verificare l'esistenza di determinate condizioni essenziali per la corretta autenticazione.
sufficient
Dopo la corretta elaborazione di un modulo con flag simile, l'applicazione invocante riceve un messaggio immediato riguardo la riuscita e l'elaborazione di ulteriori moduli non avviene, a patto che non vi siano stati errori di precedenti moduli con flag required. L'errore di un modulo con flag sufficient non ha conseguenze dirette, nella misura in cui tutti i moduli successivi vengono elaborati nell'ordine.
optionalL'errore o riuscita di un modulo con un tale flag non ha nessuna conseguenza diretta. Risulta utile per i moduli destinati solo alla visualizzazione di messaggi (ad esempio per segnalare all'utente l'arrivo di posta) senza ulteriore elaborazione.
In presenza di questo flag, il file specificato come argomento viene inserito in questa ubicazione.
Il percorso del modulo non deve essere specificato in modo esplicito, a patto che il modulo si trovi nella directory di default /lib/security (per le piattaforme a 64 bit supportate da SUSE Linux, la directory è /lib64/security). L'opzione presente nella quarta colonna può essere debug (abilita le funzioni di debug) o nullok (consente l'utilizzo di parole d'ordine vuote).