Hitelesítés PAM használatávalHitelesítés PAM használatával

Tartalomjegyzék

24.1. A PAM konfigurációs fájlok szerkezete
24.2. Az sshd PAM-konfigurációja
24.3. A PAM-modulok beállítása
24.4. További információ

Kivonat

A Linux a PAM (Pluggable Authentication Modules, cserélhető hitelesítési modulok) rendszert használja a hitelesítési folyamatban a felhasználó és az alkalmazás közötti rétegként. A PAM-modulok rendszerszinten állnak rendelkezésre, így akármelyik alkalmazás kérheti őket. Ez a fejezet leírja a moduláris hitelesítési mechanizmus működését és beállításának módját.

A rendszergazdák és a programozók gyakran kívánják korlátozni a hozzáférést a rendszer egyes részeihez, illetve korlátozni az alkalmazások bizonyos funkcióinak használatát. PAM nélkül az alkalmazásokat minden egyes új hitelesítési mechanizmushoz (például LDAP, Samba vagy Kerberos) hozzá kell igazítani. Ez a folyamat azonban meglehetősen időigényes és a hibázás esélyét rejti. E hátrányok elkerülésének egyik módja az alkalmazások és a hitelesítési mechanizmusok szétválasztása, és az utóbbi központilag felügyelt modulokba irányítása. Így minden egyes alkalommal, ha egy új hitelesítési séma kerül bevezetésre, elegendő a megfelelő PAM-modult elkészíteni vagy adaptálni.

A PAM mechanizmusát használó programok mindegyikének van egy saját konfigurációs fájlja az /etc/pam.d/programnév könyvtárban. Ezek a fájlok határozzák meg a hitelesítéshez használt PAM-modulokat. Létezik továbbá egy globális konfigurációs fájl a legtöbb PAM-modulhoz az /etc/security, könyvtárban, amely meghatározza a modulok pontos viselkedését (ilyen például a pam_env.conf, a pam_pwcheck.conf, a pam_unix2.conf és a time.conf). A PAM-modulokat használó alkalmazások ténylegesen egy sor PAM-funkciót hívnak meg, amelyek azután feldolgozzák a különféle konfigurációs fájlokban található adatokat és az eredményt visszaadják a hívó alkalmazásnak.

A PAM konfigurációs fájlok szerkezeteA PAM konfigurációs fájlok szerkezete

A PAM konfigurációs fájlok minden egyes sora maximum négy oszlopból állhat:

<Type of module> <Control flag> <Module path> <Options>
  

A PAM-modulok egymásra épülve kerülnek feldolgozásra. A különféle típusú moduloknak különböző feladataik vannak: az egyik modul például ellenőrzi a jelszót, a másik azt a helyet, ahonnan a rendszert elérték, egy harmadik pedig lehet, hogy felhasználóspecifikus beállításokat vizsgál meg. A PAM négyféle modultípust különböztet meg:

auth

Az ilyen típusú modulok feladata a felhasználó azonosságának ellenőrzése. Hagyományosan ez jelszóellenőrzéssel történik, de használhatók például intelligens kártyák, vagy különféle biometriai eszközök (ujjlenyomat- vagy szivárványhártya-ellenőrzés) is.

account

Az ilyen típusú modulok ellenőrzik, hogy a felhasználó rendelkezik-e általános engedéllyel a kért szolgáltatás használatára. Például ilyen ellenőrzésre van szükség ahhoz, hogy senki ne léphessen be egy lejárt felhasználói fiók azonosítójával.

password

Az ilyen típusú modulok feladata, hogy lehetővé tegyék a hitelesítési tokenek cseréjét. A legtöbb esetben ez egy jelszót jelent.

session

Az ilyen típusú modulok felelősek a felhasználói munkamenetek kezeléséért és beállításáért. A hitelesítés előtt és után kerülnek elindításra, hogy feljegyezzék a bejelentkezési kísérleteket a rendszernaplókba, valamint beállítsák a felhasználó egyedi környezetét (postafiókok, saját könyvtár, rendszerkorlátok stb).

A második oszlop az elindított modulok viselkedését befolyásoló vezérlő jelzőket tartalmaz:

required

Az ilyen jelzőjű modulok feldolgozásának sikeresen végbe kell mennie ahhoz, hogy a hitelesítés folytatódjon. Egy required jelzőjű modul sikertelen futása esetén az ilyen jelzőjű összes többi modul feldolgozásra kerül, mielőtt a felhasználó üzenetet kapna a hitelesítési kísérlet sikertelenségéről.

requisite

Hasonlóan a required jelzőjű modulokhoz, az ilyen jelzőjű modulok feldolgozásának sikeresen végbe kell mennie. Egy ilyen jelzőjű modul sikertelen futása esetén azonban a felhasználó azonnal üzenetet kap és a rendszer a további modulokat nem dolgozza fel. Sikeres végrehajtás esetén feldolgozásra kerülnek a további modulok, hasonlóan a required jelzőhöz. A requisite jelző alapszintű szűrőként használható, amely a helyes hitelesítés alapvető fontosságú feltételeinek meglétét ellenőrzi.

sufficient

Az ilyen jelzőjű modul sikeres feldolgozása esetén a hívó alkalmazás azonnal üzenetet kap a sikerről és a többi modul már nem is kerül feldolgozásra, feltéve, hogy nem volt korábbi required jelzőjű sikertelen modul. A sufficient jelzőjű modul sikertelen feldolgozása nem jár közvetlen következményekkel, hiszen minden további modul a megfelelő sorrendben végrehajtásra kerül.

optional

Az ilyen jelzőjű modulok sikertelensége vagy sikere nem jár semmilyen direkt következménnyel. Ez olyan modulok esetén hasznos, amelyeknek csak egy üzenetet kell megjeleníteniük (például jelezni a felhasználónak, hogy levele érkezett), egyéb teendők nélkül.

include

Ha ez a jelző meg van adva, akkor a paraméterként megadott fájl beszúrásra kerül ezen a helyen.

A modul elérési útját nem kell külön megadni, amennyiben a modul az alapértelmezett könyvtárban található (/lib/security, a SUSE Linux Enterprise®, által támogatott 64 bites platformokon a könyvtár neve /lib64/security). A negyedik oszlop az adott modul esetleges paramétereit tartalmazza. Ilyen lehet például a debug (a hibakeresés engedélyezése) vagy a nullok (üres jelszavak használatának engedélyezése).