< Linux
PAM
Szerző: Sallai András
Copyright © 2011, Sallai András
Szerkesztve: 2011, 2012, 2013
-
-
Bevezetés
A PAM a Pluggable Authentication Modules rövidítése.
1990-ben a Sun Microsystems' SunSoft fejlesztőcsoportja hozza létre.
Egy hozzáférési metódus jelszavak, smartkártyák, biometrikus azonosításhoz,
egy egységes felületet nyújtva a programozók számára.
Beállítás
A szolgáltatások
Eredetileg egyetlen konfigurációs állomány volt, melynek tartalma:
szolgáltatás-típus module-típusa kontroll modul-útvonal argumentumok
A szolgáltatás típusa általában a következő fájlból egy:
/etc/services
Ilyeneket kell keresni mint:login, su, sshd vagy xdm, stb.
A Debian a Lenny óta az alábbi könyvtárat használja:
/etc/pam.d/
A könyvtár a szolgáltatás nevével megegyező néven létrehozunk egy szolgáltatást
leíró állományt, amelynek a szintaxisa a következő:
modul-típusa kontroll modul-útvonal argumentumok
Modul-típusa
Négy különböző típus adható meg:
auth | Azonosítás, engedély. Azonosítás felhasználónév, jelszóval.
Visszatérés sikeres vagy sikertlene.
Garantálva csoport tagság és más privilégiumok |
account | Számla (Account) kezelés. Gyakran előfordul korlátozás.
Például: a nap bizonyos időszakában, vagy csak bizonyos erőforrásokat használva léphet be, stb. |
password | Jelszókezelés. Szükséges a jelszóazonosító frissítése. Általában kérés válasz alapú hitelesítés |
session | Munkamenet-kezelés. Elvégzi a szükséges feladatokat, például naplózás, csatolás, stb. |
Ha egy modul hiányzik, akkor a hiba naplózva lesz, például syslog démon által.
Ha a konfigurációs állomány sorát egy kötőjel vezeti be akkor a naplózás elmarad.
Például a fingerprint azonosítás nem áll rendelkezésre, de ha lesz ilyen
használni akarjuk.
-auth sufficient pam_fingerprintd.so
Kontroll
A kontrollmező megadja, mit történjen, ha az adott PAM modul sikertelenül teljesít.
Kétféle szintaktika ismeretes: az egyik amikor magában leírom a direktívát, és amikor
érték=akció párost használunk.
Egyszerű direktívák
required
requisite
sufficient
optional
Változó értékpár
Általános alak
[érték1=tevékenység1 érték2=tevékenység2 …]
A következő változók a modulok visszatérési kódjai:
abort - Kritikus hiba (a modul sikertelen „fail now”).
acct_expired - A felhasználói hozzáférés lejárt.
auth_err - Azonosítás sikertlen.
authinfo_unavail - Az azonosítás alapjául szolgáló információ elérhetetlen.
authtok_disable_aging - Az azonosító bejegyzés elavult, nincs engedélyezve.
authtok_err - Azonosító bejegyzés manipulációs hiba.
authtok_expired - Az azonosító bejegyzés lejárt.
authtok_lock_busy - Az azonosító bejegyzés foglalt.
authtok_recover_err - Az azonítási információ nem állítható vissza.
bad_item - A pam_*_item() rész rossz.
buf_err - Memória buffer hiba.
conv_again - A párbeszéd funkció esemény vezérelt, és az adatok még nem állnak rendelkezésre.
conv_err - Párbeszéd hiba.
cred_err - Sikertelen a felhasználó megbízás beállítása.
cred_expired - A felhasználó megbízása lejárt.
cred_insufficient - Nem lehet hozzáférni a megbízáshoz, a hitelesítési adatok elégtelensége miatt.
cred_unavail - A felhasználó megbízás nem hozzáférhető; Az alapul szolgáló hitelesítési szolgáltatás nem tudja letölteni.
default - Az összes érték
ignore - Figyelmen kívül hagyja a modult függetlenül attól, hogy a kontroll résznél mi lett beállítva. Például: opcionális, vagy elégséges.
incomplete - Újra próbálkozunk a hitelesítéssel, majd újra ellenőrizzük.
maxtries - Az újrapróbálkozások elérték a maximális lehetőséget. Nincs több lehetőség.
module_unknown - A modul ismeretlen.
new_authtok_reqd - Új azonosítóbejegyzés szükséges. Ez normális, ha megköveteljük a jelszócserét, vagy a jelszó NULL.
no_module_data - Nincs a modulnak megfelelő adat jelen.
open_err - A modult nem tudom betölteni.
perm_denied - Engedély megtagadva.
service_err - Hiba a szolgáltatómodulban.
session_err - Cannot make or remove an entry for the specified session.
success - Sikeres függvényvisszatérés.
symbol_err - A szimbólum nem található.
system_err - Rendszerhiba.
try_again - Előzetes jelszavas ellenőrzés.
user_unknown - A felhasználó ismeretlen az alapazonosító modul számára.
Tevékenységek előjel nélküli egészek, amelyek a következők lehetnek:
ignore − A modul nincs hatással más modulokra.
bad − A modul sikertelen. Ha ez az első hiba a többi modul ezt az értéket felhasználja.
die − Ugyanaz, kivéve, hogy nincs több ellenőrzés, a végeredmény sikertelen.
ok − Az előző sikeres visszatérési kód felülírva.
done − Ugyanaz, kivéve, hogy több ellenőrzés nincs.
reset − Törli a memóriát és a verem következő moduljával folytatjuk.
Néhány példa
required = [ success=ok new_authtok_reqd=ok ignore=ignore default=bad ]
requisite = [ success=ok new_authtok_reqd=ok ignore=ignore default=die ]
sufficient = [ success=done new_authtok_reqd=done default=ignore ]
optional = [ success=ok new_authtok_reqd=ok default=ignore ]
Modul útvonal
Teljes elérési út a modul fájlnevével, kiterjesztésével együtt.
A modulokk a /lib/security/ könyvtárban találhatók a Debian lenny óta.
A modulok fájlnevei így épülnek fel:
pam_<név>.so
A Linux-PAM System Administrator's Guide tartalmazza az alapmodulok leírását.
Irodalom
Kézikönyv
Linkek