Postavili bomo strežnik LDAP, na katerem lahko hranimo podatke o uporabnikih in računalnikih.

Predpriprava

  • Preberi oziroma ponovi, kaj so LDAP, PAM, name service switch (NSS), Microsoft ActiveDirectory in FusionDirectory.
  • Preglej, kako lahko uporabiš LDAP za avtentikacijo uporabnikov pod Linux.
  • Reši nalogo 14-preparation-ldap_search na KPOV Judge.

Naloga

  • Namesti in nastavi OpenLDAP.
  • Namesti in nastavi FusionDirectory.
  • Ustvari dva uporabnika v bazi LDAP.
  • Izpiši vse uporabnike z ldapsearch.
  • Izpiši vse uporabnike z imenom Peter in priimkom Zmeda.
  • V sistem se prijavi z uporabniškim imenom iz baze LDAP.

Navodila

Zaženemo eno od običajnih virtualk. Najprej namestimo LDAP strežnik

# apt install slapd ldap-utils

in ga (ponovno) nastavimo, saj konfiguracija med namestitvijo preskoči nekaj korakov:

# dpkg-reconfigure slapd

Če boste konfiguracijo pognali še kdaj, najprej pobrišite varnostno kopijo baze v /var/backups/*.ldapdb. Pomembna vprašanja med konfiguracijo:

  • Omit OpenLDAP server configuration? Seveda ne.
  • DNS domain name: Izberemo nekaj kratkega, npr. example.org.
  • Database backend to use: Pustimo privzeti MDB.
  • Move old database? Da.

Po ustvarjeni bazi lahko iščemo z

$ ldapsearch -D cn=admin,dc=example,dc=org -W -b dc=example,dc=org 

Zastavica -D nastavi uporabnika, -W vpraša za geslo, -b pa nastavi podano bazo kot začetno točko iskanja. Več v priročniku.

FusionDirectory

Za enostavnejše delo z bazo LDAP bomo namestili spletni vmesnik FusionDirectory. Poleg same aplikacije namestimo še pripadajočo shemo za LDAP. Ta med drugim definira tipe atributov in objektov za uporabnike v sistemih POSIX, ki so opisani v RFC 2307.

# apt install fusiondirectory fusiondirectory-schema

Če ob namestitvi ne dobimo spletnega strežnika Apache, ga namestimo ročno. Nato poženemo

# fusiondirectory-insert-schema

da dodamo potrebne vnose v lokalno bazo.

Zaženemo brskalnik in ga usmerimo na http://localhost/fusiondirectory oziroma http://[IP strežnika LDAP]/fusiondirectory, če strežnik teče na drugem računalniku. Sledimo navodilom, da nastavimo FusionDirectory. Gumb Next se nahaja v spodnjem desnem kotu. Med drugim FusionDirectory ustvari uporabnika fd-admin, s katerim dostopamo do spletnega vmesnika.

Na koncu prenesemo konfiguracijo, jo shranimo v datoteko /etc/fusiondirectory/fusiondirectory.conf in poženemo

# fusiondirectory-setup --check-config

da popravimo lastništvo in dovoljenja konfiguracijske datoteke. V njej je namreč zapisano geslo administratorja LDAP, s katerim se FusionDirectory poveže na strežnik.

V spletnem vmesniku ustvarimo dva uporabnika, ki jima nastavimo tudi račun Unix. To nam bo kasneje omogočilo prijavo v sistem z uporabo podatkov iz LDAP. Poskrbeti boste morali tudi, da obstaja domači imenik za vsakega uporabnika. Lahko ga ustvarite ročno, ali pa uporabite modul pam_mkhomedir, ki ga v Debianu najdete v paketu libpam-modules.

NSS in PAM

Namestimo modula za avtentikacijo za PAM in NSS

# apt install libpam-ldapd libnss-ldapd

pri čemer dobimo tudi nslcd, tj. pomožnega demona za poizvedbe LDAP. Na vprašanja med namestitvijo odgovorimo tako:

  • LDAP server URI: Nastavimo ldapi:/// oziroma ldap://<IP strežnika LDAP>, če strežnik ne teče na lokalnem računalniku.
  • LDAP server search base: Nastavimo izbrano domeno, npr. dc=example,dc=org.
  • Name services to configure: Izberemo passwd, group in shadow.

Če je šlo vse po sreči, se zdaj lahko prijavijo uporabniki, definirani v bazi LDAP.

Reševanje težav

Če se ne morete prijaviti v sistem z uporabnikom iz baze LDAP, preverite vsebino /var/log/auth.log. Z ukazom

$ getent passwd

izpišemo uporabnike, ki jih trenutno vidi sistem. Če med njimi ni uporabnikov iz LDAP, preverite vsebino datoteke /etc/nsswitch.conf.

Težave med testiranjem lahko povzroča tudi demon nscd, ki predpomni rezultate imenskih storitev; po spremembah ga lahko znova zaženemo s

# service nscd restart

Za imenik, v katerem je baza, je pomembno, da lahko po njem piše uporabnik openldap. Poleg tega je treba poskrbeti, da pisanja ne bo preprečil apparmor. Popravite datoteko /etc/apparmor.d/usr.sbin.slapd tako, da dodate vrstico na vižo

/POT/DO/BAZE/** rwk,
Last modified: Tuesday, 12 February 2019, 7:28 PM