Sok LDAP kliens beállítás érhető el a neten, nálam valahogy nem akartak működni.

Ezért készítem ezt a leírást, hogy mások is rátalálhassanak egy ilyen konfigurációra.

Abból indulok ki, hogy létezik valahol egy már beállított és működő LDAP szerver, amit a kliensem elér és a hitelesítést azon keresztül kívánom elvégezni.

A kliens jelen cikk írásakor egy frissen telepített Debian 6.0.6 Squeeze / Ubuntu 12.04.1 LTS Precise Pangolin gép lesz.

 

Telepítsük fel a szükséges eszközöket a kliensre és adjuk meg a már működő LDAP szerver adatait:

apt-get install libnss-ldap libpam-ldap nscd

 

LDAP server Uniform Resource Identifier: ldap://ldap.weblappark.hu/


Distinguished name of the search base: dc=ldap,dc=weblappark,dc=hu


LDAP version to use: 3


Make local root database admin: yes

Does the LDAP database require login? No

LDAP Account for root: cn=adminuser,dc=ldap,dc=weblappark,dc=hu


LDAP root account password: ********

Most a libnss-ldap lehetővé teszi, hogy az LDAP szolgáltatáson keresztül feloldja a távoli szerver adatbázisában lévő neveket, a libpam-ldap pedig a távoli felhasználók hitelesítését segíti a pam szolgáltatáson keresztül. Az nscd pedig egy névszolgáltatás cachelő démon, ami tárolja a szerverről már lekért információkat így nem kell a kliensnek minden lekérdezéskor az LDAP szerverhez fordulni.

Az /etc/nsswitch.conf  fájlban módosítsuk az alábbi sorokat, hogy az LDAPban is keresse a szükséges információkat:

auth-client-config -t nss -p lac_ldap

vagy

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

Ha ezekkel megvagyunk, akkor már sikeresen le tudjuk kérdezni a távoli szerveren lévő LDAP felhasználó adatait:

getent passwd teszt
teszt:x:10002:10002:teszt:/home/teszt:/bin/bash

Nem marad más hátra, mint hogy a PAM rendszerrel is tudassuk, hogy az LDAP felhasználók hitelesíthetőek a rendszerben:

Adjuk hozzá az /etc/pam.d/common-account  fájl elejéhez a következő sorokat:

account sufficient pam_ldap.so
account sufficient pam_unix.so
session required pam_mkhomedir.so

 

Adjuk hozzá az  /etc/pam.d/common-auth fájl elejéhez a következő sorokat:

auth sufficient pam_ldap.so
auth sufficient pam_unix.so nullok_secure use_first_pass

 

Adjuk hozzá az  /etc/pam.d/common-password  fájl elejéhez a következő sorokat:

password sufficient pam_ldap.so
password sufficient pam_unix.so nullok obscure min=4 max=8 md5

 

Adjuk hozzá az  /etc/pam.d/common-session  fájl elejéhez a következő sorokat:

session sufficient pam_ldap.so
session sufficient pam_unix.so

 

Ha ezeket a módosításokat felvettük, frissítsük le a PAM adatbázist

pam-auth-update

Végezetül indítsuk újra az nscd démont, hogy friss információkkal lássa el az LDAP szerver.

/etc/init.d/nscd restart

Azután sikeresen beléphetünk az újonnan telepített gépre a távoli LDAP szerveren kezelt felhasználókkal:

ssh teszt@vps312
teszt@vps312's password:
Creating directory '/home/teszt'.
teszt@vps312:~$

A frissen telepített gép ssh logja:

vps312 sshd: Accepted password for teszt

Ha valamelyik beállítást az elején elrontottuk, akkor az /etc/ldap.conf  fájlban utólag tudjuk módosítani, vagy a

dpkg-reconfigure ldap-auth-config

parancs futtatásával.

 

Jelszó váltás:

teszt@vps312:~$ passwd
Enter login(LDAP) password: jelenlegi LDAP jelszó
New password: új jelszó
Re-enter new password: új jelszó megint
LDAP password information changed for teszt
passwd: password updated successfully
teszt@vps312:~$

A következő belépésnél már a megváltoztatott LDAP jelszóval tudunk belépni.

LDAP jelszó változtatása helyi root felhasználóval:

root@vps312:~# passwd teszt
New password:
Re-enter new password:
LDAP password information changed for teszt
passwd: password updated successfully
root@vps312:~#

no comments