hacktricks/src/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md

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}}