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) działa jako mechanizm zabezpieczeń, który weryfikuje tożsamość użytkowników próbujących uzyskać dostęp do usług komputerowych, kontrolując ich dostęp na podstawie różnych kryteriów. Jest to podobne do cyfrowego strażnika, który zapewnia, że tylko autoryzowani użytkownicy mogą korzystać z określonych usług, jednocześnie potencjalnie ograniczając ich użycie, aby zapobiec przeciążeniu systemu.
Systemy Solaris i UNIX zazwyczaj wykorzystują centralny plik konfiguracyjny znajdujący się w /etc/pam.conf
.
Systemy Linux preferują podejście oparte na katalogach, przechowując konfiguracje specyficzne dla usług w /etc/pam.d
. Na przykład, plik konfiguracyjny dla usługi logowania znajduje się w /etc/pam.d/login
.
Przykład konfiguracji PAM dla usługi logowania może wyglądać następująco:
Te realm'y, lub grupy zarządzania, obejmują auth, account, password i session, z których każda odpowiada za różne aspekty procesu uwierzytelniania i zarządzania sesjami:
Auth: Weryfikuje tożsamość użytkownika, często prosząc o hasło.
Account: Obsługuje weryfikację konta, sprawdzając warunki takie jak przynależność do grupy lub ograniczenia czasowe.
Password: Zarządza aktualizacjami haseł, w tym kontrolą złożoności lub zapobieganiem atakom słownikowym.
Session: Zarządza działaniami podczas rozpoczęcia lub zakończenia sesji usługi, takimi jak montowanie katalogów lub ustawianie limitów zasobów.
Kontrole określają reakcję modułu na sukces lub porażkę, wpływając na ogólny proces uwierzytelniania. Należą do nich:
Required: Porażka wymaganego modułu skutkuje ostateczną porażką, ale tylko po sprawdzeniu wszystkich kolejnych modułów.
Requisite: Natychmiastowe zakończenie procesu w przypadku porażki.
Sufficient: Sukces omija pozostałe kontrole tego samego realm'u, chyba że kolejny moduł zawiedzie.
Optional: Powoduje porażkę tylko wtedy, gdy jest jedynym modułem w stosie.
W konfiguracji z wieloma modułami auth, proces przebiega w ścisłej kolejności. Jeśli moduł pam_securetty
znajdzie terminal logowania jako nieautoryzowany, logowania roota są zablokowane, jednak wszystkie moduły są nadal przetwarzane z powodu jego statusu "required". Moduł pam_env
ustawia zmienne środowiskowe, co może wspierać doświadczenia użytkownika. Moduły pam_ldap
i pam_unix
współpracują, aby uwierzytelnić użytkownika, przy czym pam_unix
próbuje użyć wcześniej podanego hasła, co zwiększa efektywność i elastyczność metod uwierzytelniania.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)