Zabezpečení při správě uživatelů v prostředích Linuxu je zásadní a musíme vždy hledat nejlepší možnosti, které jsou k tomuto účelu dostupné interně nebo externě. Jednou z nejbezpečnějších metod pro zvýšení zabezpečení v systémech Linux je mnohem efektivnější správa. způsob autentizace uživatelů v systému, to umožňuje přístup k systému pouze těm uživatelům, kteří mají správná pověření.
Pro tento případ máme funkci nazvanou Linux -PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux), která byla vyvinuta jako sada knihoven, pomocí kterých bude možné správci systému vybrat způsob, jakým aplikace ověřovat uživatele v místní síti.
Při kompilaci aplikace kompatibilní s PAM jsme schopni přepínat mezi použitými ověřovacími mechanismy.
Abychom tomuto konceptu porozuměli trochu lépe, můžeme analyzovat způsob, jakým jsou uživatelé aktuálně autentizováni, v prvé řadě se ověřuje identita uživatele při zadání hesla přiřazeného uživateli, tato hesla jsou uložena v souboru / etc / passwd, pak je oprávnění definováno ve formě osobního identifikátoru uživatele nazývaného UID a členství v dostupných skupinách, služby a aplikace jsou k dispozici na základě osobní a skupinové identity každého uživatele.
Knihovna PAM je konfigurována lokálně v systémovém souboru /etc/pam.conf nebo v sérii souborů umístěných v /etc/pam.d/ za účelem autentizace požadavku uživatele prostřednictvím modulů autentizace dostupných pouze lokálně.
Moduly jsou k dispozici v adresáři / lib / security nebo / lib64 / security. Syntaxe konfiguračního souboru /etc/pam.conf se skládá ze seznamu pravidel a každé pravidlo je umístěno na jednom řádku, ale lze jej rozšířit o řádek končící \ \. Komentářům předchází znak „#“ a prodlužují se na další konec vybraného řádku.
Formát každého pravidla je kolekce karet oddělených mezerami, první tři nerozlišují velká a malá písmena takto:
argument typu ovládací modul-cesta modul-argumentyPoužité parametry jsou:
ServisJe to skutečný název aplikace.
TypJe to typ modulu / kontextu / rozhraní.
ŘízeníOdkazuje na chování PAM API v případě, že modul nemůže provést ověřovací úlohu
Cesta moduluJe to absolutní název souboru nebo relativní cesta PAM.
argumenty moduluOznačuje seznam tokenů oddělených mezerami za účelem řízení chování modulu.
Syntaxe každého souboru v souboru /etc/pam.d/ je identická a skládá se z řádků s následující strukturou:
zadejte argumenty modulu modulu control-flagNapříklad definice pravidla (bez argumentů modulu) dostupná v souboru /etc/pam.d/sshd, která neumožňuje přihlášení bez oprávnění root, když je k dispozici /etc /nologin, je:
požadovaný účet pam_nologin.so
1. Jak spravovat ovládací prvky a skupiny PAM v systému Linux
Úkoly ověřování PAM jsou katalogizovány do čtyř samostatných skupin pro správu, přičemž každá z těchto skupin spravuje různé aspekty požadavku uživatele na omezenou službu.
Modul je k jednomu z těchto typů skupin správy přidružen následujícím způsobem:
účetTato hodnota nabízí služby pro ověření účtu s aspekty, jako je vypršení hesla uživatele nebo pokud má uživatel povolený přístup k požadované službě.
ověřováníS touto hodnotou je uživatel ověřen a lze konfigurovat pověření uživatele.
HesloUmožňují uživatelům aktualizovat hesla a jsou integrovány s ověřovacími moduly PAM
zasedáníTo má na starosti správu akcí prováděných na začátku a na konci relace.
Soubory objektů PAM jsou umístěny v následujícím adresáři / lib / security / nebo / lib64 / security v závislosti na použité architektuře.
Ovládací příznaky podporované v PAM jsou:
nezbytnéS tímto indikátorem selhání okamžitě vrátí aplikaci kontrolu, což indikuje povahu selhání prvního modulu.
PožadovanéJe uvedeno, že všechny moduly jsou nezbytné pro správné provedení libpam a vrácení úspěchu aplikaci
dostatečnýTento modul vede k okamžitému a správnému vrácení aplikace, v tomto případě je selhání tohoto modulu ignorováno.
volitelnýÚspěch nebo neúspěch tohoto modulu se do tohoto indikátoru obecně nezaznamenává
Existují další hodnoty, jako například:
zahrnoutJako argument pro tento ovládací prvek obsahuje všechny řádky typu na základě konkrétního konfiguračního souboru.
dílčí balíčekZahrnuje všechny řádky daného typu ze zadaného konfiguračního souboru jako argument pro tento konkrétní ovládací prvek.
2. Jak ověřit, zda je program kompatibilní s PAM v Linuxu
Chcete -li implementovat PAM do aplikace, musí být napsána a zkompilována speciálně pro použití PAM, abychom zkontrolovali, zda je tato aplikace kompatibilní nebo ne, například SSH, provedeme následující:
sudo ldd / usr / sbin / sshd | grep libpam.so
ZVĚTŠIT
3. Jak omezit přístup uživatele root pomocí SSH pomocí PAM v systému Linux
PAM lze použít k deaktivaci přístupu uživatele root k systému pomocí SSH a přihlašovacích programů, což pomáhá zvýšit možnosti zabezpečení systému.
Pokud to chceme udělat, použijeme modul /lib/security/pam_listfile.so, který nám dává možnost omezit oprávnění konkrétních účtů.
Krok 1
K provedení této akce přejdeme k souboru /etc/pam.d/ následujícím způsobem:
sudo nano /etc/pam.d/sshdNEBO
sudo nano /etc/pam.d/loginKrok 2
Tam uvidíme následující:
ZVĚTŠIT
Krok 3
V tomto případě přidáme na konec následující řádky:
ověřovací požadovaný pam_listfile.so \ onerr = úspěšná položka = uživatelský smysl = odmítnout soubor = / etc / ssh / deniedusers
ZVĚTŠIT
V tomto případě byly přidány následující parametry:
autorizJe to typ modulu, který se má použít
PožadovanéJedná se o kontrolní příznak, pomocí kterého je v případě použití modulu nutné jej předat, jinak celkový výsledek selže bez ohledu na stav ostatních modulů.
pam_listfile.soJedná se o modul, u kterého je povoleno odmítnout nebo povolit služby založené na libovolném souboru.
onerr = uspětJe to argument modulu.
item = uživatelJe to argument modulu, ve kterém je uvedeno, co je uvedeno v souboru a které je třeba ověřit.
smysl = popřítOdkazuje na argument modulu, ve kterém je specifikována akce, která má být provedena, pokud je nalezena v souboru, pokud ne, je požadována opačná akce.
soubor = / etc / ssh / deniedusersJe to argument modulu, ve kterém je zadán soubor obsahující jeden prvek na řádek.
Změny uložíme pomocí kláves Ctrl + O a editor ukončíme pomocí Ctrl + X.
Poté musíme vytvořit soubor / etc / ssh / deniedusers a přidat do něj uživatele root a později přiřadit příslušná oprávnění:
sudo chmod 600 / etc / ssh / deniedusers
4. Jak pokročileji konfigurovat PAM v Linuxu
Zvláštní hodnota je výchozí hodnotou v PAM, takže všechny hodnoty nejsou výslovně uvedeny, proto hodnotaN odpovídá návratovému kódu funkce vyvolané v modulu, pro který je řádek definován.
Akce má několik argumentů, jako například:
ignorovatV případě použití této akce s hromadou modulů stav návratu modulu nevygeneruje návratový kód z aplikace.
špatnýOznačuje, že návratový kód by měl být považován za indikativní pro chyby použitého modulu.
zemřítPlní stejnou funkci jako špatný, ale je schopen ukončit hromadu modulů a PAM se okamžitě vrací do aplikace.
dobřeTato hodnota říká PAM, že správce systému použije tento návratový kód přímo na návratový kód celého zásobníku modulů.
HotovoPlní stejnou roli jako Ok, ale může ukončit zásobník modulů
N.(celé číslo bez znaménka) - odpovídá ok, ale může přeskočit dalších N modulů v zásobníku.
ResetovatPoužití tohoto parametru vymaže veškerou paměť stavu modulu a restartuje se s dalším modulem.
Každé ze základních slov PAM, povinné; nezbytný; dostatečné a volitelné, mají ekvivalentní výraz ve smyslu […] syntaxe, pomocí kterého bude možné psát složitější pravidla, jako například:
Požadované[success = ok new_authtok_reqd = ok ignore = ignore default = bad]
nezbytné[success = ok new_authtok_reqd = ok ignore = ignore default = die]
dostatečný[success = done new_authtok_reqd = done default = ignore]
volitelný[success = ok new_authtok_reqd = ok default = ignorovat]
Krok 1
Například v CentOS 7 vidíme pravidla souboru PAM spuštěním:
sudo nano /etc/pam.d/postlogin
ZVĚTŠIT
Krok 2
Pokud přistupujeme k souboru:
sudo nano /etc/pam.d/smartcard-auth
ZVĚTŠIT
Pro přístup k další pomoci PAM můžeme spustit:
muž pam.dS PAM bude možné vytvářet nebo upravovat pravidla pro lepší správu autentizačních procesů v Linuxu.