Kapitola 16. Autentizace pomocí PAM

Obsah

16.1. Struktura PAM konfiguračního souboru
16.2. Konfigurace PAM pro sshd
16.3. Konfigurace PAM modulů
16.4. Další informace

Abstrakt

Linux používá PAM (Pluggable Authentication Modules – připojovatelné autentizační moduly) při procesu autentizace jako zprostředkující vrstvu mezi uživatelem a aplikací. PAM moduly jsou dostupné v celém systému, takže mohou být použity libovolnou aplikací. Tato kapitola se věnuje popisu funkce modulárního autentizačního mechanismu a jeho konfiguraci.

Systémoví administrátoři a programátoři často potřebují omezit přístup k určitým částem systému nebo použití určitých funkcí aplikace. Bez využití PAM by aplikace musely být upraveny, kdykoliv je zaveden nový autentizační mechanismus (jako LDAP nebo SAMBA). To je však časově náročný a k chybám náchylný proces. Problémům se lze vyhnout oddělením aplikací od autentizačního procesu a převedením autentizační funkce na centrálně spravované moduly. Kdykoliv je pak potřeba zavést nový autentizační mechanismus, stačí upravit nebo napsat příslušné PAM moduly.

Každý program závislý na mechanismu PAM má svůj vlastní konfigurační soubor v adresáři /etc/pam.d/<jmenoprogramu>. Tyto soubory určují, jaké PAM moduly mají být použity při autentizaci. Navíc pro většinu PAM modulů existují globální konfigurační soubory uložené v adresáři /etc/security (např. pam_env.conf, pam_pwcheck.conf, pam_unix2.conf, time.conf). Ty určují přesné chování modulů. Každá aplikace používající PAM modul ve skutečnosti volá sadu PAM funkcí, které následně zpracují údaje v různých konfiguračních souborech a vrátí výsledek volající aplikaci.


16.1. Struktura PAM konfiguračního souboru

Každý řádek PAM konfiguračního souboru obsahuje nejvýše čtyři sloupce:

<Typ modulu> <Kontrolní příznak> <Jméno modulu> <Parametry>

Moduly PAM jsou zpracovávány postupně za sebou. Různé moduly mají různé účely. Jeden modul například kontroluje správnost hesla, jiný ověřuje umístění, z kterého je k systému přistupováno, a další načítá uživatelsky specifická nastavení. PAM obsahuje čtyři různé typy modulů:

auth

Účelem modulu tohoto typu je autentizovat uživatele. Obvykle se tak činí ověřením hesla, ale lze toho dosáhnout i s pomocí čipových karet nebo biometriky (otisků prstů či rozpoznání oční duhovky).

account

Moduly tohoto typu ověřují, zda má uživatel obecné oprávnění využít příslušnou službu. Například lze s jejich pomocí zajistit, aby se k systému nemohl přihlásit nikdo pod uživatelským jménem, jehož účet vypršel.

password

Smyslem tohoto typu modulu je umožnit změnu autentizačního tokenu. Tímto tokenem je ve většině případů heslo.

session

Moduly tohoto typu jsou zodpovědné za správu a konfiguraci uživatelských relací. Jsou spuštěny před a po autentizaci, aby zaznamenaly pokusy o přihlášení do systémových logů a nakonfigurovaly uživatelsky specifické prostředí (poštovní účty, domovský adresář, systémová omezení atd.).

Druhý sloupec obsahuje kontrolní příznaky, které ovlivňují chování spuštěných modulů:

required

Modul s tímto příznakem musí být úspěšně zpracován dříve, než proběhne autentizace. Selže-li modul s příznakem required, musí být zpracovány všechny ostatní moduly se stejným příznakem dříve, než je uživatel informován o neúspěšnosti pokusu o autentizaci.

requisite

Moduly s tímto příznakem musí být, stejně jako moduly s příznakem required, úspěšně zpracovány. Nicméně v případě selhání modulu s příznakem requisite je uživatel okamžitě informován a nejsou zpracovávány žádné další moduly. Pokud je zpracování úspěšné, jsou zpracovávány i další moduly, stejně jako v případě modulů s příznakem required. Příznak requisite lze použít jako základní filtr pro ověření podmínek nezbytných pro korektní autentizaci.

sufficient

Pokud je úspěšně zpracován modul s tímto příznakem, dostane volající aplikace okamžitou zprávu o úspěšnosti autentizace a žádné další moduly nejsou zpracovávány. Platí to však jen tehdy, pokud již dříve nedošlo k selhání modulu s příznakem required. Selhání modulu s příznakem sufficient nemá žádné přímé důsledky, všechny další moduly jsou zpracovávány v běžném pořadí.

optional

Úspěch ani selhání modulu s tímto příznakem nemá žádné přímé důsledky. Toho se využívá v případě modulů, jejichž jediným účelem je zobrazit zprávu (například oznámení o příchozí poště).

include

Tento příznak slouží ke vložení souboru udaného jako argument.

Pokud se modul nachází v implicitním adresáři /lib/security (/lib64/security na 64-bitových platformách se systémem SUSE Linux), nemusí být cesta explicitně stanovena. Čtvrtý sloupec může obsahovat parametry předávané modulu, jako např. debug (umožňuje ladění programu) nebo nullok (dovoluje použití prázdných hesel).