Tartalomjegyzék
PAM
- Szerző: Sallai András
- Copyright © 2011, Sallai András
- Szerkesztve: 2011, 2012, 2013
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
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
- Az egész sikertelen, ha modul nem teljesít, de csak az egész folyamat végén
- requisite
- Ugyanaz, kivéve, hogy ha sikertelen modul visszatér az alkalmazásra. Gyakran használják extra biztonsági intézkedésre.
- sufficient
- Ha sikertelen, a következő szabályra lép
- optional
- Ez a modul csak akkor fontos, ha ez az egyetlen.
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
- man pam_unix