Erinevus lehekülje "Ldap klient ja server" redaktsioonide vahel

Allikas: Kuutõrvaja
(LDAP serverisse algstruktuuri tekitamine ja kasutajate lisamine)
 
(ei näidata sama kasutaja 69 vahepealset redaktsiooni)
1. rida: 1. rida:
===LDAP===  
+
===Sissejuhatus===  
  
 
(Lightweight Directory Access Protocol) http://www.openldap.org/ on Michigani Ülikooli (University of Michigan) poolt välja töötatud kataloogiteenuse protokoll asendamaks X.500 DAP (Directory Access Protocol) protokolli. Süsteemis pakub ta võimalust ühe teenuse piires hoida ning väljastada mitmesugust kasutajakontode kohta käivat infot. Näiteks hoida lisaks kasutaja paroolile ja nimele veel tema kontaktandmeid, samba parooli jms. Samuti saab ldap’i hästi kasutada kui on mitu serverit (mail, www, samba, terminaliserver) ning oleks vaja, et samad kasutajad eksisteeriksid kõigis neis serverites. Käesolev näide sobibki sellise lahenduse loomiseks kõige paremini :)
 
(Lightweight Directory Access Protocol) http://www.openldap.org/ on Michigani Ülikooli (University of Michigan) poolt välja töötatud kataloogiteenuse protokoll asendamaks X.500 DAP (Directory Access Protocol) protokolli. Süsteemis pakub ta võimalust ühe teenuse piires hoida ning väljastada mitmesugust kasutajakontode kohta käivat infot. Näiteks hoida lisaks kasutaja paroolile ja nimele veel tema kontaktandmeid, samba parooli jms. Samuti saab ldap’i hästi kasutada kui on mitu serverit (mail, www, samba, terminaliserver) ning oleks vaja, et samad kasutajad eksisteeriksid kõigis neis serverites. Käesolev näide sobibki sellise lahenduse loomiseks kõige paremini :)
 +
 +
Käesolevas õpetuses vaatleme kuidas kasutajate infot hoida ldap serveris
 +
 +
Selleks serverisse järgneva puukujulise struktuuri
  
 
  dc:        com
 
  dc:        com
 
               |
 
               |
  dc:        genfic         (Organisation)
+
  dc:        myserver         (Organisation)
 
           /      \
 
           /      \
  ou:  People  servers   (Organisational Units)
+
  ou:  People  Groups   (Organisational Units, nö grupp kus hoitakse vajalikku infot)
       /    \    ..
+
       /    \    .. \
  uid: ..  John            (OU-specific data)
+
  uid: ..  Ants      test      (OU-spetsiifiline data ehk kasutajad - grupid)
 +
 
 +
* Base DN: dc=myserver,dc=com
 +
* Users: dc=myserver,dc=com,ou=People
 +
* Groups: dc=myserver,dc=com,ou=Groups
 +
 
 +
Ehk tekitame DC myserver,com mis hoiab endas kahte OUd (organisatsional unitit) People ja Groups, millest ühte
 +
salvestame kasutajate info ja teise grupiinfo, alternatiivina Linuxi shadow ja group failidele
  
===Serveri pool===
+
===Serveri install ja seadistus===
  
 
Installime openldap serveri
 
Installime openldap serveri
  
FreeBSD's
+
FreeBSDs käib see järgnevalt
 +
 
 
  cd /usr/ports/net/openldap24-server && make install
 
  cd /usr/ports/net/openldap24-server && make install
 
teises os'ides vastavalt siis emerge apt-get install etc
 
  
 
Süsteemi paigaldatakse ka berkeley db, mida openldab defauldis kasutab, kuid on võimalik seada see tööle ka nö näiteks postgresql peal.
 
Süsteemi paigaldatakse ka berkeley db, mida openldab defauldis kasutab, kuid on võimalik seada see tööle ka nö näiteks postgresql peal.
  
genereerime serverile parooli
+
genereerime serverile parooli, mille seadistame hiljem konfiguratsioonis rootpw reale
 
   
 
   
 
   # slappasswd -s parool
 
   # slappasswd -s parool
 
  {SSHA}nPKG3qbPABkp21aTBZV2IpbcGUHLi3a2
 
  {SSHA}nPKG3qbPABkp21aTBZV2IpbcGUHLi3a2
  
liigume /usr/local/etc/openldap ning avame faili slapd.conf, lisame sinna
+
liigume /usr/local/etc/openldap või linuxi puhul /etc/openldap ning avame faili slapd.conf, muudame seda vastavalt allolevale näitele
  
 
  include        /usr/local/etc/openldap/schema/core.schema
 
  include        /usr/local/etc/openldap/schema/core.schema
 
  include        /usr/local/etc/openldap/schema/cosine.schema
 
  include        /usr/local/etc/openldap/schema/cosine.schema
 
  include        /usr/local/etc/openldap/schema/nis.schema
 
  include        /usr/local/etc/openldap/schema/nis.schema
 +
 
  pidfile        /var/run/ldap/slapd.pid
 
  pidfile        /var/run/ldap/slapd.pid
 
  argsfile        /var/run/ldap/slapd.args
 
  argsfile        /var/run/ldap/slapd.args
 
  database        bdb
 
  database        bdb
  suffix          "dc=test,dc=org"
+
  suffix          "dc=myserver,dc=com"
  rootdn          "cn=Manager,dc=test,dc=org"
+
  rootdn          "cn=Manager,dc=myserver,dc=org"
 
  rootpw          {SSHA}nPKG3qbPABkp21aTBZV2IpbcGUHLi3a2
 
  rootpw          {SSHA}nPKG3qbPABkp21aTBZV2IpbcGUHLi3a2
 
  directory      /var/db/openldap-data
 
  directory      /var/db/openldap-data
42. rida: 53. rida:
 
  index          uid            pres,eq,sub
 
  index          uid            pres,eq,sub
  
Selleks, et toimiks kõik info liigutamine TLS krüpteeritult, genereerime võtmed ja lisame konfi read, näiteks
+
Selleks, et infovahetus toimuks krüpteeritult, genereerime võtmed ja lisame konfi lõppu veel järgnevad read
  
 
  # Define SSL and TLS properties (optional)
 
  # Define SSL and TLS properties (optional)
49. rida: 60. rida:
 
  TLSCACertificateFile /etc/ssl/ldap.pem
 
  TLSCACertificateFile /etc/ssl/ldap.pem
  
Selleks, et kliendid saaksid küll anonüümselt audentida vastu ldap serverit, kuid mitte lugeda krütpeeritud paroole, aitavad read
+
Aga selleks, et kliendid saaksid anonüümselt audentida vastu ldap serverit, kuid mitte lugeda krütpeeritud paroole, aitavad read
  
 
  access to attrs=userPassword
 
  access to attrs=userPassword
58. rida: 69. rida:
 
         by * read
 
         by * read
  
natuke failiõigusi paika lihtsalt igaksjuhuks
+
natuke failiõigusi paika, turvalisuse huvides
  
 
  chmod 440 /usr/local/etc/openldap/slapd.conf
 
  chmod 440 /usr/local/etc/openldap/slapd.conf
64. rida: 75. rida:
 
  chown -R ldap:ldap /var/db/openldap*
 
  chown -R ldap:ldap /var/db/openldap*
  
/etc/rc.conf’i lisame ldap’i teenuse käivitamiseks boodil
+
Et slapd käivituks peale serveri booti lisame /etc/rc.conf’i
  
 
  slapd_enable="YES"
 
  slapd_enable="YES"
70. rida: 81. rida:
 
  slapd_sockets="/var/run/openldap/ldapi"
 
  slapd_sockets="/var/run/openldap/ldapi"
  
peale rebooti võime sockstatiga kontrollida kas ldap kuulab 389 pordil
+
Peale rebooti peaks ldap kuulama 389 pordil, seda võib sockstat/netstat abil täiendavalt kontrollida
  
Nüüd loome test.ldiff faili ning ekspordime selle ldap’i, sellega paneme paika kogu struktuuri
+
===LDAP serverisse algstruktuuri tekitamine ja kasutajate lisamine===
  
  dn: dc=test,dc=org
+
loome esimesena info.ldiff millega paneme paika kogu struktuuri
  dc: test
+
 
 +
  dn: ou=Groups,dc=myserver,dc=com
 +
  objectClass: organizationalUnit
 +
objectClass: top
 +
ou: Groups
 +
 +
dn: ou=People,dc=myserver,dc=com
 +
objectClass: organizationalUnit
 
  objectClass: top
 
  objectClass: top
  objectClass: domain
+
  ou: People
objectClass: domainRelatedObject
+
 
associatedDomain: test.org
+
Teeme failist eksportimise serverisse
structuralObjectClass: domain
 
dn:ou=groups, dc=test, dc=org
 
objectclass: top
 
objectclass: organizationalUnit
 
ou: groups
 
structuralObjectClass: organizationalUnit
 
dn:ou=people, dc=test, dc=org
 
objectclass: top
 
objectclass: organizationalUnit
 
ou: people
 
structuralObjectClass: organizationalUnit
 
  
Teeme failist eksportimise
+
'''# ldapadd -x -D "cn=Manager,dc=myserver,dc=com" -W -f info.ldiff'''
 +
Enter LDAP Password:                                                 
 +
adding new entry "ou=Groups,dc=myserver,dc=com"                     
 +
 +
adding new entry "ou=People,dc=myserver,dc=com"
 +
 +
Kaks uute userite lisamise template’t. Slappadd’ga saab nende failide abil ldap’i kasutajad testuser ja testuser2. Hiljem võib kirjutada näiteks shellskripti, mis parameetritena võtab kasutaja parooli ja grupi ning loob automaatselt kodukatalooma ja genereerb slappasswd’ga parooli automaatselt
  
# slapadd -l test.ldiff
+
Kasutaja mille tekitamine info on:
  
Kaks uute userite lisamise template’t. Slappadd’ga saab nende failide abil ldap’i kasutajad testuser ja testuser2. Muidugi võib kirjutada mingi shellskripti, mis parameetritena võtab kasutaja parooli ja grupi ning loob kodukatalooma lisaks ka :) Genereerida tuleb ka slappasswd’ga parool mõlemale kasutajale
+
cn=StupidTest User
 +
dn cn=StupidTest User,ou=People,dc=myserver,dc=com
 +
cn StupidTest User
 +
gecos Niisama ldap user
 +
gidNumber 1000
 +
homeDirectory /home/test
 +
loginShell /bin/csh
 +
User Name testuser
 +
uidNumber 1000
 +
Password parool
  
Esimene kasutaja testuser.ldiff
+
Selleks tekitame fiali '''testuser.ldiff''' millesse lisame järgneva info
  
  dn: cn=StupidTest User, ou=people, dc=test, dc=org
+
# kasutaja info People's OU'sse
 +
  dn: cn=StupidTest User, ou=People, dc=myserver, dc=org
 
  cn: StupidTest User
 
  cn: StupidTest User
 
  sn: Dummy
 
  sn: Dummy
112. rida: 135. rida:
 
  gidnumber:1000
 
  gidnumber:1000
 
  gecos:Niisama ldap user
 
  gecos:Niisama ldap user
  loginShell:/bin/csh
+
  loginShell:/bin/bash
 
  homeDirectory: /home/test
 
  homeDirectory: /home/test
  dn: cn=test, ou=groups, dc=test, dc=org
+
 +
# grupi info Groups OU'sse
 +
  dn: cn=test, ou=Groups, dc=myserver, dc=org
 
  objectclass: top
 
  objectclass: top
 
  objectclass: posixGroup
 
  objectclass: posixGroup
121. rida: 146. rida:
 
  memberuid: test
 
  memberuid: test
  
# slapadd -l testuser.ldiff
+
Lisame info ldap serverisse
  
Teine kasutaja testuser2.ldiff
+
'''# ldapadd -x -D "cn=Manager,dc=myserver,dc=com" -W -f testuser.ldiff'''
 +
Enter LDAP Password:
 +
adding new entry "cn=StupidTest User, ou=People, dc=myserver, dc=com"
 +
 +
adding new entry "cn=test, ou=Groups, dc=myserver, dc=com"'
  
  dn: cn=StupidTest User2, ou=people, dc=test, dc=org
+
Kui vaatame nüüd phpldamadminiga struktuuri näeb see välja järgnev
 +
 
 +
[[Pilt:Ldapstruktuur.png]]
 +
 
 +
Loome veel ka teise kasutaja, tekitame selleks faili testuser2.ldiff
 +
 
 +
  dn: cn=StupidTest User2, ou=people, dc=myserver, dc=org
 
  cn: StupidTest User2
 
  cn: StupidTest User2
 
  sn: Dummy
 
  sn: Dummy
146. rida: 181. rida:
 
  memberuid: test2
 
  memberuid: test2
  
  # slapadd -l testuser2.ldiff
+
  '''# ldapadd -x -D "cn=Manager,dc=myserver,dc=com" -W -f testuser2.ldiff'''
 +
Enter LDAP Password:                                                 
 +
adding new entry "ou=Groups,dc=myserver,dc=com"                     
 +
 +
adding new entry "ou=People,dc=myserver,dc=com"
  
===Kliendi pool===
+
Nüüd on meil kaks posix kasutajat ja gruppi, järgnevalt vaatame kuidas need kasutajad autentima panna
 +
 
 +
Kasutaja leidmine käsureal
 +
 
 +
ldapsearch -x -H ldapi:/// -D "cn=admin,dc=zoo,dc=tartu,dc=ee" -W -b "dc=zoo,dc=tartu,dc=ee" uid=otsitav_kasutaja
 +
 
 +
Kasutaja kustutamine
 +
 
 +
ldapdelete -x -H ldapi:/// -D "cn=admin,dc=zoo,dc=tartu,dc=ee"  -w ldap_admini_parool "uid=kasutaja_kes_maha,ou=people,dc=zoo,dc=tartu,dc=ee"
 +
 
 +
===FreeBSD poolne autentimine===
 +
 
 +
http://www.freebsd.org/doc/en/articles/ldap-auth/article.html
  
 
Installime nss_ldap ja pam_ldap softi, sellekäigus paigutatakse süsteemi ka openldap-client
 
Installime nss_ldap ja pam_ldap softi, sellekäigus paigutatakse süsteemi ka openldap-client
155. rida: 206. rida:
 
  cd /usr/ports/security/pam_ldap/ && make install
 
  cd /usr/ports/security/pam_ldap/ && make install
  
lisame /etc/pam.d/ldap faili 5x puhul või /etc/pam.conf 4x süsteemis rea
+
lisame /etc/pam.d/ldap faili FreeBSD 5.x või kõrgema puhul ja /etc/pam.conf FreeBSD 4.x süsteemis rea
  
 
  login  auth    sufficient      /usr/local/lib/pam_ldap.so
 
  login  auth    sufficient      /usr/local/lib/pam_ldap.so
169. rida: 220. rida:
 
  ldap_version 3
 
  ldap_version 3
 
  host 192.168.1.1 <- siia siis ldap serveri ip
 
  host 192.168.1.1 <- siia siis ldap serveri ip
  suffix          "dc=test,dc=org"
+
  suffix          "dc=myserver,dc=org"
  nss_base_passwd ou=People,dc=test,dc=org?sub
+
  nss_base_passwd ou=People,dc=myserver,dc=org?sub
  nss_base_group ou=Group,dc=test,dc=org?sub  
+
  nss_base_group ou=Group,dc=myserver,dc=org?sub  
  nss_base_shadow ou=people,dc=test,dc=org?sub
+
  nss_base_shadow ou=people,dc=myserver,dc=org?sub
 
   
 
   
  BASE    dc=test, dc=org
+
  BASE    dc=myserver, dc=org
 
  scope sub
 
  scope sub
 
   
 
   
190. rida: 241. rida:
 
nüüd kirjutame /etc/pam.d/sshd konfi
 
nüüd kirjutame /etc/pam.d/sshd konfi
  
  auth            sufficient      /usr/local/lib/pam_ldap.so no_warn try_first_pass
+
auth            required        pam_nologin.so          no_warn
  auth            required        pam_unix.so
+
auth            sufficient      pam_opie.so            no_warn no_fake_prompts
 +
auth            requisite      pam_opieaccess.so      no_warn allow_local
 +
  auth            sufficient      /usr/local/lib/pam_ldap.so     no_warn
 +
  auth            required        pam_unix.so             no_warn try_first_pass
 +
 +
  account        required        pam_login_access.so
 +
account        required        /usr/local/lib/pam_ldap.so      no_warn ignore_authinfo_unavail  ignore_unknown_user
  
 
kommenteerime kõik muud read vastavalt teiste teenuste pam konfidesse, /etc/pam.d all tuleb lisada samad read, kui huvi ka neid saada ldap’ilt auth’ima, nagu ftp imap jms
 
kommenteerime kõik muud read vastavalt teiste teenuste pam konfidesse, /etc/pam.d all tuleb lisada samad read, kui huvi ka neid saada ldap’ilt auth’ima, nagu ftp imap jms
219. rida: 276. rida:
 
viimane rida näitab, et tuleks luua ka serverisse kodukataloog userile ning see nfs’i abil jagada kliendile :)
 
viimane rida näitab, et tuleks luua ka serverisse kodukataloog userile ning see nfs’i abil jagada kliendile :)
  
===Linux ldap klient===
+
===Linux poolne autentimine===
  
Installida tuleb samad paketid nagu nss_ldap ja pam ldap
+
Installida tuleb samad paketid miss FreeBSD's ehk nss_ldap ja pam ldap
  
/etc/lpdap.conf'i kasutame sama, mis bsd'l
+
/etc/lpdap.conf'i võib jääda samaks mis oli BSD näiteks
  
 
pam'i konfimiseks kirjutame faili
 
pam'i konfimiseks kirjutame faili
252. rida: 309. rida:
 
===Haldusvahendid===
 
===Haldusvahendid===
  
Enda serveri lokaalsete kasutajate ldap’i viimiseks vajalikud skriptid saab http://www.padl.com/OSS/MigrationTools.html Ühtteist saab veel teha näiteks automount ja samba http://www.idealx.org/prj/samba/samba-ldap-howto.pdf ning veebiliides muretseda. Viimaseid on mitmeid kirjutatud, aga alati võib ka ise midagi nokitseda http://ee.php.net/manual/en/ref.ldap.php
+
Enda serveri lokaalsete kasutajate ldap’i viimiseks vajalikud skriptid saab http://www.padl.com/OSS/MigrationTools.html Ühtteist saab veel teha näiteks automount ja samba http://www.idealx.org/prj/samba/samba-ldap-howto.pdf ning veebiliides muretseda. Viimaseid on mitmeid kirjutatud.
  
 
Lisaks veel … Yet Another Passwd 2 LDIF Converter http://freshmeat.net/projects/yap2lc/?topic_id=861
 
Lisaks veel … Yet Another Passwd 2 LDIF Converter http://freshmeat.net/projects/yap2lc/?topic_id=861
260. rida: 317. rida:
 
Kasutajate administreerimiseks http://cpu.sourceforge.net/
 
Kasutajate administreerimiseks http://cpu.sourceforge.net/
  
Muidugi ka http://phpldapadmin.sourceforge.net
+
===Veebi haldusliides phpldapadmin===
 +
 
 +
Kättesaadav urlitlt http://phpldapadmin.sourceforge.net
 +
 
 +
Phpldapadmini sisselogimiseks kasutaja "cn=Manager,dc=test,dc=org" ja parooliks see mis sai eelnevalt slapd.confi  defineeritud
 +
 
 +
Uue kasutaja loomiseks tuleb seal vajutada ou=Peolpe peale, valida create a child entry, generic: unix accout ja täita väljad, paljusid neist soovitab veebiliides seejuures juba ise automaatselt.
  
Phpldapadmini sisselogimiseks kasutaja "cn=Manager,dc=test,dc=org" ja parooliks see mis sai eelnevalt defineeritud
+
[[Pilt:Snapldap.jpg]]
  
 
===Ldap ja Apache===
 
===Ldap ja Apache===
275. rida: 338. rida:
 
  ssl start_tls
 
  ssl start_tls
 
  tls_checkpeer no
 
  tls_checkpeer no
  suffix          "dc=domeen,dc=ee"
+
  suffix          "dc=myserver,dc=org"
 
  host 192.168.1.100
 
  host 192.168.1.100
 
  base dc=domeen,tdc=ee
 
  base dc=domeen,tdc=ee
 
  ldap_version 3
 
  ldap_version 3
 
  pam_password SSHA
 
  pam_password SSHA
  nss_base_passwd ou=people,dc=domeen,dc=ee?sub
+
  nss_base_passwd ou=people,dc=myserver,dc=com?sub
  nss_base_group ou=groups,dc=domeen,dc=ee?sub
+
  nss_base_group ou=groups,dc=myserver,dc=com?sub
  
 
installime peale ka pam_ldap mooduli
 
installime peale ka pam_ldap mooduli
308. rida: 371. rida:
 
  httpd    account    required    /usr/local/lib/pam_lda
 
  httpd    account    required    /usr/local/lib/pam_lda
  
===Ldap ja db uuendamine===
+
===OpenLDAP admin parooli vahetamine===
 +
 
 +
Uue parooli tekitamine käib käsuga
 +
 
 +
# slappasswd
 +
siia-mingi-krüptiline-parool
 +
 
 +
Vastuseks tuleb miskit taolist
 +
{SSHA}nEBrMjBpjElc7tpxN0YUZyBHkvxs6hO7
 +
 
 +
Edasi tekitad tekstifaili, newpasswd.ldif, kus sees
 +
 
 +
dn: olcDatabase={1}hdb,cn=config
 +
changetype: modify
 +
replace: olcRootPW
 +
olcRootPW: {SSHA}nEBrMjBpjElc7tpxN0YUZyBHkvxs6hO7
 +
 
 +
Seejuures vaata et õige baas ja PW sinna saaks! Ja siis lõpuks
 +
 
 +
# ldapmodify -H ldapi:// -Y EXTERNAL -f ~/newpasswd.ldif
 +
 
 +
See "-Y EXTERNAL" tähendab, et autenditakse väljaspool ldapi, ehk pead olema root.
 +
 
 +
===Ldapi Berkeley db remont===
  
 
Kasutades dbd backendit võib selle uuendamisel ldap mitte enam toimida
 
Kasutades dbd backendit võib selle uuendamisel ldap mitte enam toimida
315. rida: 401. rida:
 
  db4.5_recover -v -h /var/lib/openldap-data/
 
  db4.5_recover -v -h /var/lib/openldap-data/
 
  chown -R ldap\: /var/lib/openldap-data/
 
  chown -R ldap\: /var/lib/openldap-data/
 +
 +
===Logi ja debug===
 +
 +
Logilevelite kohta ütleb man järgmist
 +
 +
man slapd.conf
 +
...
 +
        loglevel <integer>
 +
              Specify the level at which debugging statements and
 +
              operation statistics should be syslogged (currently
 +
              logged to the syslogd(8) LOG_LOCAL4 facility).  Log
 +
              levels are additive, and available levels are:
 +
                      1      trace function calls
 +
                      2      debug packet handling
 +
                      4      heavy trace debugging
 +
                      8      connection management
 +
                      16    print out packets sent and received
 +
                      32    search filter processing
 +
                      64    configuration file processing
 +
                      128    access control list processing
 +
                      256    stats                            log
 +
                              connections/operations/results
 +
                      512    stats log entries sent
 +
                      1024  print  communication  with  shell
 +
                              backends
 +
                      2048  entry parsing
 +
 +
syslog seadistus võiks olla järgnev /etc/syslog.conf
 +
 +
local4.* /var/log/ldap.log
 +
 +
Selleks, et ldap hakkaks logima nimetatud faili on vajalik teha veel restart syslogile
 +
 +
===Berkeley Db tuunimine===
 +
 +
Kasutades berkeley db'd on soovitatav andmebaasi asukohta (käesoleval juhul /var/db/openldap-data)
 +
tekitada DB_CONFIG fail. http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/env_db_config.html
 +
 +
näiteks
 +
 +
set_cachesize 0 8388608 8
 +
set_lg_regionmax 1048576
 +
set_lg_bsize 2097152
 +
 +
===PHP abil ldap kasutamine===
 +
 +
Alati võib ka ise midagi nokitseda abiks manual lingil http://ee.php.net/manual/en/ref.ldap.php
 +
 +
Vajalik on, et eelnevalt php kompileeritaks ldap toega
 +
 +
Ühenduse loomine
 +
 +
<source lang=php>
 +
<?php
 +
    $ldapHost = "192.168.1.11";
 +
        $ldapPort = "389";
 +
    $ldapUser ="cn=Manager,dc=myserver,dc=com";
 +
    $ldapPswd ="parool";
 +
 +
$ldapLink =ldap_connect($ldapHost, $ldapPort)
 +
    or die("Can't establish LDAP connection");
 +
 +
if (ldap_set_option($ldapLink,LDAP_OPT_PROTOCOL_VERSION,3))
 +
{
 +
    echo "Using LDAP v3";
 +
}else{
 +
    echo "Failed to set version to protocol 3";
 +
}
 +
 +
ldap_bind($ldapLink,$ldapUser,$ldapPswd)
 +
    or die("Can't bind to server.");
 +
?>
 +
</source>
 +
 +
Käivitamise järel peaks skript teatama
 +
 +
Using LDAP v3
 +
 +
Kasutajate nimekiri
 +
 +
<source lang=php>
 +
<?php
 +
    $dn = " ou=People,dc=myserver,dc=com";
 +
    $attributes = array("cn", "Sn");
 +
    $filter = "(cn=*)";
 +
    $ad = ldap_connect("193.40.0.61")
 +
          or die("Couldn't connect to AD!");
 +
 +
    ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
 +
 +
    $bd = ldap_bind($ad,"cn=Manager,dc=myserver,dc=com","parool")
 +
          or die("Couldn't bind to AD!");
 +
 +
    $result = ldap_search($ad, $dn, $filter, $attributes);
 +
 +
    $entries = ldap_get_entries($ad, $result);
 +
 +
    for ($i=0; $i<$entries["count"]; $i++)
 +
    {
 +
        echo $entries[$i]["cn"]
 +
            [0]."<br />";
 +
    }
 +
 +
    ldap_unbind($ad);
 +
 +
?>
 +
</source>
 +
 +
Kasutaja lisamine
 +
 +
<source lang=php>
 +
<?php
 +
    $ad = ldap_connect("193.40.0.61")
 +
          or die("Couldn't connect to server!");
 +
 +
    ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
 +
 +
    $bd = ldap_bind($ad,"cn=Manager,dc=myserver,dc=com","parool")
 +
          or die("Couldn't bind to AD!");
 +
 +
    $info["cn"] = "John Jones";
 +
    $info["sn"] = "Jones";
 +
 +
    $info["objectClass"][0] = "top";
 +
    $info["objectClass"][1] = "person";
 +
    $info["objectClass"][2] = "posixAccount";
 +
    $info["objectClass"][3] = "shadowAccount";
 +
 +
    $info["uid"] = "testuser";
 +
    $info["userpassword"] = "{SSHA}wU0T6ixZb9sU2+JTK8Au8sq7noNfMkbv";
 +
    $info["uidnumber"] = "1002";
 +
    $info["gidnumber"] = "1002";
 +
 +
    $info["gecos"] = "TestUser";
 +
    $info["loginShell"] = "/bin/csh";
 +
    $info["homeDirectory"] = "/home/test2";
 +
 +
    $bd = ldap_add($ad, "cn=Jobukakk7, ou=People, dc=myserver, dc=com", $info);
 +
 +
    ldap_unbind($ad);
 +
?>
 +
</source>
 +
 +
===FreeBSD süsteemis Lpdaps kasutamine===
 +
 +
$ ldapsearch -H ldaps://
 +
 +
/usr/local/etc/openldap/ldap.conf faili on vaja lisada rida
 +
 +
TLS_REQCERT never
 +
 +
või teise parameetriga (allow)
 +
 +
Ilma võib süsteem anda järgmise vea:
 +
 +
"ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)"
  
 
===Kasulikud lisamaterjalid===
 
===Kasulikud lisamaterjalid===
  
* http://www.cultdeadsheep.org/FreeBSD/docs/Quick_and_dirty_FreeBSD_5_x_and_nss_ldap_mini-HOWTO.html Originaalselt kasutatud selle pala kirjutamise juures
 
 
* http://kuutorvaja.eenet.ee/wiki/OpenLDAP_kasutamine_Debianiga
 
* http://kuutorvaja.eenet.ee/wiki/OpenLDAP_kasutamine_Debianiga
 
* http://www.gentoo.org/doc/en/ldap-howto.xml Ldap ja Gentoo
 
* http://www.gentoo.org/doc/en/ldap-howto.xml Ldap ja Gentoo
 +
* http://www.openldap.org/pub/ksoper/OpenLDAP_TLS.html
 +
* http://quark.humbug.org.au/publications/ldap/ldap_tut.html
 +
* http://www.flatmtn.com/article/setting-ldap-back-sql bdb asemel sql

Viimane redaktsioon: 1. detsember 2016, kell 16:23

Sissejuhatus

(Lightweight Directory Access Protocol) http://www.openldap.org/ on Michigani Ülikooli (University of Michigan) poolt välja töötatud kataloogiteenuse protokoll asendamaks X.500 DAP (Directory Access Protocol) protokolli. Süsteemis pakub ta võimalust ühe teenuse piires hoida ning väljastada mitmesugust kasutajakontode kohta käivat infot. Näiteks hoida lisaks kasutaja paroolile ja nimele veel tema kontaktandmeid, samba parooli jms. Samuti saab ldap’i hästi kasutada kui on mitu serverit (mail, www, samba, terminaliserver) ning oleks vaja, et samad kasutajad eksisteeriksid kõigis neis serverites. Käesolev näide sobibki sellise lahenduse loomiseks kõige paremini :)

Käesolevas õpetuses vaatleme kuidas kasutajate infot hoida ldap serveris

Selleks serverisse järgneva puukujulise struktuuri

dc:         com
             |
dc:        myserver         (Organisation)
          /      \
ou:   People   Groups    (Organisational Units, nö grupp kus hoitakse vajalikku infot)
      /    \     .. \
uid: ..   Ants      test      (OU-spetsiifiline data ehk kasutajad - grupid)
  • Base DN: dc=myserver,dc=com
  • Users: dc=myserver,dc=com,ou=People
  • Groups: dc=myserver,dc=com,ou=Groups

Ehk tekitame DC myserver,com mis hoiab endas kahte OUd (organisatsional unitit) People ja Groups, millest ühte salvestame kasutajate info ja teise grupiinfo, alternatiivina Linuxi shadow ja group failidele

Serveri install ja seadistus

Installime openldap serveri

FreeBSDs käib see järgnevalt

cd /usr/ports/net/openldap24-server && make install

Süsteemi paigaldatakse ka berkeley db, mida openldab defauldis kasutab, kuid on võimalik seada see tööle ka nö näiteks postgresql peal.

genereerime serverile parooli, mille seadistame hiljem konfiguratsioonis rootpw reale

 # slappasswd -s parool
{SSHA}nPKG3qbPABkp21aTBZV2IpbcGUHLi3a2

liigume /usr/local/etc/openldap või linuxi puhul /etc/openldap ning avame faili slapd.conf, muudame seda vastavalt allolevale näitele

include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/nis.schema

pidfile         /var/run/ldap/slapd.pid
argsfile        /var/run/ldap/slapd.args
database        bdb
suffix          "dc=myserver,dc=com"
rootdn          "cn=Manager,dc=myserver,dc=org"
rootpw          {SSHA}nPKG3qbPABkp21aTBZV2IpbcGUHLi3a2
directory       /var/db/openldap-data
index           objectClass     eq
index           uid             pres,eq,sub

Selleks, et infovahetus toimuks krüpteeritult, genereerime võtmed ja lisame konfi lõppu veel järgnevad read

# Define SSL and TLS properties (optional)
TLSCertificateFile /etc/ssl/ldap.pem
TLSCertificateKeyFile /etc/openldap/ssl/ldap.pem
TLSCACertificateFile /etc/ssl/ldap.pem

Aga selleks, et kliendid saaksid anonüümselt audentida vastu ldap serverit, kuid mitte lugeda krütpeeritud paroole, aitavad read

access to attrs=userPassword
       by self write
       by anonymous auth
       by * none
access to *
       by * read

natuke failiõigusi paika, turvalisuse huvides

chmod 440 /usr/local/etc/openldap/slapd.conf
chown ldap:ldap /usr/local/etc/openldap/slapd.conf
chown -R ldap:ldap /var/db/openldap*

Et slapd käivituks peale serveri booti lisame /etc/rc.conf’i

slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"

Peale rebooti peaks ldap kuulama 389 pordil, seda võib sockstat/netstat abil täiendavalt kontrollida

LDAP serverisse algstruktuuri tekitamine ja kasutajate lisamine

loome esimesena info.ldiff millega paneme paika kogu struktuuri

dn: ou=Groups,dc=myserver,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Groups

dn: ou=People,dc=myserver,dc=com
objectClass: organizationalUnit
objectClass: top
ou: People

Teeme failist eksportimise serverisse

# ldapadd -x -D "cn=Manager,dc=myserver,dc=com" -W -f info.ldiff
Enter LDAP Password:                                                  
adding new entry "ou=Groups,dc=myserver,dc=com"                       

adding new entry "ou=People,dc=myserver,dc=com"

Kaks uute userite lisamise template’t. Slappadd’ga saab nende failide abil ldap’i kasutajad testuser ja testuser2. Hiljem võib kirjutada näiteks shellskripti, mis parameetritena võtab kasutaja parooli ja grupi ning loob automaatselt kodukatalooma ja genereerb slappasswd’ga parooli automaatselt

Kasutaja mille tekitamine info on:

cn=StupidTest User
dn	cn=StupidTest User,ou=People,dc=myserver,dc=com
cn	StupidTest User
gecos	Niisama ldap user
gidNumber	1000
homeDirectory	/home/test
loginShell	/bin/csh
User Name	testuser
uidNumber	1000
Password	parool

Selleks tekitame fiali testuser.ldiff millesse lisame järgneva info

# kasutaja info People's OU'sse
dn: cn=StupidTest User, ou=People, dc=myserver, dc=org
cn: StupidTest User
sn: Dummy
objectclass: top
objectclass: person
objectclass: posixAccount
objectclass: shadowAccount
uid:testuser
userpassword:{SSHA}GmbwsRvJugoiT5NIIJ2bk+5YVfWMUVa1
uidnumber:1000
gidnumber:1000
gecos:Niisama ldap user
loginShell:/bin/bash
homeDirectory: /home/test

# grupi info Groups OU'sse
dn: cn=test, ou=Groups, dc=myserver, dc=org
objectclass: top
objectclass: posixGroup
cn: test
gidnumber: 1000
memberuid: test

Lisame info ldap serverisse

# ldapadd -x -D "cn=Manager,dc=myserver,dc=com" -W -f testuser.ldiff
Enter LDAP Password:
adding new entry "cn=StupidTest User, ou=People, dc=myserver, dc=com"

adding new entry "cn=test, ou=Groups, dc=myserver, dc=com"'

Kui vaatame nüüd phpldamadminiga struktuuri näeb see välja järgnev

Ldapstruktuur.png

Loome veel ka teise kasutaja, tekitame selleks faili testuser2.ldiff

dn: cn=StupidTest User2, ou=people, dc=myserver, dc=org
cn: StupidTest User2
sn: Dummy
objectclass: top
objectclass: person
objectclass: posixAccount
objectclass: shadowAccount
uid:testuser2
userpassword:{SSHA}wU0T6ixZb9sU2+JTK8Au8sq7noNfMkbv
uidnumber:1001
gidnumber:1001
gecos:TestUser
loginShell:/bin/csh
homeDirectory: /home/test2 
dn: cn=test2, ou=groups, dc=test, dc=org
objectclass: top
objectclass: posixGroup
cn: test2
gidnumber: 1001
memberuid: test2
# ldapadd -x -D "cn=Manager,dc=myserver,dc=com" -W -f testuser2.ldiff
Enter LDAP Password:                                                  
adding new entry "ou=Groups,dc=myserver,dc=com"                       

adding new entry "ou=People,dc=myserver,dc=com"

Nüüd on meil kaks posix kasutajat ja gruppi, järgnevalt vaatame kuidas need kasutajad autentima panna

Kasutaja leidmine käsureal

ldapsearch -x -H ldapi:/// -D "cn=admin,dc=zoo,dc=tartu,dc=ee" -W -b "dc=zoo,dc=tartu,dc=ee" uid=otsitav_kasutaja

Kasutaja kustutamine

ldapdelete -x -H ldapi:/// -D "cn=admin,dc=zoo,dc=tartu,dc=ee"  -w ldap_admini_parool "uid=kasutaja_kes_maha,ou=people,dc=zoo,dc=tartu,dc=ee"

FreeBSD poolne autentimine

http://www.freebsd.org/doc/en/articles/ldap-auth/article.html

Installime nss_ldap ja pam_ldap softi, sellekäigus paigutatakse süsteemi ka openldap-client

cd /usr/ports/net/nss_ldap && make install clean
cd /usr/ports/security/pam_ldap/ && make install

lisame /etc/pam.d/ldap faili FreeBSD 5.x või kõrgema puhul ja /etc/pam.conf FreeBSD 4.x süsteemis rea

login   auth    sufficient      /usr/local/lib/pam_ldap.so

lähme /usr/local/etc ning nimetame nss_ldap.conf.sample nss_ldap.conf loome sellest softlingi ldap.conf’ile

ln -s /usr/local/etc/ldap.conf /usr/local/etc/nss_ldap.conf

kirjutame ldap.conf’i

ssl start_tls
tls_checkpeer no
ldap_version 3
host 192.168.1.1 <- siia siis ldap serveri ip
suffix          "dc=myserver,dc=org"
nss_base_passwd ou=People,dc=myserver,dc=org?sub
nss_base_group ou=Group,dc=myserver,dc=org?sub 
nss_base_shadow ou=people,dc=myserver,dc=org?sub

BASE    dc=myserver, dc=org
scope sub

pam_password exop
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_member_attribute memberuid


avame faili /etc/nsswitch.conf ning kirjutame sinna

passwd:  files ldap
group:   files ldap

nüüd kirjutame /etc/pam.d/sshd konfi

auth            required        pam_nologin.so          no_warn
auth            sufficient      pam_opie.so             no_warn no_fake_prompts
auth            requisite       pam_opieaccess.so       no_warn allow_local
auth            sufficient      /usr/local/lib/pam_ldap.so      no_warn
auth            required        pam_unix.so             no_warn try_first_pass

 account         required        pam_login_access.so
account         required        /usr/local/lib/pam_ldap.so      no_warn ignore_authinfo_unavail  ignore_unknown_user

kommenteerime kõik muud read vastavalt teiste teenuste pam konfidesse, /etc/pam.d all tuleb lisada samad read, kui huvi ka neid saada ldap’ilt auth’ima, nagu ftp imap jms

# id testuser
uid=1000(testuser) gid=1000 groups=1000
# id testuser2
uid=1001(testuser2) gid=1001 groups=1001
# finger testuser
Login: testuser                         Name: Niisama ldap user
Directory: /home/test                   Shell: /bin/csh
Never logged in.
No Mail.
No Plan.
# ssh testuser2@localhost
Password:
Last login: Tue May 31 14:54:12 2005 from localhost
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
       The Regents of the University of California.  All rights reserved.

FreeBSD 5.4-RELEASE (GENERIC) #0: Sun May  8 10:21:06 UTC 2005
Welcome to FreeBSD!
Could not chdir to home directory /home/test2: No such file or directory

viimane rida näitab, et tuleks luua ka serverisse kodukataloog userile ning see nfs’i abil jagada kliendile :)

Linux poolne autentimine

Installida tuleb samad paketid miss FreeBSD's ehk nss_ldap ja pam ldap

/etc/lpdap.conf'i võib jääda samaks mis oli BSD näiteks

pam'i konfimiseks kirjutame faili

/etc/pam.d/system-auth

read

auth    required    pam_env.so
auth    sufficient  pam_unix.so likeauth nullok shadow
auth    sufficient  pam_ldap.so use_first_pass
auth    required    pam_deny.so

account requisite  pam_unix.so
account sufficient pam_localuser.so
account required   pam_ldap.so

password    required pam_cracklib.so retry=3
password    sufficient pam_unix.so nullok use_authtok shadow md5 plain
password    sufficient pam_ldap.so use_authtok use_first_pass
password    required pam_deny.so

session required    pam_limits.so
session required    pam_unix.so
session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066
session optional    pam_ldap.so

Haldusvahendid

Enda serveri lokaalsete kasutajate ldap’i viimiseks vajalikud skriptid saab http://www.padl.com/OSS/MigrationTools.html Ühtteist saab veel teha näiteks automount ja samba http://www.idealx.org/prj/samba/samba-ldap-howto.pdf ning veebiliides muretseda. Viimaseid on mitmeid kirjutatud.

Lisaks veel … Yet Another Passwd 2 LDIF Converter http://freshmeat.net/projects/yap2lc/?topic_id=861

Web-based password changing cgi script for LDAP-based user databases http://www.cloudmaster.com/~sauer/projects/fom-files/cache/90.html

Kasutajate administreerimiseks http://cpu.sourceforge.net/

Veebi haldusliides phpldapadmin

Kättesaadav urlitlt http://phpldapadmin.sourceforge.net

Phpldapadmini sisselogimiseks kasutaja "cn=Manager,dc=test,dc=org" ja parooliks see mis sai eelnevalt slapd.confi defineeritud

Uue kasutaja loomiseks tuleb seal vajutada ou=Peolpe peale, valida create a child entry, generic: unix accout ja täita väljad, paljusid neist soovitab veebiliides seejuures juba ise automaatselt.

Snapldap.jpg

Ldap ja Apache

htaccess vastu ldap'i audentima leidsin kõige lollikindlam panna vastu pam'i mis omakorda ldap külge ehk siis kuigi apachel on tore moodul auth_ldap teatas minu ldap server ,et kasutagem ldapv3 mitte mingit iidset protokolli. Apachet saab ka muidugi ldap'i toega kompileerida.

loomulikult siis tehtud bsd peal aga peaks toimima ka linuxil täpselt samuti. Apache 222 puhul võib olla kõik veel omasoodu erinev. ldap.conf

ssl start_tls
tls_checkpeer no
suffix          "dc=myserver,dc=org"
host 192.168.1.100
base dc=domeen,tdc=ee
ldap_version 3
pam_password SSHA
nss_base_passwd ou=people,dc=myserver,dc=com?sub
nss_base_group ou=groups,dc=myserver,dc=com?sub

installime peale ka pam_ldap mooduli

portsude alt make mod_auth_pam'ile ja apache's read lisada

LoadModule auth_pam_module    libexec/apache2/mod_auth_pam.so
LoadModule auth_sys_group_module libexec/apache2/mod_auth_sys_group.so


/etc/pam.d alla tekitasin faili httpd kuhu kirjutasin read

auth            sufficient      /usr/local/lib/pam_ldap.so no_warn try_first_pass
auth            required        pam_unix.so             no_warn try_first_pass

ja siis lihtsalt .htaccess vajalikku kohta näiteks

AuthType Basic
AuthName "secure area"
require user kasutaja

FreeBSD 4.x korral tuleb muuta faili /etc/pam.conf lisades sinna

httpd    auth       required     /usr/local/lib/pam_ldap.so
httpd    account    required     /usr/local/lib/pam_lda

OpenLDAP admin parooli vahetamine

Uue parooli tekitamine käib käsuga

# slappasswd
siia-mingi-krüptiline-parool

Vastuseks tuleb miskit taolist

{SSHA}nEBrMjBpjElc7tpxN0YUZyBHkvxs6hO7

Edasi tekitad tekstifaili, newpasswd.ldif, kus sees

dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}nEBrMjBpjElc7tpxN0YUZyBHkvxs6hO7

Seejuures vaata et õige baas ja PW sinna saaks! Ja siis lõpuks

# ldapmodify -H ldapi:// -Y EXTERNAL -f ~/newpasswd.ldif

See "-Y EXTERNAL" tähendab, et autenditakse väljaspool ldapi, ehk pead olema root.

Ldapi Berkeley db remont

Kasutades dbd backendit võib selle uuendamisel ldap mitte enam toimida selljuhul aitab näiteks

db4.5_recover -v -h /var/lib/openldap-data/
chown -R ldap\: /var/lib/openldap-data/

Logi ja debug

Logilevelite kohta ütleb man järgmist

man slapd.conf
...
       loglevel <integer>
              Specify the level at which debugging statements and
              operation statistics should be syslogged (currently
              logged to the syslogd(8) LOG_LOCAL4 facility).  Log
              levels are additive, and available levels are:
                      1      trace function calls
                      2      debug packet handling
                      4      heavy trace debugging
                      8      connection management
                      16     print out packets sent and received
                      32     search filter processing
                      64     configuration file processing
                      128    access control list processing
                      256    stats                            log
                             connections/operations/results
                      512    stats log entries sent
                      1024   print   communication   with   shell
                             backends
                      2048   entry parsing

syslog seadistus võiks olla järgnev /etc/syslog.conf

local4.*						/var/log/ldap.log

Selleks, et ldap hakkaks logima nimetatud faili on vajalik teha veel restart syslogile

Berkeley Db tuunimine

Kasutades berkeley db'd on soovitatav andmebaasi asukohta (käesoleval juhul /var/db/openldap-data) tekitada DB_CONFIG fail. http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/env_db_config.html

näiteks

set_cachesize 0 8388608 8
set_lg_regionmax 1048576
set_lg_bsize 2097152

PHP abil ldap kasutamine

Alati võib ka ise midagi nokitseda abiks manual lingil http://ee.php.net/manual/en/ref.ldap.php

Vajalik on, et eelnevalt php kompileeritaks ldap toega

Ühenduse loomine

 <?php
     $ldapHost = "192.168.1.11";
         $ldapPort = "389";
     $ldapUser ="cn=Manager,dc=myserver,dc=com";
     $ldapPswd ="parool";
 
 $ldapLink =ldap_connect($ldapHost, $ldapPort)
     or die("Can't establish LDAP connection");
 
 if (ldap_set_option($ldapLink,LDAP_OPT_PROTOCOL_VERSION,3))
 {
     echo "Using LDAP v3";
 }else{
     echo "Failed to set version to protocol 3";
 }
 
 ldap_bind($ldapLink,$ldapUser,$ldapPswd)
     or die("Can't bind to server.");
 ?>

Käivitamise järel peaks skript teatama

Using LDAP v3

Kasutajate nimekiri

 <?php
    $dn = " ou=People,dc=myserver,dc=com";
    $attributes = array("cn", "Sn");
    $filter = "(cn=*)";
    $ad = ldap_connect("193.40.0.61")
          or die("Couldn't connect to AD!");
 
    ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
 
    $bd = ldap_bind($ad,"cn=Manager,dc=myserver,dc=com","parool")
          or die("Couldn't bind to AD!");
 
    $result = ldap_search($ad, $dn, $filter, $attributes);
 
    $entries = ldap_get_entries($ad, $result);
 
    for ($i=0; $i<$entries["count"]; $i++)
    {
        echo $entries[$i]["cn"]
             [0]."<br />";
    }
 
    ldap_unbind($ad);
 
 ?>

Kasutaja lisamine

 <?php
    $ad = ldap_connect("193.40.0.61")
          or die("Couldn't connect to server!");
 
    ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
 
    $bd = ldap_bind($ad,"cn=Manager,dc=myserver,dc=com","parool")
          or die("Couldn't bind to AD!");
 
    $info["cn"] = "John Jones";
    $info["sn"] = "Jones";
 
    $info["objectClass"][0] = "top";
    $info["objectClass"][1] = "person";
    $info["objectClass"][2] = "posixAccount";
    $info["objectClass"][3] = "shadowAccount";
 
    $info["uid"] = "testuser";
    $info["userpassword"] = "{SSHA}wU0T6ixZb9sU2+JTK8Au8sq7noNfMkbv";
    $info["uidnumber"] = "1002";
    $info["gidnumber"] = "1002";
 
    $info["gecos"] = "TestUser";
    $info["loginShell"] = "/bin/csh";
    $info["homeDirectory"] = "/home/test2";
 
    $bd = ldap_add($ad, "cn=Jobukakk7, ou=People, dc=myserver, dc=com", $info);
 
    ldap_unbind($ad);
 ?>

FreeBSD süsteemis Lpdaps kasutamine

$ ldapsearch -H ldaps://

/usr/local/etc/openldap/ldap.conf faili on vaja lisada rida

TLS_REQCERT never

või teise parameetriga (allow)

Ilma võib süsteem anda järgmise vea:

"ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)"

Kasulikud lisamaterjalid