GNU/Linux >> Znalost Linux >  >> Linux

Úvod do Pluggable Authentication Modules (PAM) v Linuxu

Pluggable Authentication Modules (PAM) existují od roku 1997. Učili mě, že PAM pochází ze Solaris od Sunu a zdá se, že tam došlo k prvnímu podnikovému použití a popularizaci. Nicméně podle článku z roku 1997, který jsem našel, bylo první úplnou implementací nasazení Linux-PAM. Článek je stále dostupný v Linux Journal. Základní premisa a implementace se od té doby nezměnily. Jsou zde nová klíčová slova a mnoho nových modulů, ale celkově je proces stejný jako před 20 lety.

Jako A v PAM znamená, že PAM je o autentizaci. Ve většině případů, když se přihlásíte do systému přes konzolu nebo přes síť pomocí SSH nebo Cockpit, je zapojen PAM. Nezáleží na tom, zda jsou uživatelské účty drženy lokálně nebo na centralizovaném místě. Jakkoli se používá, není běžné přímo manipulovat s konfiguračními soubory PAM. Jiné nástroje to udělají za vás. Mnoho změn se provádí při instalaci, například při instalaci sssd RPM nebo pomocí ipa-client-install užitečnost. Nejběžnější dodatečné konfigurace lze zpracovat pomocí authconfig (RHEL7 a starší) nebo authselect (RHEL8), nebo dokonce prostřednictvím webového rozhraní Cockpit. Většina správců se o konfiguračních souborech PAM nedozví, dokud se nezapojí do témat pokročilého ověřování a zabezpečení.

Co získáme pomocí PAM?

PAM odděluje standardní a specializované úkoly autentizace od aplikací. Programy jako login , gdm , sshd , ftpd a mnoho dalších všichni chtějí vědět, že uživatel je tím, za koho se vydávají, ale existuje mnoho způsobů, jak to udělat. Uživatel může poskytnout přihlašovací jméno a heslo, které lze uložit lokálně nebo vzdáleně pomocí LDAP nebo Kerberos. Uživatel může také poskytnout otisk prstu nebo certifikát jako pověření. Bylo by bolestivé žádat každého vývojáře aplikace, aby přepsal autentizační kontroly pro každou novou metodu. Volání do knihoven PAM ponechává kontroly na autentizačních expertech. PAM je zásuvný v tom, že můžeme mít různé aplikace spouštějící různé testy a modulární v tom, že můžeme přidávat nové metody s novými knihovnami.

Podívejme se na kroky na vysoké úrovni provedené, když se lokálně definovaný uživatel přihlásí do textové konzole:

  • Přihlašovací aplikace vyzve k zadání uživatelského jména a hesla a poté vytvoří libpam autentizační volání s dotazem:"Je tento uživatel tím, za koho se vydávají?" pam_unix modul je zodpovědný za kontrolu autentizace místního účtu. Ostatní moduly mohou být také zkontrolovány a výsledek je nakonec předán zpět procesu přihlášení.
  • Proces přihlášení se dále zeptá:„Má tento uživatel povoleno se připojit?“ a poté zavolá účet libpam . pam_unix modul kontroluje věci, jako je, zda vypršela platnost hesla. Jiné moduly mohou kontrolovat hostitelské nebo časové seznamy řízení přístupu. Celková odpověď je předána zpět procesu.
  • Pokud platnost hesla vypršela, aplikace odpoví. Některým aplikacím se prostě nepodaří přihlásit uživatele. Proces přihlášení vyzve uživatele k zadání nového hesla.
  • Aby bylo heslo ověřeno a zapsáno na správné místo, proces přihlášení zavolá heslo na libpam . pam_unix modul zapisuje do místního stínu soubor. K ověření síly hesla mohou být volány i jiné moduly.
  • Pokud proces přihlášení v tomto okamžiku pokračuje, je připraven k vytvoření relace. Volání relace na libpam výsledkem je pam_unix modul zapisující přihlašovací časové razítko do wtmp soubor. Jiné moduly umožňují ověřování X11 nebo uživatelské kontexty SELinux.
  • Při odhlášení, když je relace uzavřena, lze provést další volání relace na libpam . To je, když pam_unix modul zapíše časové razítko odhlášení do wtmp soubor.

PAM má mnoho komponent

Pokud provedete změnu ověřování pomocí programu, jako je authconfig nebo authselect a chcete vidět, co se změnilo, zde jsou některá místa, kam se podívat:

/usr/lib64/security
Kolekce knihoven PAM, které provádějí různé kontroly. Většina těchto modulů má manuálové stránky pro vysvětlení případu použití a dostupných možností.

/etc/pam.d
Kolekce konfiguračních souborů pro aplikace, které volají libpam . Tyto soubory definují, které moduly se kontrolují, s jakými možnostmi, v jakém pořadí a jak naložit s výsledkem. Tyto soubory mohou být přidány do systému při instalaci aplikace a jsou často upravovány jinými nástroji.

Protože všechny aplikace provádějí několik kontrol, mohou tyto soubory obsahovat také příkazy include pro volání jiných konfiguračních souborů v tomto adresáři. Většina sdílených modulů se nachází v system-auth soubor pro místní ověření a password-auth soubor pro aplikace naslouchající vzdáleným připojením.

/etc/security
Sbírka dalších konfiguračních souborů pro konkrétní moduly. Některé moduly, například pam_access a pam_time , povolit další podrobnosti pro kontroly. Když konfigurační soubor aplikace volá tyto moduly, jsou kontroly dokončeny pomocí dodatečných informací z příslušných doplňkových konfiguračních souborů. Další moduly, jako je pam_pwquality , usnadněte ostatním nástrojům úpravu konfigurace umístěním všech možností do samostatného souboru namísto na řádek modulu v konfiguračním souboru aplikace.

/var/log/secure
Většina chyb zabezpečení a ověřování je hlášena do tohoto souboru protokolu. K tomuto souboru jsou nakonfigurována oprávnění, aby omezila přístup.

man pam
Tato manuálová stránka popisuje celkový proces, včetně typů volání a seznamu zahrnutých souborů.

man pam.conf
Tato manuálová stránka popisuje celkový formát a definuje klíčová slova a pole pro pam.d konfigurační soubory.

man -k pam_
Toto vyhledávání manuálových stránek obsahuje seznam stránek dostupných pro nainstalované moduly.

Sbalit

PAM umožňuje mnohem robustnější autentizační prostředí, než jaké mohou poskytovat služby pro jednotlivé aplikace. Je v Linuxu mnoho a mnoho let a je zapojen do téměř všech procesů identifikace uživatelů.

V příštím článku projdu formát souboru /etc/pam.d konfigurační soubory.

[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]


Linux
  1. Co je uživatel Linuxu?

  2. Jak omezit su přístup pouze uživateli pomocí PAM v Linuxu

  3. Linux OS Service „winbind“

  1. Úvod do Nmap na Kali Linuxu

  2. Úvod do monitorování uživatelských účtů v Linuxu

  3. Linux su příkaz

  1. Úvod do bpftrace pro Linux

  2. Úvod do souborového systému Linux

  3. Změňte uživatelské jméno v systému Linux