PAM - Pluggable Authentication Modules

Support HackTricks

Grundinformationen

PAM (Pluggable Authentication Modules) fungiert als Sicherheitsmechanismus, der die Identität von Benutzern überprüft, die versuchen, auf Computerressourcen zuzugreifen, und ihren Zugang basierend auf verschiedenen Kriterien steuert. Es ist vergleichbar mit einem digitalen Torwächter, der sicherstellt, dass nur autorisierte Benutzer mit bestimmten Diensten interagieren können, während ihre Nutzung möglicherweise eingeschränkt wird, um Systemüberlastungen zu verhindern.

Konfigurationsdateien

  • Solaris- und UNIX-basierte Systeme verwenden typischerweise eine zentrale Konfigurationsdatei, die sich unter /etc/pam.conf befindet.

  • Linux-Systeme bevorzugen einen Verzeichnisansatz und speichern dienstspezifische Konfigurationen in /etc/pam.d. Beispielsweise befindet sich die Konfigurationsdatei für den Anmeldedienst unter /etc/pam.d/login.

Ein Beispiel für eine PAM-Konfiguration für den Anmeldedienst könnte so aussehen:

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

PAM Management Realms

Diese Bereiche oder Verwaltungsgruppen umfassen auth, account, password und session, die jeweils für verschiedene Aspekte des Authentifizierungs- und Sitzungsmanagementprozesses verantwortlich sind:

  • Auth: Validiert die Benutzeridentität, oft durch Aufforderung zur Eingabe eines Passworts.

  • Account: Behandelt die Kontoverifizierung und prüft Bedingungen wie Gruppenmitgliedschaft oder zeitliche Einschränkungen.

  • Password: Verwaltet Passwortaktualisierungen, einschließlich Komplexitätsprüfungen oder Verhinderung von Wörterbuchangriffen.

  • Session: Verwaltet Aktionen zu Beginn oder am Ende einer Dienstsitzung, wie das Einbinden von Verzeichnissen oder das Setzen von Ressourcenlimits.

PAM Module Controls

Kontrollen bestimmen die Reaktion des Moduls auf Erfolg oder Misserfolg und beeinflussen den gesamten Authentifizierungsprozess. Dazu gehören:

  • Required: Das Scheitern eines erforderlichen Moduls führt letztendlich zu einem Misserfolg, jedoch nur nachdem alle nachfolgenden Module überprüft wurden.

  • Requisite: Sofortige Beendigung des Prozesses bei Misserfolg.

  • Sufficient: Erfolg umgeht die restlichen Überprüfungen desselben Bereichs, es sei denn, ein nachfolgendes Modul schlägt fehl.

  • Optional: Führt nur zu einem Misserfolg, wenn es das einzige Modul im Stapel ist.

Beispiel-Szenario

In einer Konfiguration mit mehreren Auth-Modulen folgt der Prozess einer strengen Reihenfolge. Wenn das Modul pam_securetty das Anmelde-Terminal als unbefugt erkennt, werden Root-Anmeldungen blockiert, dennoch werden alle Module aufgrund des "required"-Status weiterhin verarbeitet. Das pam_env setzt Umgebungsvariablen, die möglicherweise die Benutzererfahrung unterstützen. Die Module pam_ldap und pam_unix arbeiten zusammen, um den Benutzer zu authentifizieren, wobei pam_unix versucht, ein zuvor angegebenes Passwort zu verwenden, was die Effizienz und Flexibilität der Authentifizierungsmethoden erhöht.

References

Support HackTricks

Last updated