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
Quando è utilizzato un numero positivo m, questo indica che i successivi m moduli dello stesso tipo devono essere saltati (non devono essere invocati).
Ognuna delle parole chiavi della sintassi più vecchia ha un’espressione equivalente nella sintassi più recente, come riportato in tab. 5.1
![]()
|
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).
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. |
# # default; wake up! This application is not configured # OTHER auth required pam_warn.so OTHER password required pam_warn.so
# # 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
#
# 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
# # 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. |
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
auth required pam_unix.so account required pam_unix.so password required pam_unix.so session required pam_unix.so