3.5 KiB
PAM - Pluggable Authentication Modules
{{#include ../../banners/hacktricks-training.md}}
Informazioni di Base
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.
File di Configurazione
- I sistemi Solaris e UNIX-based tipicamente utilizzano 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ì:
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so
Reami di Gestione PAM
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.
Controlli del Modulo PAM
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.
Scenario Esemplare
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.
Riferimenti
{{#include ../../banners/hacktricks-training.md}}