OpenLDAP-i seadistamine: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kmolder (talk | contribs)
Kmolder (talk | contribs)
 
(19 intermediate revisions by 2 users not shown)
Line 4: Line 4:


=Sissejuhatus=
=Sissejuhatus=
LDAP (Lightweight Directory Access Protocol) on iseenesest protokoll ning üks selle prokolli implementatsioon on OpenLDAP http://www.openldap.org/, mis sisaldab üldiselt nelja komponenti
LDAP (Lightweight Directory Access Protocol) on iseenesest protokoll ning üks selle prokolli implementatsioon on OpenLDAP (http://www.openldap.org/), mis sisaldab üldiselt nelja komponenti:


     * slapd - stand-alone LDAP daemon (server)
     * slapd - stand-alone LDAP daemon (server)
Line 13: Line 13:
OpenLDAP kasutamise muudab praktiliseks asjaolu, et ta on üsna paljude rakendustega (nt PAM) integreeritud ning OpenLDAP kasutamiseks on vajalikud teegid olemas mitmetes programmeerimiskeeltes (nt Java, Perl, PHP). OpenLDAP toetab suures ulatuses LDAP v2 ja v3 versioone; võimaldab andmevahetust üle TLS/SSL.
OpenLDAP kasutamise muudab praktiliseks asjaolu, et ta on üsna paljude rakendustega (nt PAM) integreeritud ning OpenLDAP kasutamiseks on vajalikud teegid olemas mitmetes programmeerimiskeeltes (nt Java, Perl, PHP). OpenLDAP toetab suures ulatuses LDAP v2 ja v3 versioone; võimaldab andmevahetust üle TLS/SSL.


Antud wiki artiklis saab ülevaate LDAP-i installeerimisest ja seadistamisest.
Antud wiki artiklis saab ülevaate LDAP-i (OpenLDAP ver: 2.4.9) installeerimisest ja seadistamisest.
Töötavat LDAP'i testitakse SAMBA peal, seega saame väikse ülevaate ka selle instaleerimisest ja seadistamisest LDAP'i jaoks.
Töötavat LDAP-i testitakse SAMBA (Samba ver: 3.0.28a) peal, seega saame väikse ülevaate ka selle paigaldamisest ja seadistamisest LDAP-i jaoks.


=Eeldused=
=Eeldused=
*Töötav UbuntuServer 9.4LTS(testitud) LDAP-i serveriks.
*Antud lahendus on testitud <span style="color:#FF0000"> '''Ubuntu 8.04 LTS Serveril.''' </span>
*Testimiseks veel Kliendi masin.
*Testimiseks kliendi masin, millele on paigaldatud Samba klient ja ldap-utils. Antud lahendust on võimalik testida ka serverist endast ''localhost''-i vastu.


=Nõuded=
=Nõuded=
Seadistamiseks ei pea olema geenius, aga sellest on abi!
Ülesanne on LDAP-i paigaldamine ning seadistamine OpenLDAP-i näitel.


Testimiseks pidime vabalt valima mingi teenuse, mida LDAP-i vastu autentima panna. Otsustasime Samba seadistamise kasuks.
Kindlasti peame koostama taastamis- ja varundamisjuhendi.


=Installeerimine=
=Installeerimine=
Esiteks tuleks tarkvara nimekirja uuendada.
<pre>sudo apt-get update</pre>
Logime ennast root kasutajaks ning käivitame vajalikud toimingud. Kuna sudo-t sel juhul enam vaja ei lähe, hoiad selle arvelt pisut aega kokku. Samas on aga tunduvalt lihtsam midagi ära rikkuda, sest KÕIK käsud käivitatakse root kasutaja õigustes!
Logime ennast root kasutajaks ning käivitame vajalikud toimingud. Kuna sudo-t sel juhul enam vaja ei lähe, hoiad selle arvelt pisut aega kokku. Samas on aga tunduvalt lihtsam midagi ära rikkuda, sest KÕIK käsud käivitatakse root kasutaja õigustes!
<pre>sudo -i</pre>
<pre>sudo -i</pre>
Esiteks tuleks tarkvara nimekirja uuendada.
<pre>apt-get update</pre>


Paigaldame slapd, ldap-utils ja migrationtools paketid.
Paigaldame slapd, ldap-utils ja migrationtools paketid.
<pre>apt-get install slapd ldap-utils migrationtools</pre>
<pre>apt-get install slapd ldap-utils migrationtools</pre>
slapd installi ajal sisestatud LDAP admini parool: 'root' (hiljem kirjutatakse see dpkg-reconfigure' ajal üle)
slapd installi ajal sisestatud LDAP admini parool: 'root' (hiljem kirjutatakse see dpkg-reconfigure' ajal üle)
*ldap-utils - sisaldab ütiliite LDAP kataloogiga suhtlemiseks, nt ldapsearch päringute tegemiseks; 'dpkg -L ldap-utils | grep bin' näitab programmide nimekirja, reeglina algavad nende nimed 'ldap*' järgnevusega
*ldap-utils - sisaldab utiliite LDAP kataloogiga suhtlemiseks, nt ldapsearch päringute tegemiseks; 'dpkg -L ldap-utils | grep bin' näitab programmide nimekirja, reeglina algavad nende nimed 'ldap*' järgnevusega
*slapd - sisaldab OpenLDAP serverit ning utiliite LDAP kataloogile vastavate failidega tegelemiseks, nt slapcat esitab kogu kataloogi sisu nn ldif formaadis; 'dpkg -L slapd | grep bin' esitab programmide nimekirja, reeglina algavad nimed 'slap*' järgnevusega
*slapd - sisaldab OpenLDAP serverit ning utiliite LDAP kataloogile vastavate failidega tegelemiseks, nt slapcat esitab kogu kataloogi sisu nn ldif formaadis; 'dpkg -L slapd | grep bin' esitab programmide nimekirja, reeglina algavad nimed 'slap*' järgnevusega


=Seadistamine=
=Seadistamine=
Answer the questions and then reconfigure slapd in order to have dpkg ask us a few more questions
Käivita slapd seadistamine ning vasta küsimustele all toodud näite põhjal.
<pre>
<pre>
dpkg-reconfigure slapd
dpkg-reconfigure slapd
</pre>
</pre>
Vastused mida võiks vastata:
Vastused, mida võiks vastata:
<pre>
<pre>
Omit OpenLDAP server configuration? No
Omit OpenLDAP server configuration? No
DNS domain name: ... debuntu.local
DNS domain name: ... infra2009.debuntu
Name of your organization: ITK
Name of your organization: ITK
Admin Password: 'root2'
Admin Password: 'root'
Confirm Password: 'root2'
Confirm Password: 'root'
Database backend to use: BDB
Database backend to use: BDB
Do you want your database to be removed when slapd is purged?: No
Do you want your database to be removed when slapd is purged?: No
Line 65: Line 68:
[[image:Reconfigure_slapd9.JPG|200px|step9]]
[[image:Reconfigure_slapd9.JPG|200px|step9]]


Nüüd on meie domeen ning ka kasutaja "admin"(administraator) loodud.


Nüüd testi kas pääsed LDAP'i serverile ligi:
Nüüd on esialgne seadistus tulevasele kataloogipuule tehtud. Loodud on ka kasutaja "admin"(administraator).
 
Kohandame /etc/ldap/ldap.conf faili meie süsteemi jaoks.
Selleks ava fail:
<pre>
<pre>
ldapsearch -x -b dc=infra2009,dc=teenused
nano /etc/ldap/ldap.conf
</pre>
Ja muuda järgnevalt:
<pre>
BASE    dc=infra2009,dc=teenused
URI    ldap://localhost
</pre>
</pre>


Kui saad errori: "dap_bind: Can't contact LDAP server (-1)", siis tõenäoliselt LDAP veel ei tööta. Käivita see käsuga:
Tee teenusele taaslaadimine
<pre>
<pre>
/etc/init.d/slapd start
/etc/init.d/slapd reload
</pre>
</pre>


 
Nüüd testi, kas serveril LDAP töötab ning teenus vastab.
 
Muudame veidi ldap conf faili.
Ava:
<pre>
<pre>
nano /etc/ldap/ldap.conf
ldapsearch -x -b dc=infra2009,dc=teenused
</pre>
</pre>
Ja muuda järgnevalt:
Kasutatud võtmete selgitused:
    -x - ldap serverisse logimine toimub simple authenticationi abil (parooli ei krüpteerita)
    -b - serveri poole pöördutakse serveri administraatorina, nö kasutajanimega 'cn=admin,dc=infra2009,dc=teenused'
 
Kui saad errori: "dap_bind: Can't contact LDAP server (-1)", siis tõenäoliselt LDAP veel ei tööta. Käivita see käsuga:
<pre>
<pre>
BASE    dc=infra2009,dc=teenused
/etc/init.d/slapd start
URI    ldap://localhost
</pre>
</pre>


==Kasutajate ja gruppide lisamine LDAP-i andmebaasi==
"Migrationtools'i" abiga on meil võimalik oma kohalikust süsteemist kiiresti importida olemasolevad kasutajad ja grupid LTAP'i.




Antud UbuntuServer LTS'i nöol tulid esile ka distributsiooni vead:
==Kasutajate ja gruppide lisamine LDAP-i andmebaasi (Valikuline osa)==
"Migrationtools-i" abiga on meil võimalik oma kohalikust süsteemist kiiresti importida olemasolevad kasutajad ja grupid LDAP-i. Juhul, kui su masinas ei ole palju kasutajaid, siis see etapp ei ole vajalik.


Viga(BUG)!!!!! Ubuntu Server LTS'i puhul installitakse migrate_common.ph fail valesse kausta.
Paigaldame migrationtools paketi.
<pre>apt-get install migrationtools</pre>
 
Antud Ubuntu Server 8.04 LTS-i näol tulid esile ka distributsiooni vead: migrate_common.ph fail paigaldatakse valesse /usr/share/perl5/ kausta.


Lisalugemist vea kohta leiad [https://bugs.launchpad.net/ubuntu/+source/migrationtools/+bug/319391 siit!]
Lisalugemist vea kohta leiad [https://bugs.launchpad.net/ubuntu/+source/migrationtools/+bug/319391 siit!]




Katsetuste käigus selgus, et kui muuda faili nn VALES kohas ära, siis maagiliselt asi ikka töötab. Seega hetkel see Ubuntu viga meid ei häiri.
Katsetuste käigus selgus, et kui muuta faili nn VALES kohas ära, siis maagiliselt asi ikka töötab. Seega hetkel see Ubuntu viga meid ei häiri.




Järgnevalt peame veidi muutma migrationtools'i conf faili "migrate_common.ph". Ava nano-ga see conf'i fail...
Järgnevalt peame veidi muutma migrationtools-i conf faili '''migrate_common.ph'''. Ava nano-ga see conf-i fail...


<pre>
<pre>
Line 127: Line 139:


OU'de loomine:
OU'de loomine:
Unfortunately, the script does not create the Group and People nodes, so we need to create it.  
Kahjuks ei loo eelnev script gruppide ja inimeste faili, seega peame selle ise looma.
Loo uus fail nimega ~/people_group.ldif:
Loo uus fail nimega ~/people_group.ldif:
<pre>
<pre>
Line 133: Line 145:
</pre>
</pre>
... ja täida see järgneva sisuga:
... ja täida see järgneva sisuga:
<pre>
<pre>
dn: ou=People, dc=infra2009, dc=teenused
dn: ou=People, dc=infra2009, dc=teenused
Line 146: Line 157:




Nüüd on meil kasutajad ja grupid konverditud LDAP ldif formaati. Need omakorda tuleb importida LDAP'i databaasi:
Nüüd on meil kasutajad ja grupid konverditud LDAP ldif formaati. Need omakorda tuleb importida LDAP-i databaasi:
(Iga käsu järel küsitakse LDAP-i parooli. Sisesta parool, mis ldap-i dpkg-reconfigure käigus selleks määrasid.)
(Iga käsu järel küsitakse LDAP-i parooli. Sisesta parool, mis ldap-i dpkg-reconfigure käigus selleks määrasid.)


Line 157: Line 168:
Key-dest lähemalt:
Key-dest lähemalt:


 
     -x - ldap serverisse logimine toimub simple authenticationi abil (parooli ei krüpteerita)
     *-x - ldap serverisse logimine toimub simple authenticationi abil -anonüümne sisselogimine
     -D - serveri poole pöördutakse serveri administraatorina, nö kasutajanimega 'cn=admin,dc=infra2009,dc=teenused'
     *-D - serveri poole pöördutakse serveri administraatorina, nö kasutajanimega 'cn=admin,dc=infra2009,dc=teenused'
     -w - pöördumisel kasutatakse parooli
     *-w - pöördumisel kasutatakse parooli
     -f - serverisse laaditakse ette antud failist andmed
     *-f - serverisse laaditakse ette antud failist andmed


   
   
Nüüd peaks server olema valmis kasutajaid vastu võtma
Nüüd peaks server olema valmis kasutajaid vastu võtma


==Samba Installeerimine==
==Samba Installeerimine==
Paigaldame vajaminevad samba, sambafs, samba-doc, smbldap-tools, libpam-smbpass, smbclient, libnss-ldap, ldapscripts ja libtalloc1 paketid.
Paigaldame vajaminevad samba, samba-doc, smbldap-tools, smbclient, libnss-ldap, ldapscripts ja libtalloc1 paketid.


<pre>
<pre>
sudo apt-get install samba sambafs samba-doc smbldap-tools libpam-smbpass smbclient libnss-ldap ldapscripts libtalloc1
apt-get install samba samba-doc smbldap-tools smbclient libnss-ldap ldapscripts libtalloc1
</pre>
</pre>


Kopeerime samba.schema.gz faili LDAP'i schema kausta:
Selleks, et kasutada LDAP-i Samba autentimisvahendina, peab LDAP-i objektidele lisama Samba atribuute, mis on kirjeldatud samba.schema failis. Paketist samba-doc on võimalik nimetatud fail lahti pakkida ja kopeerida /etc/ldap/schema kausta. Seejärel saame lisada (include) faili slapd.conf-i.
<pre>  
 
sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
Kopeerime samba.schema.gz faili LDAP-i schema kausta:
<pre>
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
</pre>
</pre>


Pakime lahti eelnevalt kopeeritud faili:
Pakime lahti eelnevalt kopeeritud faili:
<pre>
<pre>
sudo gzip -d /etc/ldap/schema/samba.schema.gz
gzip -d /etc/ldap/schema/samba.schema.gz
</pre>
</pre>




Ava slapd.conf fail...:
Ava slapd.conf fail:
<pre>
<pre>
sudo nano /etc/ldap/slapd.conf
nano /etc/ldap/slapd.conf
</pre>
</pre>
... ja lisa sinna conf faili rida:
... ja lisa allpool näidatud plokki antud include rida:
<pre>
<pre>
*include /etc/ldap/schema/samba.schema
# Schema and objectClass definitions
include /etc/ldap/schema/samba.schema
</pre>
</pre>


Muuda smb.conf faili sisu...  
 
Kui Samba ei ole eelnevalt seadistatud, siis pakume ühe variandina enda poolt seadistatud smb.conf faili sisu.
Vajadusel kohandada näidet konkreetse olukorra järgi.
<pre>
<pre>
nano /etc/samba/smb.conf
nano /etc/samba/smb.conf
</pre>
</pre>
...alloleva näite järgi.
 
Täielik smb.conf faili sisu:
<pre>
<pre>
[global]
[global]
         display charset = UTF-8
         display charset = UTF-8
Line 212: Line 224:
         passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
         passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
         log level = 3
         log level = 3
        syslog = 3
         log file = /var/log/samba/log.%m
         log file = /var/log/samba/log.%m
         max log size = 1000
         max log size = 1000
Line 245: Line 256:
</pre>
</pre>


==SMBLDAP-TOOLS'i seadistamine==
==smbldap-tools seadistamine==
We will be using the smbldap-tools package to populate our directory, add users, add workstations, etc... But, the tools need to be configured first!
Paketti smbldap-tools kasutame selleks, et lisada LDAP-i Samba kasutajad, kaustad jne, kuid eelnevalt tuleb need tööriistad seadistada.


Ava kaust:
Ava kaust:
Line 277: Line 288:
Ava /etc/smbldap-tools/smbldap.conf fail...
Ava /etc/smbldap-tools/smbldap.conf fail...
<pre>
<pre>
vi /etc/smbldap-tools/smbldap.conf
nano /etc/smbldap-tools/smbldap.conf
</pre>
</pre>
...ning muuda seda faili vastavalt. Välja peaks see nägema umbes selline:
...ning muuda seda faili vastavalt. Välja peaks see nägema umbes selline:
Line 297: Line 308:
Ava /etc/smbldap-tools/smbldap_bind.conf fail...
Ava /etc/smbldap-tools/smbldap_bind.conf fail...
<pre>
<pre>
vi /etc/smbldap-tools/smbldap_bind.conf file
nano /etc/smbldap-tools/smbldap_bind.conf file
</pre>
</pre>
..ning muuda seda faili vastavalt oma individuaalsele seadistusele. Välja peaks see nägema umbes selline:
..ning muuda seda faili vastavalt oma individuaalsele seadistusele. Välja peaks see nägema umbes selline:
Line 311: Line 322:
chmod 0644 /etc/smbldap-tools/smbldap.conf
chmod 0644 /etc/smbldap-tools/smbldap.conf
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
</pre>
/etc/ldap.conf-is teha muudatused.
Ava fail:
<pre>
nano /etc/ldap.conf
</pre>
...ja muuda järgnevalt:
<pre>
# The distinguished name of the search base.
base dc=infra2009,dc=teenused
# Another way to specify your LDAP server is to provide an
uri ldapi:///localhost
# Unix Domain Sockets to connect to a local LDAP Server.
uri ldap://127.0.0.1/
#uri ldaps://127.0.0.1/
#uri ldapi://%2fvar%2frun%2fldapi_sock/
# Note: %2f encodes the '/' used as directory separator
</pre>
</pre>


=Testkasutaja lisamine=
=Testkasutaja lisamine=
Loome LDAP-i uue kasutaja. Järgneva käsuga lisatakse loodavale kasutajale klassid: person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount ja sambaSamAccount.
Loome LDAP-i uue kasutaja nimega David. Käsuga smbldap-useradd lisatakse loodavale kasutajale klassid: person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount ja sambaSamAccount.
Testkasutaja saame käsuga '''smbldap-useradd -a -m -P <kasutajanimi>''' näiteks:
Käsk näeb välja selline '''smbldap-useradd -a -m -P <kasutajanimi>''' Näiteks:
<pre>
<pre>
smbldap-useradd -a -m -P david
smbldap-useradd -a -m -P david
</pre>
</pre>


Loome ühtlasi testgrupi käsuga '''smbldap-groupadd -a -g -t 2  <kasutajanimi>''' näiteks:
Loome ühtlasi testgrupi käsuga '''smbldap-groupadd -a -g -t 2  <kasutajanimi>''' Näiteks:
<pre>
<pre>
smbldap-groupadd -a -g -t 2 david
smbldap-groupadd -a -g -t 2 david
Line 327: Line 358:


Et kasutaja saaks kodukausta kasutamiseks õigused tuleb sisestada käsk:
Et kasutaja saaks kodukausta kasutamiseks õigused tuleb sisestada käsk:
'''chown <kasutajanimi>:<grupi_nimi> /home/<kasutaja_kodukaust>''' Näiteks:
<pre>
chown david:david /home/david</pre>
=Testimine klientarvutis=
==ldapsearch-i kasutamine==
Testkäske võib sisestada ka serverist endast ''localhost''-i vastu.
Testimiseks veendu, et arvutisse on installeeritud ldap-utils:
<pre>
<pre>
chown <kasutajanimi>:<grupi_nimi> /home/<kasutaja_kodukaust>
apt-get install ldap-utils
</pre>
</pre>


=Testimine klientarvutis=
Testi, kas server tagastab LDAP andmebaasis olevad kirjed LDIF kujul.
Testimiseks proovida näiteks kohalikus klientarvutis, millel on installitud ldap-utils, käsku:
<pre>
<pre>
ldapsearch -x -b dc=infra2009,dc=teenused
ldapsearch -x -b dc=infra2009,dc=teenused
Line 339: Line 377:
[[image:Ldapsearch_postinstall_test.JPG|400px]]
[[image:Ldapsearch_postinstall_test.JPG|400px]]


==Samba testimine==
Veendu, et klientarvutis oleks olemas smbclient:
Veendu, et klientarvutis oleks olemas smbclient:
<pre>
<pre>
Line 345: Line 384:


Seejärel proovi ühenduda serveriga:
Seejärel proovi ühenduda serveriga:
'''smbclient //<serveri_ip>/<jagatud_kausta_nimi> -U <kasutajanimi>''' Näiteks
<pre>
smbclient //localhost/david -U david
</pre>
=Logifailide loomine=
Logifailide lubamiseks on meil vaja määrata loglevel ning logifaili asukoht.
Ava slapd.conf fail:
<pre>
nano /etc/ldap/slapd.conf
</pre>
...ja muuda järgnevaid ridu:
<pre>
# Read slapd.conf(5) for possible values
loglevel        256
</pre>
Atrbuuti logfile pole selles failis vaja, kuna seda kasutatakse selleks, et logida debugimise teateid. Teated saadetakse vaikimisi syslog faili.
Selleks, et logi kirjed saadetaks meie poolt valitud faili, peame syslog.conf faili muutma.
Ava:
<pre>
<pre>
smbclient //<serveri_ip>/<jagatud_kausta_nimi> -U <kasutajanimi>
nano /etc/syslog.conf
</pre>
</pre>


... ja lisa faili lõppu:
<pre>
local4.*        /var/log/ldap/slapd.log
</pre>
Määrame varem loodud ldap kaustale uue omaniku õigused:
<pre>
chown syslog /var/log/ldap
</pre>
Tee sysklogd teenusele reload:
<pre>
/etc/init.d/sysklogd reload
</pre>
Nüüd kõik syslog-i LOG_LOCAL4 kirjed suunatakse slapd.log faili.




=Teenuse varundamine=
=Teenuse varundamine=
Kuna kõik vajalikud seadistusfailid on /etc/... ja /usr/local/bin kataloogis, siis piisab nende kataloogide varundamisest. Antud kataloogidest teha kord päevas täielik varukoopia ja kõik failid salvestada.
Loome kaustad, kuhu andmed varundada:
<pre>
mkdir -p /var/backups/ldap/db /var/backups/ldap/etc
</pre>
==Andmebaasi varundamine==
Väljastame LDAP andmebaasi kirjed slapcat käsu abil, pakime väljundi kokku ja salvestame '''/var/backups/ldap/backup.<kuupäev>.ldif.gz''' faili.
 
<pre>
slapcat | gzip > /var/backups/ldap/db/backup.`date '+%Y%m%d'`.ldif.gz
</pre>
 
==Seadistusfailide varundamine==
Teeme varukoopia /etc/ldap/ kaustast. Kompaktsuse säilitamiseks pakime seadistusfailid ühte faili. Selleks, et näha millal varundamine tehti lisame failinimele varundamise kuupäeva, selline kuupäevaformaat(AastaKuuPäev)võimaldab kiirelt viimase faili leida.
<pre>
tar cvf /var/backups/ldap/etc/conf_backup.`date '+%Y%m%d'`.tar /etc/ldap/* /etc/syslog.conf
</pre>


=Teenuse taastamine=
=Teenuse taastamine=
Kui teenusega ilmneb probleeme tuleb seadistusfailid üle vaadata ja vajadusel taastada. Kontrollida...
Kui teenusega ilmneb probleeme tuleb seadistusfailid üle vaadata ja vajadusel taastada.
Näites tegime varundamise '''/var/backups/ldap/''' kausta.
 
==Andmebaasi taastamine==
Pakime varundatud faili lahti ning sellest on võimalik LDAP-i baas taastada.
 
'''gunzip -c /var/backups/ldap/backup.<kuupäev>.ldif.gz > /var/backups/ldap/backup.<kuupäev>.ldif'''
 
'''ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f /var/backups/ldap/backup.<kuupäev>.ldif'''
<pre>
gunzip -c /var/backups/ldap/backup.20091218.ldif.gz > /var/backups/ldap/backup.20091218.ldif
ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f /var/backups/ldap/backup.20091218.ldif
</pre>
 
==Seadistusfailide taastamine==
Taastamiseks tuleb varukoopia lahti pakkida ning vastavalt olukorrale taastada vajalikud failid.
 
'''tar xvf /var/backups/ldap/etc/conf_backup.<kuupäev>.tar'''
 
Näiteks:
<pre>
tar xvf /var/backups/ldap/etc/conf_backup.20091218.tar
</pre>


=Versioon=
=Versioon=
ver. 0.05 (LDAP-i paigaldamine ja esialgne konfigureerimine) 15.12.2009
*ver. 0.05 (LDAP-i paigaldamine ja esialgne konfigureerimine) 15.12.2009
ver. 0.06 (LDAP-i töölesaamine) 16.12.2009
*ver. 0.06 (LDAP-i töölesaamine) 16.12.2009
ver. 0.85 (Samba installeerimine, seadistamine ja LDAP-i vastu autentimine) 16.12.2009
*ver. 0.85 (Samba installeerimine, seadistamine ja LDAP-i vastu autentimine) 16.12.2009
ver. 0.90 (Varundamine ja taasteplaan) 17.12.2009
*ver. 0.90 (Varundamine ja taasteplaan) 17.12.2009
ver. 0.93 (Dokumentatsiooni lõpetamine) 18.12.2009
*ver. 0.93 (Dokumentatsiooni lõpetamine) 18.12.2009
 
*ver. 0.95 (Logimise seadistamine) 18.12.2009
=Viimase muutmise aeg=
*ver. 1.0 (Wiki lõpetamine ning esialgses arutelus esitatud vigade parandamine) 18.12.2009
11.12.2009 19:20


=Kasutatud materjal=
=Kasutatud materjal=

Latest revision as of 14:25, 20 April 2010

Autorid

  • Mauno Pihelgas
  • Kristjan Mölder

Sissejuhatus

LDAP (Lightweight Directory Access Protocol) on iseenesest protokoll ning üks selle prokolli implementatsioon on OpenLDAP (http://www.openldap.org/), mis sisaldab üldiselt nelja komponenti:

   * slapd - stand-alone LDAP daemon (server)
   * slurpd - stand-alone LDAP update replication daemon
   * teegid - implementeerivad LDAP protokolli
   * utiliidid - abiprogrammid ja näidised erinevate tegevuste sooritamiseks

OpenLDAP kasutamise muudab praktiliseks asjaolu, et ta on üsna paljude rakendustega (nt PAM) integreeritud ning OpenLDAP kasutamiseks on vajalikud teegid olemas mitmetes programmeerimiskeeltes (nt Java, Perl, PHP). OpenLDAP toetab suures ulatuses LDAP v2 ja v3 versioone; võimaldab andmevahetust üle TLS/SSL.

Antud wiki artiklis saab ülevaate LDAP-i (OpenLDAP ver: 2.4.9) installeerimisest ja seadistamisest. Töötavat LDAP-i testitakse SAMBA (Samba ver: 3.0.28a) peal, seega saame väikse ülevaate ka selle paigaldamisest ja seadistamisest LDAP-i jaoks.

Eeldused

  • Antud lahendus on testitud Ubuntu 8.04 LTS Serveril.
  • Testimiseks kliendi masin, millele on paigaldatud Samba klient ja ldap-utils. Antud lahendust on võimalik testida ka serverist endast localhost-i vastu.

Nõuded

Ülesanne on LDAP-i paigaldamine ning seadistamine OpenLDAP-i näitel.

Testimiseks pidime vabalt valima mingi teenuse, mida LDAP-i vastu autentima panna. Otsustasime Samba seadistamise kasuks.

Kindlasti peame koostama taastamis- ja varundamisjuhendi.

Installeerimine

Logime ennast root kasutajaks ning käivitame vajalikud toimingud. Kuna sudo-t sel juhul enam vaja ei lähe, hoiad selle arvelt pisut aega kokku. Samas on aga tunduvalt lihtsam midagi ära rikkuda, sest KÕIK käsud käivitatakse root kasutaja õigustes!

sudo -i

Esiteks tuleks tarkvara nimekirja uuendada.

apt-get update

Paigaldame slapd, ldap-utils ja migrationtools paketid.

apt-get install slapd ldap-utils migrationtools

slapd installi ajal sisestatud LDAP admini parool: 'root' (hiljem kirjutatakse see dpkg-reconfigure' ajal üle)

  • ldap-utils - sisaldab utiliite LDAP kataloogiga suhtlemiseks, nt ldapsearch päringute tegemiseks; 'dpkg -L ldap-utils | grep bin' näitab programmide nimekirja, reeglina algavad nende nimed 'ldap*' järgnevusega
  • slapd - sisaldab OpenLDAP serverit ning utiliite LDAP kataloogile vastavate failidega tegelemiseks, nt slapcat esitab kogu kataloogi sisu nn ldif formaadis; 'dpkg -L slapd | grep bin' esitab programmide nimekirja, reeglina algavad nimed 'slap*' järgnevusega

Seadistamine

Käivita slapd seadistamine ning vasta küsimustele all toodud näite põhjal.

dpkg-reconfigure slapd

Vastused, mida võiks vastata:

Omit OpenLDAP server configuration? No
DNS domain name: ... infra2009.debuntu
Name of your organization: ITK
Admin Password: 'root'
Confirm Password: 'root'
Database backend to use: BDB
Do you want your database to be removed when slapd is purged?: No
Move old database?: Yes
Allow LDAPv2 Protocol?: No 

step1 step2 step3 step4 step5 step6 step7 step8 step9


Nüüd on esialgne seadistus tulevasele kataloogipuule tehtud. Loodud on ka kasutaja "admin"(administraator).

Kohandame /etc/ldap/ldap.conf faili meie süsteemi jaoks. Selleks ava fail:

nano /etc/ldap/ldap.conf

Ja muuda järgnevalt:

BASE    dc=infra2009,dc=teenused
URI     ldap://localhost

Tee teenusele taaslaadimine

/etc/init.d/slapd reload

Nüüd testi, kas serveril LDAP töötab ning teenus vastab.

ldapsearch -x -b dc=infra2009,dc=teenused

Kasutatud võtmete selgitused:

   -x - ldap serverisse logimine toimub simple authenticationi abil (parooli ei krüpteerita)
   -b - serveri poole pöördutakse serveri administraatorina, nö kasutajanimega 'cn=admin,dc=infra2009,dc=teenused'

Kui saad errori: "dap_bind: Can't contact LDAP server (-1)", siis tõenäoliselt LDAP veel ei tööta. Käivita see käsuga:

/etc/init.d/slapd start


Kasutajate ja gruppide lisamine LDAP-i andmebaasi (Valikuline osa)

"Migrationtools-i" abiga on meil võimalik oma kohalikust süsteemist kiiresti importida olemasolevad kasutajad ja grupid LDAP-i. Juhul, kui su masinas ei ole palju kasutajaid, siis see etapp ei ole vajalik.

Paigaldame migrationtools paketi.

apt-get install migrationtools

Antud Ubuntu Server 8.04 LTS-i näol tulid esile ka distributsiooni vead: migrate_common.ph fail paigaldatakse valesse /usr/share/perl5/ kausta.

Lisalugemist vea kohta leiad siit!


Katsetuste käigus selgus, et kui muuta faili nn VALES kohas ära, siis maagiliselt asi ikka töötab. Seega hetkel see Ubuntu viga meid ei häiri.


Järgnevalt peame veidi muutma migrationtools-i conf faili migrate_common.ph. Ava nano-ga see conf-i fail...

nano /usr/share/perl5/migrate_common.ph

...ja asenda näidatud parameetrid uute nimedega:

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "infra2009.teenused";

# Default base
$DEFAULT_BASE = "dc=infra2009,dc=teenused";


Seejärel ekspordi uued väärtused käskudega:

/usr/share/migrationtools/migrate_group.pl /etc/group ~/group.ldif
/usr/share/migrationtools/migrate_passwd.pl /etc/passwd ~/passwd.ldif

OU'de loomine: Kahjuks ei loo eelnev script gruppide ja inimeste faili, seega peame selle ise looma. Loo uus fail nimega ~/people_group.ldif:

nano ~/people_group.ldif

... ja täida see järgneva sisuga:

dn: ou=People, dc=infra2009, dc=teenused
ou: People
objectclass: organizationalUnit

dn: ou=Group, dc=infra2009, dc=teenused
ou: Group
objectclass: organizationalUnit


Nüüd on meil kasutajad ja grupid konverditud LDAP ldif formaati. Need omakorda tuleb importida LDAP-i databaasi: (Iga käsu järel küsitakse LDAP-i parooli. Sisesta parool, mis ldap-i dpkg-reconfigure käigus selleks määrasid.)

ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/people_group.ldif
ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/group.ldif
ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/passwd.ldif

Key-dest lähemalt:

   -x - ldap serverisse logimine toimub simple authenticationi abil (parooli ei krüpteerita)
   -D - serveri poole pöördutakse serveri administraatorina, nö kasutajanimega 'cn=admin,dc=infra2009,dc=teenused'
   -w - pöördumisel kasutatakse parooli
   -f - serverisse laaditakse ette antud failist andmed


Nüüd peaks server olema valmis kasutajaid vastu võtma

Samba Installeerimine

Paigaldame vajaminevad samba, samba-doc, smbldap-tools, smbclient, libnss-ldap, ldapscripts ja libtalloc1 paketid.

apt-get install samba samba-doc smbldap-tools smbclient libnss-ldap ldapscripts libtalloc1

Selleks, et kasutada LDAP-i Samba autentimisvahendina, peab LDAP-i objektidele lisama Samba atribuute, mis on kirjeldatud samba.schema failis. Paketist samba-doc on võimalik nimetatud fail lahti pakkida ja kopeerida /etc/ldap/schema kausta. Seejärel saame lisada (include) faili slapd.conf-i.

Kopeerime samba.schema.gz faili LDAP-i schema kausta:

cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/

Pakime lahti eelnevalt kopeeritud faili:

gzip -d /etc/ldap/schema/samba.schema.gz


Ava slapd.conf fail:

nano /etc/ldap/slapd.conf

... ja lisa allpool näidatud plokki antud include rida:

# Schema and objectClass definitions
include		/etc/ldap/schema/samba.schema


Kui Samba ei ole eelnevalt seadistatud, siis pakume ühe variandina enda poolt seadistatud smb.conf faili sisu. Vajadusel kohandada näidet konkreetse olukorra järgi.

nano /etc/samba/smb.conf
[global]
        display charset = UTF-8
        unix charset = UTF-8
        workgroup = UBUNTU2
        server string = %h server (Samba, Ubuntu)
        interfaces = lo, eth0
        bind interfaces only = Yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        log level = 3
        log file = /var/log/samba/log.%m
        max log size = 1000
        dns proxy = No
        guest account = nobody

        #Ldap settings
        passdb backend = ldapsam:ldap://localhost
        ldap admin dn = "cn=admin,dc=infra2009,dc=teenused"
        ldap group suffix = ou=Groups
        ldap idmap suffix = ou=Idmap
        ldap machine suffix = ou=Computers
        ldap replication sleep = 2000
        ldap suffix = dc=infra2009,dc=teenused
        ldap ssl = no
        ldap timeout = 300
        ldap user suffix = ou=People
        usershare allow guests = Yes
        panic action = /usr/share/samba/panic-action %d

        #Do not show hidden files.
        veto files = /.*/

[homes]
        comment = Home Directories
        valid users = %S
        create mask = 0700
        directory mask = 0700
        browseable = No
        read only = No

smbldap-tools seadistamine

Paketti smbldap-tools kasutame selleks, et lisada LDAP-i Samba kasutajad, kaustad jne, kuid eelnevalt tuleb need tööriistad seadistada.

Ava kaust:

cd /usr/share/doc/smbldap-tools/examples/

Kopeeri konfiguratsiooni failid /etc/smbldap-tools kausta:

cp smbldap_bind.conf /etc/smbldap-tools/
cp smbldap.conf.gz /etc/smbldap-tools/

Paki lahti smbldap.conf.gz fail:

gunzip /etc/smbldap-tools/smbldap.conf.gz

Ava kaust /etc/smbldap-tools directory:

cd /etc/smbldap-tools/

Leia SAMBA domeeni jaoks SID (Security ID):

net getlocalsid

Sealt peaksid leidma midagi sellist: SID for domain DC01-UBUNTU is: S-1-5-21-949328747-3404738746-3052206637

Ava /etc/smbldap-tools/smbldap.conf fail...

nano /etc/smbldap-tools/smbldap.conf

...ning muuda seda faili vastavalt. Välja peaks see nägema umbes selline:

SID="S-1-5-21-2172294073-268650948-1601795792" ## Siia pead sisestama SID, mille said 'net getlocalsid' käsu tulemuseks.
sambaDomain="UBUNTU2"
ldapTLS="0"
suffix="dc=infra2009,dc=teenused"
userSmbHome=
userProfile=
userHomeDrive=
userScript=
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
mailDomain="infra2009.teenused"


Ava /etc/smbldap-tools/smbldap_bind.conf fail...

nano /etc/smbldap-tools/smbldap_bind.conf file

..ning muuda seda faili vastavalt oma individuaalsele seadistusele. Välja peaks see nägema umbes selline:

slaveDN="cn=admin,dc=infra2009,dc=teenused"
slavePw="root2"
masterDN="cn=admin,dc=infra2009,dc=teenused"
masterPw="root2"

Sea õiged õigused järgnevatele failidele:

chmod 0644 /etc/smbldap-tools/smbldap.conf
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf


/etc/ldap.conf-is teha muudatused. Ava fail:

nano /etc/ldap.conf

...ja muuda järgnevalt:

# The distinguished name of the search base.
base dc=infra2009,dc=teenused

# Another way to specify your LDAP server is to provide an
uri ldapi:///localhost
# Unix Domain Sockets to connect to a local LDAP Server.
uri ldap://127.0.0.1/
#uri ldaps://127.0.0.1/
#uri ldapi://%2fvar%2frun%2fldapi_sock/
# Note: %2f encodes the '/' used as directory separator

Testkasutaja lisamine

Loome LDAP-i uue kasutaja nimega David. Käsuga smbldap-useradd lisatakse loodavale kasutajale klassid: person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount ja sambaSamAccount. Käsk näeb välja selline smbldap-useradd -a -m -P <kasutajanimi> Näiteks:

smbldap-useradd -a -m -P david

Loome ühtlasi testgrupi käsuga smbldap-groupadd -a -g -t 2 <kasutajanimi> Näiteks:

smbldap-groupadd -a -g -t 2 david


Et kasutaja saaks kodukausta kasutamiseks õigused tuleb sisestada käsk: chown <kasutajanimi>:<grupi_nimi> /home/<kasutaja_kodukaust> Näiteks:

chown david:david /home/david

Testimine klientarvutis

ldapsearch-i kasutamine

Testkäske võib sisestada ka serverist endast localhost-i vastu. Testimiseks veendu, et arvutisse on installeeritud ldap-utils:

apt-get install ldap-utils

Testi, kas server tagastab LDAP andmebaasis olevad kirjed LDIF kujul.

ldapsearch -x -b dc=infra2009,dc=teenused

Samba testimine

Veendu, et klientarvutis oleks olemas smbclient:

apt-get install smbclient

Seejärel proovi ühenduda serveriga: smbclient //<serveri_ip>/<jagatud_kausta_nimi> -U <kasutajanimi> Näiteks

smbclient //localhost/david -U david

Logifailide loomine

Logifailide lubamiseks on meil vaja määrata loglevel ning logifaili asukoht. Ava slapd.conf fail:

nano /etc/ldap/slapd.conf

...ja muuda järgnevaid ridu:

# Read slapd.conf(5) for possible values
loglevel        256

Atrbuuti logfile pole selles failis vaja, kuna seda kasutatakse selleks, et logida debugimise teateid. Teated saadetakse vaikimisi syslog faili.


Selleks, et logi kirjed saadetaks meie poolt valitud faili, peame syslog.conf faili muutma. Ava:

nano /etc/syslog.conf

... ja lisa faili lõppu:

local4.*        /var/log/ldap/slapd.log


Määrame varem loodud ldap kaustale uue omaniku õigused:

chown syslog /var/log/ldap

Tee sysklogd teenusele reload:

/etc/init.d/sysklogd reload

Nüüd kõik syslog-i LOG_LOCAL4 kirjed suunatakse slapd.log faili.


Teenuse varundamine

Loome kaustad, kuhu andmed varundada:

mkdir -p /var/backups/ldap/db /var/backups/ldap/etc

Andmebaasi varundamine

Väljastame LDAP andmebaasi kirjed slapcat käsu abil, pakime väljundi kokku ja salvestame /var/backups/ldap/backup.<kuupäev>.ldif.gz faili.

slapcat | gzip > /var/backups/ldap/db/backup.`date '+%Y%m%d'`.ldif.gz

Seadistusfailide varundamine

Teeme varukoopia /etc/ldap/ kaustast. Kompaktsuse säilitamiseks pakime seadistusfailid ühte faili. Selleks, et näha millal varundamine tehti lisame failinimele varundamise kuupäeva, selline kuupäevaformaat(AastaKuuPäev)võimaldab kiirelt viimase faili leida.

tar cvf /var/backups/ldap/etc/conf_backup.`date '+%Y%m%d'`.tar /etc/ldap/* /etc/syslog.conf

Teenuse taastamine

Kui teenusega ilmneb probleeme tuleb seadistusfailid üle vaadata ja vajadusel taastada. Näites tegime varundamise /var/backups/ldap/ kausta.

Andmebaasi taastamine

Pakime varundatud faili lahti ning sellest on võimalik LDAP-i baas taastada.

gunzip -c /var/backups/ldap/backup.<kuupäev>.ldif.gz > /var/backups/ldap/backup.<kuupäev>.ldif

ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f /var/backups/ldap/backup.<kuupäev>.ldif

gunzip -c /var/backups/ldap/backup.20091218.ldif.gz > /var/backups/ldap/backup.20091218.ldif
ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f /var/backups/ldap/backup.20091218.ldif

Seadistusfailide taastamine

Taastamiseks tuleb varukoopia lahti pakkida ning vastavalt olukorrale taastada vajalikud failid.

tar xvf /var/backups/ldap/etc/conf_backup.<kuupäev>.tar

Näiteks:

tar xvf /var/backups/ldap/etc/conf_backup.20091218.tar

Versioon

  • ver. 0.05 (LDAP-i paigaldamine ja esialgne konfigureerimine) 15.12.2009
  • ver. 0.06 (LDAP-i töölesaamine) 16.12.2009
  • ver. 0.85 (Samba installeerimine, seadistamine ja LDAP-i vastu autentimine) 16.12.2009
  • ver. 0.90 (Varundamine ja taasteplaan) 17.12.2009
  • ver. 0.93 (Dokumentatsiooni lõpetamine) 18.12.2009
  • ver. 0.95 (Logimise seadistamine) 18.12.2009
  • ver. 1.0 (Wiki lõpetamine ning esialgses arutelus esitatud vigade parandamine) 18.12.2009

Kasutatud materjal

openldap samba domain controller ubuntu 7.10


LDAP server and linux LDAP client LDAP server and linux LDAP client


LDAPsearch Open LDAP kasutamine Debianiga