Jak to działa i konfiguruje PAM w Linuksie

Bezpieczeństwo podczas zarządzania użytkownikami w środowiskach Linux jest niezbędne i zawsze musimy szukać najlepszych dostępnych opcji w tym celu zarówno wewnętrznie, jak i zewnętrznie.Jedną z najbezpieczniejszych metod zwiększania bezpieczeństwa w systemach Linux jest administrowanie w znacznie wydajniejszy sposób. sposób, w jaki użytkownicy są uwierzytelniani w systemie, umożliwia to dostęp do systemu tylko tym użytkownikom, którzy mają prawidłowe poświadczenia.

W tym przypadku mamy do dyspozycji funkcjonalność o nazwie Linux-PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux), która została opracowana jako zestaw bibliotek, za pomocą których administrator systemu będzie mógł wybrać sposób, w jaki aplikacje uwierzytelniaj użytkowników w sieci lokalnej.
Kompilując aplikację zgodną z PAM, jesteśmy w stanie przełączać się pomiędzy stosowanymi mechanizmami uwierzytelniania.

Aby nieco lepiej zrozumieć tę koncepcję, możemy przeanalizować sposób, w jaki użytkownicy są obecnie uwierzytelniani, przede wszystkim tożsamość użytkownika jest weryfikowana podczas wpisywania hasła przypisanego do użytkownika, hasła te są przechowywane w pliku /etc/passwd, wtedy przywilej jest definiowany w postaci osobistego identyfikatora użytkownika zwanego UID, a członkostwo w dostępnych grupach, usługach i aplikacjach jest dostępne na podstawie osobistej i grupowej tożsamości każdego użytkownika.

Biblioteka PAM jest konfigurowana lokalnie w pliku systemowym /etc/pam.conf lub w serii plików znajdujących się w /etc/pam.d/ w celu uwierzytelnienia żądania użytkownika poprzez moduły Uwierzytelniania dostępne tylko lokalnie.

Moduły są dostępne w katalogu /lib/security lub /lib64/security. Składnia pliku konfiguracyjnego /etc/pam.conf składa się z listy reguł, a każda reguła jest umieszczona w pojedynczej linii, ale może być rozszerzona linią kończącą się `\'. Komentarze są poprzedzone znakiem „#” i sięgają do następnego końca wybranej linii.

Format każdej reguły to zbiór tabulatorów oddzielonych spacjami, w pierwszych trzech nie jest rozróżniana wielkość liter w następujący sposób:

 typ usługi kontrola moduł-ścieżka moduł-argumenty
Użyte parametry to:

UsługaTo jest prawdziwa nazwa aplikacji.
RodzajJest to typ modułu/kontekstu/interfejsu.
KontrolaOdnosi się do zachowania interfejsu API PAM w przypadku, gdy moduł nie może wykonać zadania uwierzytelniania
Ścieżka modułuJest to bezwzględna nazwa pliku lub względna ścieżka PAM.
argumenty-modułówWskazuje rozdzieloną spacjami listę tokenów w celu kontrolowania zachowania modułu.

Składnia każdego pliku w /etc/pam.d/ jest identyczna i składa się z linii o następującej strukturze:

 typ flaga-kontrola moduł moduł-argumenty
Na przykład definicja reguły (bez argumentów modułu) dostępna w pliku /etc/pam.d/sshd, która nie zezwala na logowanie inne niż root, gdy dostępny jest /etc/nologin to:
 wymagane konto pam_nologin.so

1. Jak zarządzać kontrolami i grupami PAM w systemie Linux?


Zadania uwierzytelniania PAM są skatalogowane w czterech oddzielnych grupach administracyjnych, z których każda zarządza różnymi aspektami żądania użytkownika dotyczącego ograniczonej usługi.

Moduł jest powiązany z jednym z tych typów grup administracyjnych w następujący sposób:

kontoTa wartość oferuje usługi weryfikacji konta z takimi aspektami, jak wygaśnięcie hasła użytkownika lub przyznanie użytkownikowi dostępu do żądanej usługi.
uwierzytelnianieDzięki tej wartości użytkownik jest uwierzytelniany i można skonfigurować poświadczenia użytkownika.
hasłoPozwalają użytkownikom aktualizować hasła i są zintegrowane z modułami uwierzytelniającymi PAM
sesjaOdpowiada za zarządzanie akcjami przeprowadzanymi na początku i na końcu sesji.

Pliki obiektów PAM znajdują się w następującym katalogu /lib/security/lub /lib64/security w zależności od użytej architektury.

Flagi kontrolne obsługiwane w PAM to:

wymaganyDzięki temu wskaźnikowi awaria natychmiast przywraca kontrolę do aplikacji, wskazując na charakter awarii pierwszego modułu.
wymaganyWskazuje się, że wszystkie moduły są niezbędne do poprawnego działania libpam i zwracania powodzenia aplikacji
wystarczającyModuł ten prowadzi do natychmiastowego i poprawnego zwrotu aplikacji, w tym przypadku awaria tego modułu jest ignorowana.
opcjonalnySukces lub porażka tego modułu na ogół nie jest rejestrowana w tym wskaźniku

Istnieją inne wartości, takie jak:

zawieraćZawiera wszystkie wiersze typu opartego na określonym pliku konfiguracyjnym jako argument dla tej kontrolki.
podrzędnyDołącza wszystkie wiersze danego typu z określonego pliku konfiguracyjnego jako argument do tej konkretnej kontrolki.

2. Jak sprawdzić, czy program jest zgodny z PAM w systemie Linux?


Aby zaimplementować PAM w aplikacji, musi być ona napisana i skompilowana specjalnie do korzystania z PAM, aby sprawdzić, czy ta aplikacja jest kompatybilna, czy nie, na przykład SSH, wykonamy następujące czynności:
 sudo ldd / usr / sbin / sshd | grep libpam.so

POWIĘKSZAĆ

3. Jak ograniczyć dostęp roota przez SSH za pomocą PAM w systemie Linux?


PAM może być użyty do wyłączenia dostępu użytkownika root do systemu przez SSH i programy do logowania, co pomaga zwiększyć opcje bezpieczeństwa systemu.

Jeśli chcemy to zrobić, skorzystamy z modułu /lib/security/pam_listfile.so, który daje nam możliwość ograniczenia uprawnień konkretnych kont.

Krok 1
Aby wykonać tę akcję, uzyskamy dostęp do pliku /etc/pam.d/ w następujący sposób:

 sudo nano /etc/pam.d/sshd
LUB
 sudo nano /etc/pam.d/login
Krok 2
Zobaczymy tam:

POWIĘKSZAĆ

Krok 3
W tym przypadku na końcu dodamy następujące wiersze:

 auth wymagane pam_listfile.so \ onerr = sukces item = user sense = odmowa pliku = / etc / ssh / deniedusers

POWIĘKSZAĆ

W tym przypadku dodano następujące parametry:

autoryzowaćJest to typ modułu, którego należy użyć
wymaganyJest to flaga kontrolna, z którą, jeśli moduł jest używany, musi zostać przekazany, w przeciwnym razie ogólny wynik nie powiedzie się, niezależnie od stanu innych modułów.
pam_listfile.soJest to moduł, za pomocą którego można odmówić lub zezwolić na usługi oparte na dowolnym pliku.
onerr = sukcesJest to argument modułu.
pozycja = użytkownikJest to argument modułu, w którym wskazuje się, co znajduje się w pliku i co należy zweryfikować.
sens = zaprzeczyćOdwołuje się do argumentu modułu, w którym określona jest akcja do wykonania, jeśli znajduje się w pliku, jeśli nie, żądana jest odwrotna akcja.
file = / etc / ssh / deniedusersJest to argument modułu, w którym określony jest plik zawierający jeden element w wierszu.

Zapisujemy zmiany za pomocą klawiszy Ctrl + O i wychodzimy z edytora za pomocą Ctrl + X.

Następnie musimy utworzyć plik /etc/ssh/deniedusers i dodać do niego użytkownika root, a później przypisać odpowiednie uprawnienia:

 sudo chmod 600 / etc / ssh / deniedusers

4. Jak zaawansowana konfiguracja PAM w systemie Linux


Wartość specjalna jest wartością domyślną w PAM, więc wszystkie wartości nie są wyraźnie wymienione, dlatego wartość N odpowiada kodowi powrotu funkcji wywoływanej w module, dla którego zdefiniowana jest linia.
Akcja ma kilka argumentów, takich jak:

ignorowaćW przypadku użycia tej akcji ze stosem modułów status zwrotu modułu nie generuje kodu powrotu z aplikacji.
złyWskazuje, że kod powrotu powinien być traktowany jako wskazujący na awarie używanego modułu.
umieraćPełni tę samą funkcję co zły, ale jest w stanie zakończyć stos modułów i PAM natychmiast wraca do aplikacji.
w porządkuWartość ta informuje PAM, że administrator systemu użyje tego kodu powrotu bezpośrednio do kodu powrotu pełnego stosu modułów.
zrobioneSpełnia tę samą rolę co Ok, ale może zakończyć stos modułów
n(liczba całkowita bez znaku) - odpowiednik ok, ale może przeskoczyć kolejne N modułów na stosie.
ResetowanieUżycie tego parametru powoduje wyczyszczenie całej pamięci stanu stosu modułów i ponowne uruchomienie z następnym modułem ustawionym na stosie.

Wymagane każde ze słów podstawowych PAM; wymagany; wystarczające i opcjonalne, mają równoważne wyrażenie pod względem składni […], dzięki której będzie można pisać bardziej złożone reguły, takie jak:

wymagany[sukces = ok new_authtok_reqd = ok zignoruj ​​= ignoruj ​​domyślne = źle]
wymagany[sukces = ok new_authtok_reqd = ok zignoruj ​​= zignoruj ​​domyślne = zgiń]
wystarczający[sukces = zrobione new_authtok_reqd = zrobione domyślnie = zignoruj]
opcjonalny[sukces = ok new_authtok_reqd = ok default = zignoruj]

Krok 1
Na przykład w CentOS 7 możemy zobaczyć reguły pliku PAM wykonując:

 sudo nano /etc/pam.d/postlogin

POWIĘKSZAĆ

Krok 2
Jeśli mamy dostęp do pliku:

 sudo nano /etc/pam.d/smartcard-auth

POWIĘKSZAĆ

Aby uzyskać dostęp do większej pomocy PAM, możemy wykonać:

 mężczyzna pam.d
Dzięki PAM będzie można tworzyć lub edytować reguły w celu lepszego administrowania procesami uwierzytelniania w Linuksie.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave