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) 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.
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:
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.
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.
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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)