OpenLDAP-i seadistamine: Difference between revisions
(36 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 11: | Line 11: | ||
* utiliidid - abiprogrammid ja näidised erinevate tegevuste sooritamiseks | * 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. | 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= | =Eeldused= | ||
*Antud lahendus on testitud <span style="color:#FF0000"> '''Ubuntu 8.04 LTS Serveril.''' </span> | |||
Testimiseks | *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= | =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! | 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) | |||
*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= | =Seadistamine= | ||
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> | |||
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 | |||
</pre> | |||
[[image:Reconfigure_slapd1.JPG|200px|step1]] | |||
[[image:Reconfigure_slapd2.JPG|200px|step2]] | |||
[[image:Reconfigure_slapd3.JPG|200px|step3]] | |||
[[image:Reconfigure_slapd4.JPG|200px|step4]] | |||
[[image:Reconfigure_slapd5.JPG|200px|step5]] | |||
[[image:Reconfigure_slapd6.JPG|200px|step6]] | |||
[[image:Reconfigure_slapd7.JPG|200px|step7]] | |||
[[image:Reconfigure_slapd8.JPG|200px|step8]] | |||
[[image:Reconfigure_slapd9.JPG|200px|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: | |||
<pre> | |||
nano /etc/ldap/ldap.conf | |||
</pre> | |||
Ja muuda järgnevalt: | |||
<pre> | <pre> | ||
BASE dc=infra2009,dc=teenused | |||
URI ldap://localhost | |||
</pre> | </pre> | ||
Tee teenusele taaslaadimine | |||
<pre> | |||
/etc/init.d/slapd reload | |||
</pre> | |||
Nüüd testi, kas serveril LDAP töötab ning teenus vastab. | |||
<pre> | <pre> | ||
ldapsearch -x -b dc= | ldapsearch -x -b dc=infra2009,dc=teenused | ||
</pre> | </pre> | ||
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> | ||
/etc/init.d/slapd start | /etc/init.d/slapd start | ||
Line 67: | Line 102: | ||
==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. | |||
<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!] | |||
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... | |||
<pre> | <pre> | ||
nano /usr/share/perl5/migrate_common.ph | |||
</pre> | </pre> | ||
...ja asenda näidatud parameetrid uute nimedega: | |||
<pre> | <pre> | ||
# Default DNS domain | |||
$DEFAULT_MAIL_DOMAIN = "infra2009.teenused"; | |||
# Default base | |||
$DEFAULT_MAIL_DOMAIN = " | $DEFAULT_BASE = "dc=infra2009,dc=teenused"; | ||
$DEFAULT_BASE = "dc= | |||
</pre> | </pre> | ||
Seejärel ekspordi uued väärtused käskudega: | |||
<pre> | <pre> | ||
/usr/share/migrationtools/migrate_group.pl /etc/group ~/group.ldif | |||
/usr/share/migrationtools/migrate_passwd.pl /etc/passwd ~/passwd.ldif | |||
</pre> | </pre> | ||
OU'de loomine: | |||
Kahjuks ei loo eelnev script gruppide ja inimeste faili, seega peame selle ise looma. | |||
Loo uus fail nimega ~/people_group.ldif: | |||
<pre> | <pre> | ||
nano ~/people_group.ldif | nano ~/people_group.ldif | ||
</pre> | </pre> | ||
... | ... ja täida see järgneva sisuga: | ||
<pre> | <pre> | ||
dn: ou=People, dc= | dn: ou=People, dc=infra2009, dc=teenused | ||
ou: People | ou: People | ||
objectclass: organizationalUnit | objectclass: organizationalUnit | ||
dn: ou=Group, dc= | dn: ou=Group, dc=infra2009, dc=teenused | ||
ou: Group | ou: Group | ||
objectclass: organizationalUnit | objectclass: organizationalUnit | ||
</pre> | </pre> | ||
Iga käsu järel küsitakse LDAP-i parooli. Sisesta parool, mis ldap-i | |||
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.) | |||
<pre> | <pre> | ||
ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/people_group.ldif | |||
ldapadd -x -W -D "cn=admin,dc= | ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/group.ldif | ||
ldapadd -x -W -D "cn=admin,dc= | ldapadd -x -W -D "cn=admin,dc=infra2009,dc=teenused" -f ~/passwd.ldif | ||
ldapadd -x -W -D "cn=admin,dc= | |||
</pre> | </pre> | ||
Key-dest lähemalt: | 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. | |||
<pre> | |||
apt-get install samba samba-doc smbldap-tools smbclient libnss-ldap ldapscripts libtalloc1 | |||
</pre> | |||
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: | |||
<pre> | |||
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/ | |||
</pre> | |||
Pakime lahti eelnevalt kopeeritud faili: | |||
<pre> | |||
gzip -d /etc/ldap/schema/samba.schema.gz | |||
</pre> | |||
Ava slapd.conf fail: | |||
<pre> | |||
nano /etc/ldap/slapd.conf | |||
</pre> | |||
... ja lisa allpool näidatud plokki antud include rida: | |||
<pre> | |||
# Schema and objectClass definitions | |||
include /etc/ldap/schema/samba.schema | |||
</pre> | |||
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> | |||
nano /etc/samba/smb.conf | |||
</pre> | |||
<pre> | |||
[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 | |||
</pre> | |||
==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: | |||
<pre> | |||
cd /usr/share/doc/smbldap-tools/examples/ | |||
</pre> | |||
Kopeeri konfiguratsiooni failid /etc/smbldap-tools kausta: | |||
<pre> | |||
cp smbldap_bind.conf /etc/smbldap-tools/ | |||
cp smbldap.conf.gz /etc/smbldap-tools/ | |||
</pre> | |||
Paki lahti smbldap.conf.gz fail: | |||
<pre> | |||
gunzip /etc/smbldap-tools/smbldap.conf.gz | |||
</pre> | |||
Ava kaust /etc/smbldap-tools directory: | |||
<pre> | |||
cd /etc/smbldap-tools/ | |||
</pre> | |||
Leia SAMBA domeeni jaoks SID (Security ID): | |||
<pre> | |||
net getlocalsid | |||
</pre> | |||
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... | |||
<pre> | |||
nano /etc/smbldap-tools/smbldap.conf | |||
</pre> | |||
...ning muuda seda faili vastavalt. Välja peaks see nägema umbes selline: | |||
<pre> | |||
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" | |||
</pre> | |||
Ava /etc/smbldap-tools/smbldap_bind.conf fail... | |||
<pre> | |||
nano /etc/smbldap-tools/smbldap_bind.conf file | |||
</pre> | |||
..ning muuda seda faili vastavalt oma individuaalsele seadistusele. Välja peaks see nägema umbes selline: | |||
<pre> | |||
slaveDN="cn=admin,dc=infra2009,dc=teenused" | |||
slavePw="root2" | |||
masterDN="cn=admin,dc=infra2009,dc=teenused" | |||
masterPw="root2" | |||
</pre> | |||
Sea õiged õigused järgnevatele failidele: | |||
<pre> | |||
chmod 0644 /etc/smbldap-tools/smbldap.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> | |||
=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: | |||
<pre> | |||
smbldap-useradd -a -m -P david | |||
</pre> | |||
Loome ühtlasi testgrupi käsuga '''smbldap-groupadd -a -g -t 2 <kasutajanimi>''' Näiteks: | |||
<pre> | <pre> | ||
smbldap-groupadd -a -g -t 2 david | |||
</pre> | </pre> | ||
== | 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> | |||
apt-get install ldap-utils | |||
</pre> | |||
Testi, kas server tagastab LDAP andmebaasis olevad kirjed LDIF kujul. | |||
<pre> | |||
ldapsearch -x -b dc=infra2009,dc=teenused | |||
</pre> | |||
[[image:Ldapsearch_postinstall_test.JPG|400px]] | |||
==Samba testimine== | |||
Veendu, et klientarvutis oleks olemas smbclient: | |||
<pre> | |||
apt-get install smbclient | |||
</pre> | |||
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> | |||
nano /etc/syslog.conf | |||
</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= | ||
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. | 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.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= | ||
[http://www.howtoforge.com/openldap-samba-domain-controller-ubuntu7.10-p2 openldap samba domain controller ubuntu 7.10] | |||
[http://www.debuntu.org/ldap-server-and-linux-ldap-clients LDAP server and linux LDAP client] | |||
[http://www.debuntu.org/ldap-server-and-linux-ldap-clients LDAP server and linux LDAP client] | [http://www.debuntu.org/ldap-server-and-linux-ldap-clients LDAP server and linux LDAP client] | ||
[https://www.opends.org/wiki/page/Ldapsearch LDAPsearch] | [https://www.opends.org/wiki/page/Ldapsearch LDAPsearch] | ||
[http://kuutorvaja.eenet.ee/wiki/OpenLDAP_kasutamine_Debianiga Open LDAP kasutamine Debianiga] | [http://kuutorvaja.eenet.ee/wiki/OpenLDAP_kasutamine_Debianiga Open LDAP kasutamine Debianiga] | ||
[[Category:IT infrastruktuuri teenused]] | [[Category:IT infrastruktuuri teenused]] |
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
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