[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Secondo la tradizione dei sistemi Unix, l'identificazione di un utente avviene attraverso una parola d'ordine, annotata in modo cifrato nel file /etc/passwd
, oppure nel file /etc/shadow
se è attiva la gestione delle parole d'ordine oscurate. L'introduzione delle parole d'ordine oscurate ha aggiunto la possibilità di maggiori controlli sull'utenza, in particolare definendo dei tempi di validità per le parole d'ordine e per le utenze stesse.
Tuttavia, il sistema delle parole d'ordine oscurate rimane ancorato alla gestione di parole d'ordine, mentre i metodi di identificazione potrebbero essere differenti. L'esigenza di definire una struttura generalizzata per la gestione dei metodi di autenticazione ha portato alla realizzazione del sistema PAM (Pluggable authentication modules), con il quale, attraverso le librerie PAM è possibile definire e configurare la politica di accesso in base al contesto.
Per mettere in pratica questo sistema, i programmi che in qualche modo si occupano di mettere a disposizione un servizio di autenticazione devono essere predisposti per l'utilizzo di queste librerie. In generale, un sistema Unix in cui è attivata la gestione PAM, configurato in modo standard, si comporta esattamente come un sistema che ne è sprovvisto. In altri termini, la configurazione standard del sistema PAM è quella che ricalca la tradizione dei sistemi Unix.
In questo capitolo si fa riferimento alla realizzazione del sistema PAM per GNU/Linux, ovvero Linux-PAM. (1)
L'aspetto più importante del sistema PAM è la modularità, costituita da diversi file di libreria, competenti ognuno per un tipo differente di servizio di autenticazione. Quando si gestisce il sistema PAM, questi file sono indispensabili al funzionamento del sistema, pertanto non possono essere collocati al di sotto della directory /usr/
.(2) La collocazione normale di questi file è così la directory /lib/security
. A titolo di esempio, nella directory si potrebbero vedere i file seguenti:
pam_access.so pam_ldap.so pam_rhosts_auth.so pam_unix_acct.so pam_deny.so pam_limits.so pam_rootok.so pam_unix_auth.so pam_env.so pam_listfile.so pam_securetty.so pam_unix_passwd.so pam_filter.so pam_mail.so pam_shells.so pam_unix_session.so pam_ftp.so pam_mkhomedir.so pam_stress.so pam_userdb.so pam_group.so pam_motd.so pam_tally.so pam_warn.so pam_issue.so pam_nologin.so pam_time.so pam_wheel.so pam_lastlog.so pam_permit.so pam_unix.so |
Inizialmente, la configurazione del sistema PAM dipendeva dal file /etc/pam.conf
. Attualmente la configurazione è suddivisa in più file, contenuti nella directory /etc/pam.d/
e il file /etc/pam.conf
rimane vuoto o commentato completamente. In tal modo, ogni servizio di autenticazione ha un proprio file nella directory /etc/pam.d/
, facilitando anche la gestione dei pacchetti di applicazioni, che non devono condividere la configurazione in un solo file.
I file di configurazione contenuti nella directory /etc/pam.d/
sono file di testo normali, in cui le righe vuote e quelle bianche sono ignorate, così come sono ignorate quelle che iniziano con il simbolo #. Per il resto, si tratta di record con la struttura seguente:
tipo livello_di_controllo modulo_pam [opzioni_del_modulo] |
Il listato 98.2 rappresenta l'esempio di come potrebbe apparire il file /etc/pam.d/login
, che serve a configurare il servizio di autenticazione attraverso il programma login.
|
Il primo campo serve a definire il tipo di contesto a cui si fa riferimento, attraverso alcune parole chiave ben definite, descritto nell'elenco successivo.
Ogni modulo PAM può essere visto come una funzione che restituisce un valore. Sono possibili tre casi: SUCCESS, corrispondente a una verifica completata come richiesto, FAILURE, corrispondente a una verifica fallita, IGNORE, corrispondente a un risultato indefinibile. Il secondo campo consente di definire come deve essere preso in considerazione l'esito della verifica fatta dal modulo corrispondente. Anche in questo caso si usa una parola chiave, come descritto nel prossimo elenco.
|
I record di questi file di configurazione vengono analizzati nell'ordine in cui appaiono. |
Il terzo campo rappresenta il nome del modulo, ovvero il file. Questo nome può essere completo di percorso assoluto, oppure può essere indicato senza tale informazione, se la sua collocazione è quella predefinita. Il quarto campo è costituito dalle opzioni da passare al modulo, separate tra loro da uno o più spazi.
Tra i vari file di configurazione è importante definirne uno denominato other
, che viene utilizzato quando per quel particolare servizio di autenticazione non ne è stato previsto uno specifico. L'esempio che si vede nel listato 98.5 rappresenta il contenuto di questo file quando si vuole garantire un sistema minimo di autenticazione, secondo i canoni tradizionali.
|
Per verificare che ciò sia vero, si può provare a spostare temporaneamente gli altri file di configurazione della directory /etc/pam.d/
in un'altra collocazione, lasciando al suo posto il file /etc/pam.d/other
.
In alternativa, si può fare in modo che non ci siano altre possibilità di autenticazione, al di fuori di quando definito dai file di configurazione specifici. Per questo, basta che il file /etc/pam.d/other
contenga le righe che si vedono nel listato 98.6.
|
A seconda delle circostanze, alcuni moduli possono annotare nel registro del sistema l'esito della loro verifica. In generale, è prevista l'opzione debug per abilitare queste annotazioni, salvo quando ciò è implicito, opzione che dovrebbe essere riconosciuta dalla maggior parte dei moduli. Queste annotazioni possono aiutare l'amministratore a comprendere dove ci possono essere dei problemi di configurazione. A titolo di esempio, si può osservare l'estratto seguente:
|
In questo caso si può osservare che l'utente tizio ha tentato di accedere attraverso il servizio di autenticazione login, senza che per lui sia prevista un'utenza, pertanto, già il nominativo-utente tizio risulta sconosciuto.
Oltre alle opzioni fornite nei record dei file di configurazione dei servizi di autenticazione, nella directory /etc/pam.d/
, alcuni moduli possono richiedere una configurazione particolare. Questi file ulteriori hanno solitamente un nome corrispondente a quello dei moduli, senza il prefisso pam_
e senza l'estensione .so
, con l'aggiunta dell'estensione .conf
, collocati nella directory /etc/security/
. Per esempio, il file /etc/security/access.conf
si riferisce al modulo pam_access.so
.
In condizioni normali, tali file di configurazione ulteriori, sono vuoti, oppure sono commentati completamente, rimanendo a disposizione per la definizione di funzionalità particolari.
Andrew G. Morgan, The Linux-PAM system administrators' guide
<http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html>
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) Linux-PAM licenza in stile BSD che può trasformarsi in GNU GPL
2) La gerarchia che parte dalla directory /usr/
tipica, potrebbe essere contenuta in un disco diverso da quello che contiene quella principale; pertanto, se all'avvio ci sono delle difficoltà e non si può innestare la gerarchia /usr/
, si rischia di non poter usare il sistema perché mancano le librerie PAM.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome moduli_pam.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]