Kerberos, PAM

Jan "Yenya" Kasprzak, kas@fi.muni.cz


Obsah


Kerberos

Slajdy z P077 - cast o Kerberovi.

PAM

System PAM (pluggable authentication modules) je nastroj pro vyuzivani ruznych autentizacnich mechanismu v UNIXovych programech. Tradicni pristup - vyhodnocovani databaze uzivatelu na zaklade souboru /etc/passwd a hesel na zaklade /etc/shadow je zde nahrazen zpetne kompatibilnim ale znacne variabilnejsim systemem. PAM umoznuje evidovat autentizacni informace napriklad v SQL databazi, umoznuje pro autentizaci pouzivat jinou metodu nez staticke heslo (treba jednorazova hesla, ctecky cipovych karet, biometricke informace, atd.).

Pokud chce program vyuzivat sluzeb PAM, musi zmenit standardni autentizacni metodu (getpw*(), getsp*()) za konverzaci s knihovnou libpam. Tato knihovna dale inicializuje podle sve konfigurace ruzne plug-iny pro konkretni metody autentizace.

Faze prace PAM

Prace s PAM probiha ve ctyrech fazich: Autentizace uzivatele, overeni existence uctu v systemu (autorizace), informace o sezeni (session), a pripadne zmena hesla.

Vyznamy modulu

V kazde z techto fazi lze aplikovat ruzne moduly (plug-iny) s tim, jaky vyznam ma prislusny modul mit. Mozne vyznamy jsou required, requisite (totez, ale chyba je aplikaci sdelena hned), sufficient a optional. Je mozne pro kazdou fazi pouzivat vice nez jeden modul (napriklad nejprve kontrolovat jestli jsem root, pokud ne, zeptat se na heslo a overit proti shadow, a pokud tohle neuspeje, zkusit heslo v Kerberovi.

Priklady

Priklad nastaveni knihovny PAM pro konkretni program (v tomto pripade su - jde o soubor /etc/pam.d/su):
#%PAM-1.0
auth       sufficient   /lib/security/pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient   /lib/security/pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required     /lib/security/pam_wheel.so use_uid
auth       required     /lib/security/pam_stack.so service=system-auth
account    required     /lib/security/pam_stack.so service=system-auth
password   required     /lib/security/pam_stack.so service=system-auth
session    required     /lib/security/pam_stack.so service=system-auth
session    optional     /lib/security/pam_xauth.so
Jednotlive moduly lze retezit pomoci modulu pam_stack. V tom pripade je treba v prislusnem souboru (zde /etc/pam.d/system-auth) nastavit podrobnosti:
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_krb5.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok
auth        required      /lib/security/pam_deny.so
 
account     required      /lib/security/pam_unix.so
 
password    required      /lib/security/pam_cracklib.so retry=3
password    sufficient    /lib/security/pam_unix.so nullok use_authtok shadow
password    required      /lib/security/pam_deny.so
 
session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so

Dokumentace

V distribuci PAM jsou tri hlavni dokumentacni soubory: Dale zde najdeme soubory README k jednotlivym PAM modulum.

Odkazy