5.8.1 Configurazione

Il file di configurazione della libreria PAM è in formato testo e contiene delle righe con la seguente sintassi

 
service-name module-type control-flag module-path args  
dove

In modo molto più flessibile rispetto al singolo file, la configurazione della libreria PAM può essere fatta attraverso l’utilizzo di files contenuti nella directory /etc/pam.d. In genere il file di configurazione riporta lo stesso nome del file (applicazione) che gestisce il servizio. La sintassi delle righe dei files di configurazione contenuti nella directory /etc/pam.d è la seguente

 
module-type control-flag module-path args  
Come si può notare è analoga a quella relativa a /etc/pam.conf con la differenza che service-name non è presente, poiché il file in questione si riferisce già ad uno specifico servizio (applicazione).

La configurazione dei moduli PAM può essere gestita in due modi diversi, a discrezione del sistema (della distribuzione GNU/Linux):

È da notare che le parole chiavi specifiche delle direttive PAM, sono case insensitive, cioè non fa differenza tra lettere maiuscole e minuscole e le direttive possono essere espresse su più righe inserendo come carattere di continuazione tra una riga e l’altra il simbolo ‘\’ (backslash).

5.8.1.1 Configurazione di default

Se un sistema deve essere sicuro, è opportuno che abbia delle direttive di default (OTHER) ragionabilmente sicure come segue:

 

                                                                        
                                                                        
#
# default; deny access
#
OTHER   auth     required       pam_deny.so
OTHER   account  required       pam_deny.so
OTHER   password required       pam_deny.so
OTHER   session  required       pam_deny.so
 

Anche se le direttive sopra riportate sono necessarie per una configurazione ad elevata sicurezza, per sistemi mal configurati potrebbero non permettere l’accesso al sistema a nessun utente. È da tenere presente inoltre che il modulo pam_deny.so non registra nessun evento nel system log, quindi è difficile riuscire a capire dove sta il problema in caso di sistema mal configurato.

Per avere un avvertimento nel caso di applicazione non configurata, è conveniente aggiungere le seguenti linee in testa a quelle sopra indicate.

 

#
# default; wake up! This application is not configured
#
OTHER   auth     required       pam_warn.so
OTHER   password required       pam_warn.so
 
Analogamente, per un sistema che utilizza il sistema di configurazione tramite i file contenuti nella directory /etc/pam.d, la corrispondente impostazione di default di quella sopra riportata è la seguente (quello elencato è il contenuto del file di configurazione del servizio specifico)

 

#
# default configuration: /etc/pam.d/other
#
auth     required       pam_warn.so
auth     required       pam_deny.so
account  required       pam_deny.so
password required       pam_warn.so
password required       pam_deny.so
session  required       pam_deny.so
 
La configurazione per la gestione “standard” dei sistemi Unix-like è la seguente:

 

                                                                        
                                                                        
#
# default; standard UN*X access
#
OTHER   auth     required       pam_unix.so
OTHER   account  required       pam_unix.so
OTHER   password required       pam_unix.so
OTHER   session  required       pam_unix.so
 
Generalmente questo rappresenta il punto di inizio per la maggior parte delle applicazioni. Per applicazioni specifiche potrebbe essere necessaria una configurazione leggermente diversa. Per esempio il servizio FTP20 con l’abilitazione per l’accesso all’utente anonymous richiede un file di configurazione analogo al seguente

 

#
# ftpd; add ftp-specifics. These lines enable anonymous ftp over
#       standard UN*X access (the listfile entry blocks access to
#       users listed in /etc/ftpusers)
#
ftpd    auth    sufficient  pam_ftp.so
ftpd    auth    required    pam_unix_auth.so use_first_pass
ftpd    auth    required    pam_listfile.so \
    onerr=succeed item=user sense=deny file=/etc/ftpusers
 

La seconda riga è necessaria poiché le direttive di default sono ignorate da un’applicazione (in questo caso ftpd) se ci sono delle righe in /etc/pam.conf che riguardano la specifica applicazione. È da notare anche l’uso di use_first_pass come argomento da passare al modulo PAM pam_unix_auth.so che indica al modulo di non richiedere la password, ma di prendere in considerazione quella già ottenuta dal modulo pam_ftp.so.

5.8.1.2 Problemi di configurazione

Nel casoin cui i files di configurazione della libreria PAM andassero perduti, il sistema non permetterebbe l’accesso a nessuno. Per risolvere questo problema, è opportuno accedere al sistema in single user mode (run level 1) e correggere il problema. La sequenza dei comandi di seguito riportati può risolvere il problema riportando la configurazione della libreria PAM a quella “standard” dei sistemi Unix-like.

 

                                                                        
                                                                        
# cd /etc
# mv pam.conf pam.conf.orig
# mv pam.d pam.d.orig
# mkdir pam.d
# cd pam.d
 
quindi creare un file /etc/pam.d/other contenente le seguenti righe:

 

auth     required       pam_unix.so
account  required       pam_unix.so
password required       pam_unix.so
session  required       pam_unix.so