PAM - Pluggable Authentication Modules
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
PAM (Pluggable Authentication Modules) funge da meccanismo di sicurezza che verifica l'identità degli utenti che tentano di accedere ai servizi informatici, controllando il loro accesso in base a vari criteri. È simile a un custode digitale, assicurando che solo gli utenti autorizzati possano interagire con servizi specifici, limitando potenzialmente il loro utilizzo per prevenire sovraccarichi di sistema.
I sistemi Solaris e UNIX-based utilizzano tipicamente un file di configurazione centrale situato in /etc/pam.conf
.
I sistemi Linux preferiscono un approccio basato su directory, memorizzando configurazioni specifiche per i servizi all'interno di /etc/pam.d
. Ad esempio, il file di configurazione per il servizio di login si trova in /etc/pam.d/login
.
Un esempio di configurazione PAM per il servizio di login potrebbe apparire così:
Questi reami, o gruppi di gestione, includono auth, account, password e session, ciascuno responsabile di diversi aspetti del processo di autenticazione e gestione delle sessioni:
Auth: Valida l'identità dell'utente, spesso richiedendo una password.
Account: Gestisce la verifica dell'account, controllando condizioni come l'appartenenza a gruppi o restrizioni di orario.
Password: Gestisce gli aggiornamenti delle password, inclusi controlli di complessità o prevenzione di attacchi a dizionario.
Session: Gestisce le azioni durante l'inizio o la fine di una sessione di servizio, come il montaggio di directory o l'impostazione dei limiti delle risorse.
I controlli determinano la risposta del modulo al successo o al fallimento, influenzando l'intero processo di autenticazione. Questi includono:
Required: Il fallimento di un modulo richiesto porta a un eventuale fallimento, ma solo dopo che tutti i moduli successivi sono stati controllati.
Requisite: Terminazione immediata del processo in caso di fallimento.
Sufficient: Il successo bypassa il resto dei controlli dello stesso reame a meno che un modulo successivo non fallisca.
Optional: Causa fallimento solo se è l'unico modulo nello stack.
In una configurazione con più moduli auth, il processo segue un ordine rigoroso. Se il modulo pam_securetty
trova il terminale di accesso non autorizzato, i login come root vengono bloccati, ma tutti i moduli vengono comunque elaborati a causa del suo stato "required". Il pam_env
imposta le variabili di ambiente, potenzialmente aiutando nell'esperienza utente. I moduli pam_ldap
e pam_unix
lavorano insieme per autenticare l'utente, con pam_unix
che tenta di utilizzare una password fornita in precedenza, migliorando l'efficienza e la flessibilità nei metodi di autenticazione.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)