Erinevus lehekülje "OpenLDAP kasutamine Debianiga" redaktsioonide vahel

Allikas: Kuutõrvaja
(LDAP serveri ettevalmistamine)
(LDAP serveri ettevalmistamine)
413. rida: 413. rida:
 
   LDAPURI="ldap://192.168.10.51/"
 
   LDAPURI="ldap://192.168.10.51/"
 
   LDAPBASE="ou=auto.master,ou=autofs,dc=auul"
 
   LDAPBASE="ou=auto.master,ou=autofs,dc=auul"
 +
 +
====Süsteemi kasutamine====
 +
 +
Kui süsteemi ettevalmistused õnnestusid, siis peab saama logida sisse kasutajana kusjuures kasutaja kodukataloog ühendati külge NFS serverist.
  
 
===LDAP kliendid===
 
===LDAP kliendid===

Redaktsioon: 11. aprill 2009, kell 19:27

Sissejuhatus

Kataloogiteenuse (ingl. k. directory service) kasutamine on populaarne kuna selle abil saab suhteliselt lihtsasti ja turvaliselt hallata keskselt andmeid ja kontrollida paindlikult kataloogiteenuse klientide ligipääsu neile andmetele. Nt võiks korraldada selliste probleemide lahendamist kataloogiteenuse abil

  • mitmete arvutite kasutajate keskne haldus, st kasutaja saab sama kasutajanime ja parooliga logida sisse haldusala kõigisse arvutitesse
  • aadressraamatu pidamine
  • X509 jms sertifikaatide haldamine PKI pidamise kontekstis

LDAP (Lightweight Directory Access Protocol) on iseenesest protokoll ning üks selle implementatsioon OpenLDAP http://www.openldap.org/. OpenLDAP kasutamise muudab praktiliseks asjaolu, et ta on üsna paljude rakendustega (nt PAM) integreeritud ning OpenLDAP kasutamiseks on vajalikud teegid olemas mitmetes programmeerimiskeeltes (nt Perl, PHP).

OpenLDAP paigaldamine

LDAP serveri paigaldamiseks Debianil tuleb öelda

 # apt-get install slapd

Paigaldamise ajal küsitakse LDAP kataloogi admin sissekande jaoks parooli. Paigaldamise tulemusena on tekitatud LDAP'i andmed organisatsiooni ja administraatori kohta

 # ldapsearch -x
 # extended LDIF
 #
 # LDAPv3
 # base <dc=auul> (default) with scope subtree
 # filter: (objectclass=*)
 # requesting: ALL
 #
 
 # auul
 dn: dc=auul
 objectClass: top
 objectClass: dcObject
 objectClass: organization
 o: auul
 dc: auul
 
 # admin, auul
 dn: cn=admin,dc=auul
 objectClass: simpleSecurityObject
 objectClass: organizationalRole
 cn: admin
 description: LDAP administrator

Kataloogi struktuuri moodustamine

Kui LDAP kasutamise eesmärgiks on hallata keskselt kasutajate ligipääsu arvutite shellile, siis sobib tekitada kaks sellist elementi

 # cat people-group.ldif 
 dn: ou=People,dc=auul
 ou: People
 objectClass: organizationalUnit
 
 dn: ou=Group,dc=auul
 ou: Group
 objectClass: organizationalUnit

öeldes

 # ldapadd -c -x -D cn=admin,dc=auul -W -f /tmp/people-group.ldif

Kasutaja andmete lisamine kataloogi

Esimese grupi ja kasutaja tekitamiseks kasutada sellist ldif'i

 # cat sissekanne.ldif
 dn: cn=loomaaed,ou=group,dc=auul
 cn: loomaaed
 gidNumber: 5000
 objectClass: top
 objectClass: posixGroup
 
 dn: uid=mart,ou=people,dc=auul
 uid: mart
 uidNumber: 10000
 gidNumber: 5000
 cn: Mart Kask
 sn: Kask
 objectClass: top
 objectClass: person
 objectClass: posixAccount
 objectClass: shadowAccount
 loginShell: /bin/bash
 homeDirectory: /home/mart


 dn: uid=priit,ou=people,dc=auul
 uid: priit
 uidNumber: 10001
 gidNumber: 5000
 cn: Priit Kask
 sn: Kask
 objectClass: top
 objectClass: person
 objectClass: posixAccount
 objectClass: shadowAccount
 loginShell: /bin/bash
 homeDirectory: /home/priit

öeldes

 $ ldapadd -c -x -D cn=admin,dc=auul -W -f /tmp/sissekanne.ldif
 Enter LDAP Password:
 adding new entry "cn=loomaaed,ou=group,dc=auul
 adding new entry "uid=mart,ou=people,dc=auul"
 adding new entry "uid=priit,ou=people,dc=auul"

Kasutajale parooli kehtestamiseks tuleb öelda

 # ldappasswd -x -D cn=admin,dc=auul -W -S uid=mart,ou=people,dc=auul
 New password: 
 Re-enter new password: 
 Enter LDAP Password: (ldap administraatori parool)

LDAP päringute sooritamine

Pärgingud LDAP kataloogi saab teha utiliidiga ldapsearch, nt kataloogis sisalduva kasutaja andmete küsimiseks sobib öelda

 # ldapsearch -x uid=mart
 # extended LDIF
 #
 # LDAPv3
 # base <dc=auul> (default) with scope subtree
 # filter: uid=mart
 # requesting: ALL
 #
 
 # mart, people, auul
 dn: uid=mart,ou=people,dc=auul
 uid: mart
 uidNumber: 10000
 gidNumber: 5000
 cn: Mart Kask
 sn: Kask
 objectClass: top
 objectClass: person
 objectClass: posixAccount
 objectClass: shadowAccount
 loginShell: /bin/bash
 homeDirectory: /home/mart
 
 # search result
 search: 2
 result: 0 Success
 
 # numResponses: 2
 # numEntries: 1

Või ainult näidatud attribuutide küsimiseks, kus -LLL ei näita kommentaare

 $ ldapsearch -LLL -x "uid=mart" uid uidNumber gidNumber cn sn
 dn: uid=mart,ou=people,dc=auul
 uid: mart
 uidNumber: 10000
 gidNumber: 5000
 cn: Mark Kask
 sn: Kask

Üldine ldapsearch kasutamise süntaks on selline

  • '-LLL -x' - üldise tähendusega võtmed
  • "uid=mart" - nn filter, vaikimisi samaväärne kui "(objectClass=*)"
  • uid uidNumber gidNumber cn sn - küsitud attribuutide nimed

Lisaks saab päringu esitamisel kitsendada kui asutakse LDAP hierarhias -b "dc=auul" parameeetri abil

 $ ldapsearch -LLL -x -b "dc=auul" "uid=tarmo" uid uidNumber gidNumber cn sn

Kui LDAP server on seadistatud logima, siis tekib /var/log/syslog'i viimase päringuga seoses sissekanne

 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 fd=27 ACCEPT from IP=127.0.0.1:45114 (IP=0.0.0.0:389)
 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 op=0 BIND dn="" method=128
 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 op=0 RESULT tag=97 err=0 text=
 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 op=1 SRCH base="dc=auul" scope=2 deref=0 filter="(uid=mart)"
 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 op=1 SRCH attr=uid uidNumber gidNumber cn sn
 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 op=2 UNBIND
 Apr 11 09:42:49 arendus64 slapd[25883]: conn=670 fd=27 closed

Kust on näha

  • ACCEPT from IP=127.0.0.1:45114 - päringu sooritanud arvuti ip aadress
  • BIND dn="" - serverisse päringu esitamiseks kasutatud ühendusviis
  • RESULT tag=97 err=0 - kas ühendumine andis vigu
  • SRCH base="dc=auul" scope=2 deref=0 filter="(uid=mart)" - kasutatud otsingualus ning filter
  • SRCH attr=uid uidNumber gidNumber cn sn - küsitud atribuudid
  • SEARCH RESULT tag=101 err=0 nentries=1 text= - kas päringu tulemus andis vigu ja mitu vastust anti

Keskse kasutajate halduse korraldamine

Selleks, et LDAP kliendiks olev arvuti saaks oma kasutajate andmed kataloogist peab paigaldama klientarvutisse paketid libnss-ldapd ja libpam-ldap

 # apt-get install libnss-ldapd libpam-ldap

NSS

Operatsioonüsteem kasutab NSS (Name Service Switch) süsteemi selleks, et arvuti tööks olulisi andmeid kindlaks teha. Muu hulgas näitab NSS seadistusfail /etc/nsswitch.conf, millistest allikatest neid andmeid saab.

Süsteemi NSS seadistamiseks tuleb fail /etc/nsswitch.conf asendada

 # the following contain normal unix user and group information
 passwd:         files ldap
 group:          files ldap
 shadow:         files ldap
 
 # hostname lookups through ldap before dns should work now
 hosts:          files ldap dns
 networks:       files ldap
 
 # normal flat-file definitions
 protocols:      files ldap
 services:       files ldap
 ethers:         files ldap
 rpc:            files ldap
 netgroup:       ldap
 
 # whether alias lookups really use NSS depends on the mail server
 aliases:        files ldap

Lisaks tuleb näidata libnss-ldapd paketist paigaldatud deemoni nslcd seadistusfailis /etc/nss-ldapd.conf LDAP serveri kohta andmed

 uid nslcd
 gid nslcd
 
 # The location at which the LDAP server(s) should be reachable.
 uri ldap://192.168.10.51
 
 # The search base that will be used for all queries.
 base dc=auul
 
 # The LDAP protocol version to use.
 #ldap_version 3
 
 # The DN to bind with for normal lookups.
 binddn cn=admin,dc=auul
 bindpw parool

ning deemon käivitada

 # /etc/init.d/nslcd start

PAM

Operatsioonisüsteem kasutab PAM (Pluggable Authentication Modules) süsteemi selleks, et erinevad programmid saaksid kasutajaid autentida.

Nt selleks, et kasutajad saaksid ssh abil sisse logida, sobib PAM'i ssh seadistusfailis /etc/pam.d/sshd kasutada nt sellist sisu

 #%PAM-1.0
 auth       required     /lib/security/pam_nologin.so
 auth       sufficient    /lib/security/pam_ldap.so
 auth       required     /lib/security/pam_unix_auth.so try_first_pass
 account    sufficient   /lib/security/pam_ldap.so
 account    required     /lib/security/pam_unix_acct.so
 password   required     /lib/security/pam_cracklib.so
 password   sufficient   /lib/security/pam_ldap.so
 password   required     /lib/security/pam_pwdb.so use_first_pass
 session    required     /lib/security/pam_unix_session.so

Selleks, et kasutaja saaks oma parooli muuta peab sisalduma /etc/pam.d/common-passwd failis lisaks nt

 password sufficient pam_unix.so nullok md5
 password required pam_ldap.so try_first_pass

Kasutajate kodukataloogide automaatne külge ja lahti ühendamine

Kasutajate kodukataloogide automaatne külge ja lahti ühendamine tähendab seda, et kui nt kasutaja mart logib süsteemi sisse, siis tema kodukataloog /home/mart ühendatakse külge NFS serverist

 $ df
 Filesystem           1K-blocks      Used Available Use% Mounted on
 /dev/sda2              4128448   1007152   2911584  26% /
 tmpfs                   131180         0    131180   0% /lib/init/rw
 udev                     10240        12     10228   1% /dev
 tmpfs                   131180         4    131176   1% /dev/shm
 192.168.10.249:/data/export/mart
                     16513960   2482936  13192168  16% /home/mart
 192.168.10.249:/data/export/priit
                     16513960   2482936  13192168  16% /home/priit

ja kui ta logib välja, siis see ühendatakse nt kümnete sekundite jooksul lahti (eeldusel, et sealt mingeid protsesse tööle ei jäänud). Võib öelda, et nii saavutatud tulemus on väga sarnane sellele, kuidas vaikimisi Solaris käitub selles mõttes.

Süsteem koosneb kolmest komponendist

  • NFS - jagab välja kasutajatele nende kodukatalooge
  • LDAP - autendib kasutajaid ning autoriseeb kasutama ressursse, nt kasutaja kodukataloogi
  • AutoFS - tagab, et peale kasutaja sisselogimist klientarvutisse ühendatakse tema kataloog külge

Süsteemi tööd iseloomustavad sellised asjaolud

  • LDAP'is on kirjeldatud 'ou=People,dc=auul' all kasutajad nö tavalisel moel; kasutajate grupid on kirjeldatud 'ou=Group,dc=auul' all
  • NFS servist saab klientarvutisse resursse külge ühendada
  • klientarvutis on seadistatud NSS ning nt ssh PAM moodul, et toimuks kasutaja autentimine vastu LDAP kataloogi
  • Klientarvutis on seadistatud käima AutoFS, kusjuures sedasi, et /home alla toimuvaid ühenduste tegemisel vajalikke seadistusi võetakse LDAP kataloogist (mitte nö /etc/auto.master ning /etc/auto.home failist)
  • kasutusel on kolm eraldi arvutit, NFS server, LDAP server ja klientarvuti

NFS'i ettevalmistamine

NFS serveris tuleb jagada välja kataloog

 # ls -ld /data/export/*
 drwxr-xr-x 2 10000  5000 4096 Apr 11 19:04 /data/export/mart
 drwxr-xr-x 2 10001  5000 4096 Apr 11 19:04 /data/export/priit

seadistusfailis /etc/exports, nt selliselt

 # cat /etc/exports
 /data/export 192.168.10.199(rw,no_root_squash,async,no_subtree_check)

Klienti tuleb paigaldada NFS kliendi jaoks vajalik tarkvara

 # apt-get install nfs-common

Eelduseks, et edasine töötaks, peavad NFS server ja klient peavad olema seadistatud selliselt, et kliendis saab ühendada tavapärasel viisil üle NFS'i külge kasutaja kodukataloogi, st peab töötama käsk

 # mount 192.168.10.249:/data/export/mart /home/mart

AutoFS'i ettevalmistamine

Klienti tuleb paigaldada AutoFS kasutamiseks koos LDAP'iga vajalik tarkvara

 # apt-get install autofs autofs-ldap

Kui NFS osas on iseenesest ettevalmistatud, maksab kontrollida, et autofs süsteem klientarvutis samuti töötab. Selleks sobib moodustada sellise sisuga /etc/auto.master fail

 # cat /etc/auto.master
 /home /etc/auto.home

ning sellise sisuga /etc/auto.home fail

 # cat /etc/auto.home
 mart    -ro,soft,intr       192.168.10.249:/data/export/mart

Seejärel tuleb käivitada autofs deemon ning veenduda, et kui öelda 'ls -l /home/mart', siis ühendatakse see kataloog külge NFS serverist.

Seejärel tuleb /etc/auto.master ja /etc/auto.home failide eest ära liigutada ning autofs uuesti käivitada

 # mv /etc/auto.master /etc/auto.master-local
 # mv /etc/auto.home /etc/auto.home-local
 # /etc/init.d/autofs stop && /etc/init.d/autofs start

LDAP serveri ettevalmistamine

Eelmises punktis AutoFS kasutamise kontrollimiseks moodustatud seadistusfailide

 /etc/auto.master
 /etc/auto.home

rolli võtab üle LDAP kataloog.

  • /etc/auto.master failis toodud andmetega on samaväärsed sellised LDAP kataloogi sissekanded (kaks reavahetust on .ldif'is vajalikud)
 dn: ou=autofs,dc=auul
 ou: autofs
 objectClass: top
 objectClass: organizationalUnit
 
 
 dn: ou=auto.master,ou=autofs,dc=auul
 ou: auto.master
 objectClass: top
 objectClass: automountMap
 
 
 dn: cn=/home,ou=auto.master,ou=autofs,dc=auul
 objectClass: automount
 cn: /home
 automountInformation: ldap:192.168.10.51:ou=auto.home,ou=autofs,dc=auul

Selle info sisestamiseks kataloogi tuleb ülaltoodud tekst salvestada faili /tmp/auto.master.ldif ning öelda

 $ ldapadd -c -x -D cn=admin,dc=auul -W -f /tmp/auto.master.ldif
 adding new entry "ou=autofs,dc=auul"
 adding new entry "ou=auto.master,ou=autofs,dc=auul"
 adding new entry "cn=/home,ou=auto.master,ou=autofs,dc=auul"

Sisestatud andmete kontrollimiseks sobib öelda, nt

 $ ldapsearch -LLL -x -b "ou=auto.master,ou=autofs,dc=auul" "(objectClass=automountMap)"
 dn: ou=auto.master,ou=autofs,dc=auul
 ou: auto.master
 objectClass: top
 objectClass: automountMap
  • /etc/auto.home failis toodud andmetega on samaväärsed LDAP kataloogi sissekanded
 dn: ou=auto.home,ou=autofs,dc=auul
 ou: auto.home
 objectClass: top
 objectClass: organizationalUnit
 
 
 dn: cn=mart,ou=auto.home,ou=autofs,dc=auul
 cn: mart
 objectClass: automount
 automountInformation: -rsize=8192,wsize=8192,intr 192.168.10.249:/data/export/mart

Selle info sisestamiseks kataloogi tuleb ülaltoodud tekst salvestada faili /tmp/auto.home.ldif ning öelda

 $ ldapadd -c -x -D cn=admin,dc=auul -W -f /tmp/auto.home.ldif
 adding new entry "ou=auto.home,ou=autofs,dc=auul"
 adding new entry "cn=mart,ou=auto.home,ou=autofs,dc=auul"

Sisestatud andmete kontrollimiseks sobib öelda

 $ ldapsearch -LLL -x -b "ou=auto.home,ou=autofs,dc=auul" "(objectClass=automount)"
 dn: cn=mart,ou=auto.home,ou=autofs,dc=auul
 cn: mart
 objectClass: top
 objectClass: automount
 automountInformation: -rsize=8192,wsize=8192,intr 192.168.10.249:/data/export

Lisaks neile sissekannetele peab olema kataloogis nö tavaline sissekanne kasutaja mart jaoks.

Kliendi LDAP seadistused tuleb kirjeldada failis /etc/default/autofs

 LDAPURI="ldap://192.168.10.51/"
 LDAPBASE="ou=auto.master,ou=autofs,dc=auul"

Süsteemi kasutamine

Kui süsteemi ettevalmistused õnnestusid, siis peab saama logida sisse kasutajana kusjuures kasutaja kodukataloog ühendati külge NFS serverist.

LDAP kliendid

Tundub, et 2009 aastal on populaarsed sellised LDAP kliendid

Tundub, et Luma on graafilistest suhteliselt elujõuline, kuigi annab vigu episoodiliselt

Kasulikud lisamaterjalid