Sin dalla nascita dei primi sistemi UNIX l’autenticazione si basava su una password che l’utente doveva inserire nel sistema per poi essere confrontata con una crittografata nel file /etc/passwd, questo metodo di autenticazione permetteva di avere la certezza dell’identità dell’utente per corrispondenza tra le due password. Successivamente con l’incremento della velocità di elaborazione dei computer e la larga diffusione delle reti, rese questo sistema vulnerabile e non più applicabile. La limitazione di questo metodo consiste nella necessità di aggiornare tutti i programmi ogni volta che il sistema di autenticazione veniva modificato, PAM ( Pluggable Authentication Modules ) è un sistema di librerie condivise che consente all’amministratore di scegliere il metodo di autenticazione degli utenti da parte delle applicazioni.
Linux-PAM permette di sviluppare programmi indipendenti dal metodo, questi si avvalgono dei moduli di autenticazione che dipendono dalle impostazioni locali del sistema e che sono, quindi, configurabili dall’amministratore. L’applicazione può essere configurata localmente attraverso il file di configurazione /etc/pam.conf oppure con una serie di moduli posti nella directory /etc/pam.d che si avvalgono di una serie di moduli posti di solito nella directory /usr/lib/security. I moduli nei file di configurazione gestiscono quattro operazioni:
Per quanto riguarda il metodo di configurazione di file in una directory, il più utilizzato, il nome dei file di configurazione per ogni servizio PAM ereditano il nome del servizio stesso, avremo quindi ftpd, rlogind, su, ecc. Esiste tuttavia un nome di servizio speciale OTHER riservato ai meccanismi non esplicitamente configurati, cioé per i quali non esiste un file di configurazione nella directory. Ciascun file di configurazione è costituito da linee del tipo:
tipo_di_modulo flag_di_controllo percorso_del_modulo argomenti
Esistono quattro tipi di modulo ciascuno associato alle quattro operazioni citate in precedenza:
I flag di controllo specificano come la libreria PAM dovrà reagire al successo o fallimento di un modulo a cui è associata. Il formato più semplice prevede l’uso di una delle seguenti parole chiave:
Il percorso del modulo indica il nome del percorso del file oggetto dinamicamente caricabile, mentre gli argomenti sono una lista di elementi passati al modulo quando viene invocato, tra le più comuni abbiamo: debug per registrare informazioni di debugging, no_warn per non mandare segnali di allerta all’applicazione, use_first_pass, try_first_pass ed altri.
Veniamo ad un esempio concreto:
# /etc/pam.d/ftp auth sufficient /usr/lib/security/pam_ftp.so auth required /usr/lib/security/pam_unix.so use_first_pass auth required /usr/lib/security/pam_listfile.so \ onerr=succeed item=user sense=deny file=/etc/ftpusers
Il modulo pam_ftp gestisce solo operazioni di authentication management, in particolare intercetta il nome e la password dell’utente, essendo con flag sufficient, il successo di tale modulo consente di ignorare i moduli auth seguenti. Il modulo pam_unix si avvale delle librerie standard di sistema per ottenere le informazioni per l’autenticazione, di solito contenute in /etc/passwd o /etc/shadow. L’uso di use_first_pass inibisce la richiesta della password e forza l’uso di quella ottenuta con il modulo pam_ftp. Il modulo pam_listfile cerca un’istanza contenuta nell’opzione item ( in questo caso user ) nel file /etc/ftpusers negando sense=deny l’autorizzazione ( in pratica tutti gli utenti contenuti nel file non possono autenticarsi ).
Se il sistema sul quale si lavora è costituito da un solo utente, l’uso di PAM non sembra offrire grossi vantaggi, però su di un server Linux ci sono diversi servizi in cui PAM può svolgere un ruolo egregio, in particolare mediante l’uso dei moduli. Purtroppo non tutti i programmi sono compatibili con PAM, ma occorre aggiungere il supporto e tale opportunità è possibile solo avendo a disposizione i sorgenti del programma stesso, cosa che in Linux, essendo open source, è decisamente probabile.
Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…
MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→
In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…
In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…
Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…
Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→