PAM-LDAP

Innen: KIFÜ Wiki

Ez a leírás Debian 4.0 (Etch) operációs rendszerhez készült. A példa konfigurációs állományok bitről bitre másolása más rendszerekre nem biztos, hogy jó ötlet, de a koncepció azért kinyerhető. Néhány eltérést igyekeztem jelölni.

Beállítások az LDAP szerveren

Schema

A legtöbb modern szerver támogatja a posixAccount objektumosztályt out-of-box. Ha még a shadow paramétereket is szeretnénk használni (jelszó lejárat, erősség stb), akkor a shadowAccount objektumosztályra is szükségünk lesz.

Az alábbi attribútumok mindenképpen ki kell, hogy legyenek töltve:

  • uid
  • uidNumber
  • gidNumber
  • homeDirectory
  • cn

Megjegyzések

  • Érdemes meggondolni, hogy milyen értékeket használunk uidNumber,gidNumber, loginShell, homeDirectory stb attribútumokban, ugyanis - ha több gépet akarunk LDAP beléptetésbe integrálni - némi gondot okozhat, hogy ezeknek bizony minden rendszerben meg kell egyezniük. Első (sziszifuszi) munka tehát a gépeket olyan állapotba hozni, hogy ezek az értékek mindenhol egyformák legyenek. (BSD-n természetesen /usr/local/bin/bash van.)

Jogosultságok, ACI

Általában nem szeretjük, ha a felhasználóink minden attribútumát mindenhonnan olvasni lehet, ezért aztán a PAM/NSS-LDAP számára létre kell hozni egy alkalmazás bejegyzést valami alkalmas helyen az LDAP fában. Például így:

dn: uid=papigw,ou=pam,ou=applications,o=niifi,o=niif,c=hu
objectClass: top
objectClass: account
objectClass: simplesecurityobject
uid: papigw
userPassword: *****

Ezek után a felhasználóinkat tartalmazó ágra létre kell hozni egy jó kis ACI-t, pl. így:

aci: (targetattr = "objectClass || uid || uidNumber || gidNumber || homeDirect
 ory || loginShell || gecos || shadowExpire || shadowFlag || shadowInactive ||
  shadowLastChange || shadowMax || shadowMin || shadowWarning") (version 3.0;a
 cl "PAM/NSS user lookup";allow (read,search)(userdn = "ldap:///uid=*,ou=pam,o
 u=applications,o=niifi,o=niif,c=hu");)

Beállítások a Host gépen

Szükséges csomagok

  • libnss-ldap
  • libpam-ldap
  • nscd

és függőségeik. Az nscd használata éles üzemben majdhogynem elkerülhetetlen (hiszen különben az ls -l, ps -ef stb. parancsok minden egyes sor kiírásához LDAP lekérdezést indítanának). Próbálkozás közben viszont érdemes kikapcsolni, különben lehet, hogy a cache-elt válasz zavaró lesz.

SSL konfiguráció

LDAP kliens konfigurálása SSL használatához

PAM/NSS-LDAP konfiguráció

A konfigurációs fájl helye disztribúciófüggő.

  • /etc/ldap.conf (RHEL)
  • /usr/local/etc/ldap.conf (FreeBSD)
  • /etc/pam-ldap.conf, libnss-ldap.conf (Debian)
Semmi ok sincs arra, hogy ez a két állomány eltérjen, ezért érdemes az egyiket törölni és a másikra szimbolikus linket használni.
base ou=users,o=niifi,o=niif,c=hu
uri ldaps://directory.iif.hu
ldap_version 3
binddn uid=papigw,ou=pam,ou=applications,o=niifi,o=niif,c=hu
bindpw ******
scope one
pam_password clear
nss_base_group          ou=posix,ou=groups,o=niifi,o=niif,c=hu?one

NSS konfiguráció

/etc/nsswitch.conf:

passwd:         files ldap
group:          files ldap
shadow:         files ldap

PAM konfiguráció

A /etc/pam.d alatti dolgokat kell módosítani. Ha bátrak vagyunk, dolgozhatunk a common-auth, common-account file-okon is, vagy (óvatosabban) az egyes szolgáltatásokhoz tartozó PAM beállításokon. Működő konfig:

auth       sufficient   pam_unix.so nullok_secure
auth       sufficient   pam_ldap.so use_first_pass debug
auth       required     pam_deny.so
account    sufficient  pam_unix.so
account    sufficient  pam_ldap.so
password   sufficient  pam_ldap.so
password   sufficient  pam_unix.so nullok obscure min=4 max=8 md5
session    required    pam_mkhomedir.so skel=/etc/skel/ umask=0022
session    required    pam_unix.so