PAM - Pluggable Authentication Modules

Support HackTricks

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 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ì:

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 di 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.

Esempio di Scenario

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

Support HackTricks

Last updated