<?xml version="1.0" encoding="iso-8859-2"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book id="index" lang="hu"><bookinfo>
<title>LDAP HOGYAN</title>
<pubdate>v1.09, 2004.03.05</pubdate>
<author><firstname>Luiz</firstname>
<othername>Ernesto Pinheiro</othername>
<surname>Mal&egrave;re</surname>
<affiliation><address><email>malere@yahoo.com</email></address></affiliation></author>
<abstract><para>Ez a dokumentáció a Linux operációs rendszeren LDAP
(Lightweight Directory Access Protocol) szerver telepítéséről, konfigurálásáról
és üzemeltetéséről szól. Részletesen leírja, hogyan lehet létrehozni LDAP
adatbázist, miként frissíthetők és törölhetők az információk az adatbázisban. Ez
a dokumentáció leginkább a University of Mitchigan LDAP információs oldalai és az
OpenLDAP adminisztrátorok kézikönyve alapján készült.</para></abstract>

<revhistory>
<revision><revnumber>1.09</revnumber>
<date>2004.03.05</date>
<revremark>OpenLDAP 2.2 és általános javítások.	</revremark></revision>

<revision><revnumber>1.08</revnumber>
<date>2003.04.02</date>
<revremark>SASL, DIGEST-MD5 hitelesítéssel.</revremark></revision>

<revision><revnumber>1.07</revnumber>
<date>2002.09.16</date>
<revremark>Szedési javítások.</revremark></revision>

<revision><revnumber>1.06</revnumber>
<date>2002.07.17</date>
<revremark>Áttérés a Docbook XML standard formátumra, a szöveg teljes felülvizsgálata.
OpenLDAP 2.1 bemutatása. </revremark></revision>

<revision><revnumber>1.05</revnumber>
<date>2001.06.22</date>
<authorinitials>lepm</authorinitials>
<revremark>Megoldás a "hosszú sorok" problémára
(a doksi PDF formában szétcsúszott).</revremark></revision>

<revision><revnumber>1.04</revnumber>
<date>2001.02.28</date>
<authorinitials>lepm</authorinitials>
<revremark>Tipográfiai javítások, és a "Roaming
Access", "Azonosítás LDAP segítségével" fejezetek frissítése.</revremark>
</revision>

<revision><revnumber>1.03</revnumber>
<date>2000.09.28</date>
<authorinitials>lepm</authorinitials>
<revremark>Az OpenLDAP 2.0 bemutatása, ami már az LDAP v3-at tartalmazza, idevágó szabvány: <ulink url="ftp://ftp.isi.edu/in-notes/rfc2251.txt">RFC2251</ulink></revremark></revision>

<revision><revnumber>1.02</revnumber>
<date>2000.09.13</date>
<authorinitials>lepm</authorinitials>
<revremark>Szöveg javítások, új fejezet a "Verziótörténet".</revremark></revision>

<revision><revnumber>1.01</revnumber>
<date>2000.02.15</date>
<authorinitials>lepm</authorinitials>
<revremark>Új fejezetek az "LDAP migrációs eszközök", "Azonosítás LDAP használatával", "Grafikus LDAP eszközök", "RFC-k"</revremark></revision>

<revision><revnumber>1.00</revnumber>
<date>1999.06.20</date>
<authorinitials>lepm</authorinitials>
<revremark>A legelső változat.</revremark></revision>

</revhistory></bookinfo>

<chapter id="Introduction">
<title>Bevezetés</title>
<para> Ez a dokumentum az LDAP szerver telepítésének és használatának leírása Linux operációs rendszeren.
Tartalmazza, hogyan telepíthető, konfigurálható, és üzemeltethető az LDAP szerver, és ezek után
hogyan tárolhatók, kereshetők és frissíthetők adatok az adatbázisban, LDAP kliensek és segédprogramok használatával.
Az LDAP címtár szolgáltatást nyújtó démont <emphasis>slapd</emphasis>-nek hivják, és sok 
különböző Unix platformon fut. </para>


<para> Egy másik démon gondoskodik az LDAP szerverek közötti replikációról.
Ezt slurpd-nek hívják, és egyelőre nem foglalkozunk vele.
Ez a dokumentáció a slapd démonról szól, amely lokális hálózatokon nyújt címtárszolgáltatást,
replikáció - vagyis slurpd - nélkül. További információt a többszörözésről a <ulink
url="http://www.openldap.org/doc/admin22/replication.html">OpenLDAP Administrator's Guide</ulink>
(OpenLDAP adminisztrátorok kézikönyve) dokumentumban találsz.</para>

<para> Az LDAP szervernek ez az egyszerű beállítása megfelelő kezdés lesz,
amelyet később könnyen továbbfejleszthetsz, ha akarsz. Ez a dokumentáció bemutatja az LDAP protokoll
használatához szükséges kezdeti lépéseket.
Lehetséges, hogy miután végigérünk a dokumentumon elég erőt érzel majd magadban a további fejlesztői munkához,
a szerver lehetőségeinek minél teljesebb kihasználásához - sőt, saját kliens programozásához
- a fellelhető C, C++ és Java fejlesztő eszközökkel. </para>

<section id="WhatisLdap">
<title> Mi az LDAP? </title>
<para> Az LDAP betűszó az angol "Lightweight Directory Access Protocol" (könnyű címtár elérési
protokoll) kifejezésből származik. Ahogy a név is sugalmazza az LDAP kliens-szerver protokoll, címtár szolgáltatás eléréséhez, melyet eleinte főleg X.500 hozzáféréshez alkalmaztak.
Az LDAP TCP/IP vagy más kapcsolat orientált átviteli szolgáltatást használhat. Az
	LDAP az <ulink url="ftp://ftp.isi.edu/in-notes/rfc2251.txt">RFC2251</ulink>-ben
- "The Lightweight Directory Access Protocol (v3)" - van definiálva.
(Még egy URL: <ulink url="http://www.faqs.org/rfcs/rfc2251.html">RFC2251</ulink> - a fordító)</para>


<para> A címtár olyan, mint egy adatbázis, de arra törekszik, hogy magába foglaljon egy részletesebb,
tulajdonság alapú információkezelést. Általában az információt a címtárban gyakrabban olvassák, mint írják.
Ennek következtében a címtárak általában nem alkalmaznak bonyolult tranzakció kezelést vagy roll-back rendszereket,
amiket általában az adatbáziskezelők használnak a nagy méretű, összetett frissítésekhez. 
A címtár aktualizálása tipikusan egyszerű, mindent vagy semmit jellegű változás.
A címtárakat összetett kérdések gyors megválaszolására hangolták. 
Képes arra, hogy széles körben sokszorosítsa az információkat azért, hogy növelje az elérhetőséget 
és a rendelkezésre állást, miközben a válaszidőt csökkenti.
A többszörözött címtár információk egyes példányai között átmeneti rendezetlenség megengedett, 
de a többszörözések (replica) végül szinkronba kerülnek. </para>

<para> Sok különböző lehetőség van címtár szolgáltatás nyújtására.
Különböző eljárásokkal más és más információk tárolhatók a címtárban, 
különböző követelmények szerint lehet hivatkozni az információkra, lekérdezni és frissíteni az adatokat, megvédeni azokat a meg nem engedett 
hozzáféréstől, stb. Néhány címtár szoláltatás lokális, és korlátozott környezetben 
nyújt szolgáltatásokat (például a finger szolgáltatás önálló gépen).
Más szolgáltatások globálisak, széles körben elérhetőek. </para></section>


<section id="HowitWorks">
<title>Az LDAP működése</title>
<para> Az LDAP címtárszolgáltatás kliens-szerver modellen alapul. Egy vagy több LDAP szerveren 
tárolt adatból épül fel az LDAP fa vagy LDAP háttér adatbázis. Az LDAP kliens 
egy LDAP szerverhez csatlakozik, és teszi fel a kérdéseit. A szerver megválaszolja a kérdést, vagy egy mutatót ad vissza, hol talál több információt a kliens (tipikusan egy 
másik LDAP szerver). Mindegy, hogy a kliens melyik LDAP szerverhez csatlakozik,
ugyanazt a címtárat látja, ugyanaz a név az egyik címtár szerveren ugyanazt az 
adatot jeleníti meg, mint a másikon. Ez fontos tulajdonsága az olyan globális
címtárszolgáltatásoknak, mint az LDAP.</para></section>

<section id="LdapBackends">
<title> LDAP hátterek, objektumok és tulajdonságok</title>
<para>Az LDAP szerver démon neve <emphasis>Slapd</emphasis>, ez
több különböző, szabadon választható <command>háttér adatbázis</command> használatát támogatja.</para>

<para>Ezek között van az <command>elsődlegesen támogatott BDB</command>, egy nagy teljesítményű tranzakciós háttér adatbázis; az LDBM, a egyszerű DBM-re épülő háttér-adatbázis (database backend); a
SHELL, az adatbázis interfész tetszőleges UNIX parancs vagy shell szkript eléréséhez, és a PASSWD, a passwd(5) jelszó adatbázis eléréséhez.</para>

<para>BDB segédeszközök: <ulink url="http://www.sleepycat.com/">Sleepycat</ulink> Berkeley DB 4. LDBM
segédeszközök: <ulink url="http://www.sleepycat.com/">Berkeley DB</ulink> vagy a <ulink url="http://www.gnu.org/software/gdbm/">GDBM</ulink>.</para>

<para>A BDB tranzakciós hátér adatbázist többfelhasználós olvasási/írási adatbázis elérésre fejlesztették ki, mindenféle olvasási/írási művelet
kombinációjával. A BDB olyan programokkal használható együtt, melyekhez szükségesek a következők:

<itemizedlist>
<listitem><para>Tranzakciók, beleértve a
többszörös változtatást az adatbázison, a visszaállítás lehetőségével együtt. </para></listitem>

<listitem><para>A rendszerösszeomlásokból és hardverhibákból fakadó hibák helyreállításának képessége, minden lezajlott tranzakció elvesztése
nélkül. </para></listitem>
</itemizedlist></para>

<para>Ez a leírás a <command>BDB háttér adatbázis</command> használatát feltételezi.</para>

<para> A címtár információk importálása és exportálása két LDAP alapú címtárszolgáltató szerver között, és a
címtárakban alkalmazott változások leírása az LDIF formátumként ismert (LDAP Data Interchange Format; LDAP adatcserélési formátum) fájlokkal lehetséges. Az LDIF fájl a bejegyzéseket
objektum orientált hierarchikus formában tárolja. Az LDAP csomag tartalmazza az LDIF fájlok BDB formátumba konvertálásához szükséges eszközöket. </para>

<para>Egy LDIF fájl általában így néz ki:</para>

<screen>
dn: o=TUDelft, c=NL
o: TUDelft
objectclass: organization
dn: cn=Luiz Malere, o=TUDelft, c=NL
cn: Luiz Malere
sn: Malere
mail: malere@yahoo.com
objectclass: person
</screen>

<para> Mint látható, minden bejegyzésnek saját azonosítója van, a distinguished name (DN; megkülönböztető név). A DN a bejegyzés nevéből áll, megtoldva a név
elérési útjával vissza a címtár hierarchia csúcsáig (mint egy fánál).</para>

<para> Az LDAP-nál az <command>objektumosztályok</command> határozzák meg
a bejegyzések azonosításához használható <command>jellemzők</command> csoportját. 
Az LDAP standard az alábbi alapvető objektum osztályokat nyújtja:</para>

<itemizedlist>
<listitem><para> Group (csoport), független
objektumok rendezetlen listája vagy objektumok csoportja.</para></listitem>

<listitem><para> Location (elhelyezkedés), az országok nevei és leírásuk.</para></listitem>


<listitem><para> Organization (szervezet).</para></listitem>

<listitem><para> People (személy).</para></listitem>
</itemizedlist>


<para> Egy bejegyzés több objektumosztályhoz is tartozhat. Például a person bejegyzést definiálja a <emphasis>person</emphasis> 
objektumosztály, de szintén definiálják az inetOrgPerson, groupOfNames és 
organization objektumosztályok. Az LDAPserver objektumosztály struktúráját
(sémáját) meghatározza az egyes bejegyzések számára szükséges és engedélyezett 
attribútumok egyéni listája.</para>

<para> A címtár az adatokat jellemző-érték (attribute-value) párosként jeleníti meg. 
Az információ meghatározott darabjai a leíró attribútumhoz tartoznak.</para>

<para> Például, a commonName (köznév), vagy cn attribútum az egyének nevét tárolja.
A Jonas Salk nevű embert a címtárban a következő bejegyzés azonosítja:</para>

<screen>cn: Jonas Salk</screen>


<para> Minden, a címtárban bejegyzett egyént a <emphasis>person</emphasis>
objektumosztályban tárolt jellemzők csoportja ír le. Más jellemzőket is lehet ugyanabban a bejegyzésben használni:</para>

<screen>
givenname: Jonas
surname: Salk
mail: jonass@airius.com
</screen>


<para> A bejegyzéshez szükséges jellemzőket tartalmaznia kell a használt
objektumosztálynak. Minden bejegyzésnek tartalmaznia kell az objectClass-t, ami 
a bejegyzéshez tartozó objektumosztályok listáját tartalmazza.</para>

<para> Az engedélyezett jellemzőknek szerepelnie kell a használt
objektumosztályban. Például, a person objektumosztályban a cn és sn jellemzők
szükségesek. A leírásban a telephoneNumber, seeAlso és userpassword jellemzők 
engedélyezettek, de nem szükségesek.</para>

<para> Minden attribútumnak meghatározott szintaxis-definíciója van. A szintaxis-definíció információt nyújt a jellemzőről, mint például:</para>

<itemizedlist>
<listitem><para>bin binary (bináris)</para></listitem>

<listitem><para>ces case exact string (betűnagyságnak meg kell egyeznie az összehasonlítás során).</para></listitem>

<listitem><para>cis case ignore string (betűnagyságnak nem kell egyeznie az összehasonlítás során).</para></listitem>

<listitem><para>tel telephone number string (olyan, mint a cis, de a "-" kihagyásával).</para></listitem>

<listitem><para>dn distinguished name (megkülönböztető név).</para></listitem>
</itemizedlist>


<para><command>Figyelem! </command>Az objektumosztályok és a jellemzők általában egy - az OpenLDAP telepítési könyvtárában a 
<emphasis>schema</emphasis> alkönyvtárban található séma-fájl szerint állnak össze.</para></section>



<section id="NewVersions">
<title> A dokumentum újabb változatai </title>

<para> Ennek a leírásnak az olvasók visszajelzési alapján korrigált és frissített változata megtalálható 
angol nyelven a </para>

<para><ulink url="http://www.tldp.org/HOWTO/LDAP-HOWTO.html">http://www.tldp.org/HOWTO/LDAP-HOWTO.html</ulink></para>

<para>honlapon</para></section>


<section id="opinions">
<title> Javaslatok és vélemények </title>

<para> Ha bármilyen kétség merül fel benned valamilyen, az angol dokumentumban található információval kapcsolatban, 
angolul írj levelet erre a <ulink url="malere@yahoo.com">malere@yahoo.com</ulink> e-mail címre</para>

<para>Egyéb, a témába vágó hozzáfűzni valód, javaslatod, ötleted is várom!</para></section>


<section id="Acknowledgements">
<title> Köszönetnyilvánítás </title><para> Ez a HOGYAN a TUDelft University - Hollandia -   segítségével jött létre.
Szeretnék köszönetet mondani mindazoknak, akik ennek a dokumentumnak a megírására 
bíztattak: <emphasis>Rene van Leuken</emphasis> és <emphasis>Wim Tiwon</emphasis>.
Hálás köszönet érte! Ők is Linux-rajongók, akárcsak én. </para>

<para>Szintén köszönetet szeretnék mondani Thomas Bendler-nek, a német nyelvű LDAP-HOGYAN elkészítéséért 
és sok hasznos ötletéért. Valamint Joshua Go-nak, az LDP projekt önkéntesének. </para>

<para>Karl Lattimer megérdemelne egy különdíjat a SASL részben nyújtott segítségéért. </para>

<para>And thanks my Lord !</para></section>


<section id="copyright">
<title>Szerzői jog és licenc</title>

<para>Copyright (c) 1999 Luiz Ernesto Pinheiro Mal&egrave;re.
(Az LDAP Linux HOGYANt 1999-ben Luiz Ernesto Pinheiro Mal&egrave;re készítette.) A 
dokumentum szabadon terjeszthető, másolható és módosítható a Free Software Foundation által kiadott GNU FDL v1.1, vagy annak későbbi változatában leírt feltételek szerint. A GNU FDL külön fejezetben található, ennek a dokumentumnak a végén.</para>

<para>Ha kérdésed van látogass el a <ulink url="http://www.gnu.org/licenses/fdl.txt">http://www.gnu.org/licenses/fdl.txt</ulink>
oldalra, és lépj kapcsolatba a LINUX-HOGYAN koordinátorával az <ulink url="guylhem@metalab.unc.edu">guylhem@metalab.unc.edu</ulink> e-mail címen.</para></section>

<section id="ipmasq-hu-translation">
<title>Magyar fordítás</title>
<para>
A magyar fordítást <ulink url="mailto:halasz.g@nns.hu_NO_SPAM">Halász Gábor</ulink> készítette (2000).
A fordítást <ulink url="mailto: petvolgyi[kukac]freemail[pont]hu">Völgyi Péter</ulink> frissítette (2004.01.26). 
A frissítést lektorálta <ulink url="mailto: kormos[kukac]mail.datatrans[pont]hu">Kormos György</ulink> (2004.03.16). Az utolsó frissítést <ulink url="mailto: dacas[kukac]freemail[pont]hu">Daczi László</ulink> jelenleg is végzi.
Eme dokumentum legfrissebb változata megtalálható a <ulink url="http://tldp.fsf.hu/index.html">Magyar Linux Dokumentációs Projekt</ulink> honlapján.
</para>
</section>

</chapter>

<chapter id="Installing">
<title> Az LDAP szerver telepítése </title>
<para>Öt lépés szükséges a szerver telepítéséhez:
<itemizedlist>
<listitem><para>Telepítsd a szerverhez szükséges programokat (ha még nincsenek telepítve a gépedre). </para></listitem>
<listitem><para>Töltsd le a szerver programot.</para></listitem>
<listitem><para>Csomagold ki.</para></listitem>
<listitem><para>Állítsd be a Makefile fájlt.</para></listitem>
<listitem><para>Fordítsd le a szervert.</para></listitem>
</itemizedlist></para>

<para>(Azért egyszerűbb, ha a kedvenc disztribúciódban található OpenLDAP csomagot használod, ahelyett, hogy a forrással bajlódnál - a fordító)</para>


<section id="PreReq">
<title>Előfeltételek</title>


<para>Az LDAPv3 működéséhez az OpenLDAP kliensnek és szervernek szüksége van további csomagok 
telepítésére is. E dokumentum írásához dobozos Mandrake 9.0-t használtam, 
2.4.20-as rendszermaggal, forrásból telepítettem a Berkeley BDB-t és a SASL 
programkönyvtárakat. </para>


<para><command>OpenSSL TLS programkönyvtárak</command></para>

<para>Az OpenSSL TLS programkönyvtárai általában az alaprendszer részét képezik, vagy
opcionális programrészként jelennek meg. Az OpenSSL hivatalosan a <ulink
url="http://www.openssl.org">http://www.openssl.org</ulink> webhelyen található.</para>

<para><command> Azonosítás Kerberos-szal</command></para>

<para>Az OpenLDAP kliensek és szerverek támogatják a Kerberos alapú
azonosítást. Az OpenLDAP kiemelten támogatja a Heimdal vagy MIT Kerberos V alapú
SASL/GSSAPI azonosítási metódust. Ennek a használatához a megfelelő csomagokat
(Heimdal vagy MIT Kerberos V) telepíteni kell. 
A Heimdal Kerberos a <ulink url="http://www.pdc.kth.se/heimdal">http://www.pdc.kth.se/heimdal</ulink>,
 a MIT Kerberos a <ulink url="http://web.mit.edu/kerberos/www">http://web.mit.edu/kerberos/www</ulink>
 webhelyen található meg.</para>
<para>A Kerberos szintű, emelt biztonsági fokú azonosítás használata erősen javasolt.</para>

<para><command>A Cyrus féle SASL programkönyvtárak</command></para>

<para>A Cyrus féle SASL (Simple Authentication and Security Layer; egyszerű azonosítás és biztonsági szint) programkönyvtárak általában az alaprendszer részét képezik, vagy kiegészítő csomagokként találhatóak meg.
A Cyrus SASL a <ulink url="http://asg.web.cmu.edu/sasl/sasl-library.html">http://asg.web.cmu.edu/sasl/sasl-library.html</ulink>
webhelyen található meg.

A Cyrus SASL csak akkor tudja használni az OpenSSL és a Kerberos/GSSAPI programkönyvtárakat, ha azokat előbb telepíted nála.
A dokumentum írása során a Cyrus SASL 2.1.17 verzióját használtam.</para>


<para><command>Adatbázis szoftverek</command></para>


<para>A Slapd's elsődleges adatbázis háttere a BDB, működéséhez szükséges a <ulink url="http://www.sleepycat.com">Sleepycat Software Berkeley DB</ulink> (v4). 
Amennyiben a beállításkor nem áll rendelkezésre, akkor a slapd-t nem lehet elsődleges hátttér adatbázissal használni.</para>

<para>Ha nincs sem az alap Linux rendszereden, sem kiegészítő csomagként Berkeley DB (v4), 
a legegyszerűbben a <ulink url="http://www.sleepycat.com/download/index.shtml">Sleepycat</ulink> webhelyen lehet hozzájutni.
A dokumentum frissítése idején a legújabb stabil, és ajánlott verzió a 4.2.52-es.
Az OpenLDAP slapd LDBM háttér többféle adatbázis kezelő, menedzselő felület használatát támogatja,
így például a Berkeley DB (v3) és a GDBM használatát is. A GDBM letölthető az <ulink url="http://www.fsf.org/">FSF</ulink> webhelyéről, amely a
<ulink url="ftp://ftp.gnu.org/pub/gnu/gdbm/">ftp://ftp.gnu.org/pub/gnu/gdbm/</ulink> honlapon található.</para>

<para><command>Szálak</command></para>

<para>A többszálúság nagy valószínűséggel alapértelmezetten támogatott a Linux rendszereden. Az OpenLDAP-t úgy tervezték, hogy ennek előnyeit kihasználhassa. Az OpenLDAP támogatja a POSIX pthread,
 a Mach CThread és még számos más szálkezelési technológiát.
A <emphasis>konfigurációs</emphasis> szkript jelez, ha nem talál alkalmas szálkezelési rendszert.
Amennyiben ilyesmi fordulna elő keresd fel az OpenLDAP GYIK-et, amely a <ulink url="http://www.openldap.org/faq/">http://www.openldap.org/faq/</ulink> honlapon található.</para>


<para><command>TCP szűrők</command></para>


<para>A <emphasis>Slapd</emphasis> támogatja a TCP szűrők (IP szintű hozzáférés szűrők) használatát, 
amennyiben az előbb lett telepítve mint a slapd.
A TCP szűrő vagy más IP alapú hozzáférés szűrő (mint egy IP alapú tűzfal) használata javasolt nem publikus szerverek adatainak védelmére.</para></section>


<section id="Download">
<title>A csomag letöltése</title>

<para>
Két szabadon terjeszthető LDAP szerver ismert, a Univesity of Michigan LDAP szerver és az OpenLDAP szerver.
Létezik még a Netscape Directory Server, ami bizonyos körülmények között szabadon használható (oktatási
intézmények például szabadon hozzájuthatnak). Az OpenLDAP szerver a University of Michigan Server legfrissebb változatán alapul,
további dokumentumok és levelezőlisták találhatók a témába vágóan.
Ez a dokumentum az OpenLDAP szerver használatát feltételezi.</para>
<para>(Az UM LDAP szerver kissé másképp kezeli a tranzakciókat,
mint a Netscape Directory Server, ezért nem működik együtt a Netscape Navigatorral.
Az OpenLDAP szerver a Netscape szerveréhez hasonlóan működik,
ezért mindenképpen ezt használd, különben "megmagyarázhatatlan" hibákkal fogsz találkozni.
Ha nem használsz Netscape Navigatort, akkor szabadon választhatsz. - a ford.)</para>

<para>Az aktuális OpenLDAP verziót a <ulink url="http://www.openldap.org">http://www.openldap.org</ulink> webhelyen találod meg.</para>

<para>A University of Michigan Server legfrissebb változata az <ulink url="ftp://terminator.rs.itd.umich.edu/ldap">ftp://terminator.rs.itd.umich.edu/ldap</ulink> webhelyen található.</para>

<para>Ennek a dokumentumnak a megírásához az OpenLDAP 2.2.5-os változatát
használtam, rendszerem a Mandrake 9.0, 2.4.20-as rendszermaggal.</para>

<para>Az OpenLDAP webszerverén megtalálod az OpenLDAP szerver legutolsó
stabil és fejlesztői változatát. A dokumentum frissítésekor az
utolsó stabil változat az openldap-stable-20031217.tgz (v: 2.1.25),
a fejlesztői változat az OpenLDAP-2.2.5.tgz.</para></section>


<section id="Unpacking">
<title>A szerver csomag kitömörítése</title>

<para>Ha az betömörített csomag rendelkezésre áll a számítógépen, tömörítsük ki. </para>
<para>Először másoljuk a csomagot a megfelelő helyre, például a /usr/local könyvtárba.
Ezután a következő parancsot használva kitömöríthetjük a csomagot:</para>
<screen>tar xvzf openldap-2.2.5.tgz </screen>
<para>Ugyanilyen jól használható a következő is: </para>
<screen>gunzip openldap-2.2.5.tgz | tar xvf -</screen></section>


<section id="Configuring">
<title> A program beállítása </title>
<para>Az OPenLDAP szerverrel együtt terjesztett beállító szkript segít a telepítő könyvtár, a
fordító (compiler) és szerkesztő (linker) kapcsolóinak beállítására. Segítséget kaphatunk a következő parancsot kiadva
abban a könyvtárban, ahová a csomagot kitömörítettük:</para>

<screen>./configure --help</screen>

<para>Ez ki fogja írni az összes lehetőséget a konfiguráló szkript beállításához, mielőtt a programot lefordítanánk.
Néhány hasznos lehetőség a --prefix=pref, --exec-prefix=eprefix és a --bindir=dir, a telepítési
könyvtár beállításához. Ha a configure szkriptet paraméterek nélkül futtatod,
automatikusan megállapítja a szükséges beállításokat és előkészíti a telepítést
az alapértelmezett helyre. Tehát gépeld be:</para>

<screen>./configure</screen>

<para> Figyeld a kimenetét, hogy lásd, minden a megfelelően történik-e.</para>


<para><command>Tipp:</command> Néha szükséges a konfigurációs szkript speciális beállítása is, mint például --with-tls
(a slapd biztonságos csatornán keresztüli használatához. LDAPS://). Ebben az 
esetben az SSL/TLS könyvtárak nem biztos, hogy a standard könyvtárakban vannak. 
Beállíthatod az elérési utakat a környezeti paraméterek változtatásával. Ehhez 
használd az <emphasis>env</emphasis> parancsot.

Tételezzük fel, hogy az openssl csomagot az /usr/local/openssl könyvtárba telepítetted. A következő 
paranccsal a slapd SSL/TLS támogatással fordítható: </para>

<screen>env CPPFLAGS=-I/usr/local/openssl/include \
      LDFLAGS=-L/usr/local/openssl/lib \
      configure --with-tls ...</screen>

<para>A következő környezeti változókat lehet beállítani az <emphasis>env</emphasis> paranccsal, 
még a beállítási szkript futtatása előtt:

<itemizedlist>
<listitem><para>CC: Alternatív C fordító.</para></listitem>
<listitem><para>CFLAGS: További fordító kapcsolók beállítása</para></listitem>
<listitem><para>CPPFLAGS: C előfeldolgozó kapcsolók beállítása. </para></listitem>
<listitem><para>LDFLAGS: Linker kapcsolók beállítása.</para></listitem>
<listitem><para>LIBS: További könyvtárak beállítása.</para></listitem>
</itemizedlist></para></section>


<section id="Building">
<title> A szerver fordítása </title>
<para> A program konfigurálása után elkezdődhet a fordítás.
Először a függőségeket hozzuk létre a következő paranccsal: </para>

<screen>make depend</screen>

<para>Majd a szerver fordításához a következő parancsot kell használni: </para>

<screen>make</screen>

<para> Ha minden jól ment, a szerver a beállításoknak megfelelően elkészült. Ha 
nem, térj vissza az előző lépéshez, és tekintsd át a beállításokat. 
Az INSTALL és a README fájlokat érdemes elolvasni! Ellenőrizd a rendszerspecifikus beállításokra vonatkozó javaslatokat,
 mely a doc/install/configure fájlban található meg. </para>

<para>Ahhoz, hogy biztosak legyünk a dolgunkban, futtassunk egy tesztet is (csak néhány percről van szó): </para>

<screen>make test</screen>

<para>Ha minden OK, a beállításoknak megfelelő tesztek lefutnak.
Néhány tesztet átugorhat a program, mint például a többszörözésre vonatkozót. </para>

<para>Most telepítsd a bináris fájlokat és a kézikönyveket (manual). Ennek elvégzéséhez 
root felhasználóként add ki a következő parancsot:</para>

<screen>su root -c 'make install'</screen>

<para> Ez minden, most már megvannak a szerver és sok segédprogram bináris 
fájljai. A következő <xref linkend="Config"/>ben az OpenLDAP szerver működésének beállításáról lesz szó . </para></section></chapter>

<chapter id="Config">
<title> Az LDAP szerver konfigurálása </title>

<para> Ha a programot telepítetted és lefordítottad, jöhet a beállítás.
A slapd futásidejű beállítása a konfigurációs könyvtárban található <emphasis>slapd.conf</emphasis> fájlon keresztül végezhető el,
amelyet a konfigurációs szkript állít be, alapértelmezés szerint ez a /usr/local/etc/openldap.
(Ha csomagból telepíted, akkor valószínűleg a /etc/openldap könyvtárban találod - a fordító) </para>

<para>Ez a fejezet a <emphasis>slapd.conf.</emphasis> általános beállítási elveit részletezi.
A teljes felsorolást megtalálhatod a slapd.conf(5) kézikönyv oldalon (manual page).
A konfigurációs fájl több részre osztható, úgymint: <command>global (általános)</command>,
<command>backend specific (háttér specifikus)</command> és <command> database
specific (adatbázis specifikus)</command>. A következőkben találhatod a direktívák
magyarázatait, az alapértékeikkel együtt (ha van), példákkal illusztrálva. </para>


<section id="ConfigFormat">
<title> Konfigurációs file formátuma </title>

<para>A slapd.conf fájl három konfigurálási információt tartalmaz:global (általános),
backend specific (háttér-specifikus), and database specific (adatbázis-specifikus).
Először az általános rész kerül beállításra, ezt követi a háttér,
majd az adott adatbázisra vonatkozó rész zárja a konfig fájlt. </para>

<para> Az általános opciók később felülbírálhatók a háttér 
és/vagy az adatbázis részben, a háttér részben beállított opciók felülbírálhatók az 
adatbázis részben (azoknak az opcióknak, amik egynél többször szerepelnek az 
slapd.conf-ban, utolsó megjelenésük lesz érvényes - a fordító). </para>

<para> Az üres sorok és a "#" jellel kezdődő sorok figyelmen kívül maradnak.
Ha white space-el kezdődik a sor, akkor a következő sor folytatásaként érvényesül
(még akkor is, ha az előző sor megjegyzés).
Az slapd.conf általános formája a következő: </para>

<screen>

# global configuration directives
&lt;global config directives&gt;

# backend definition
backend &lt;typeA&gt;
&lt;backend-specific directives&gt;

# first database definition &amp; config directives
database &lt;typeA&gt;
&lt;database-specific directives&gt;

# second database definition &amp; config directives
database &lt;typeB&gt;
&lt;database-specific directives&gt;

# second &quot;typeA&quot; database definition &amp; config directives
database &lt;typeA&gt;
&lt;database-specific directives&gt;

# subsequent backend &amp; database definitions &amp; config directives
... </screen>


<para>A konfigurációs fájl paraméterezhető. A paramétereket white space-ek választják el.
 Ha a paraméter white space-t tartalmaz, akkor paramétereket idézőjelbe kell tenni, "mint ezt itt".
Ha az argumentum idézőjelet ' " ' vagy backslash-t '\' tartalmaz, 
akkor azt backslash karakternek kell megelőznie.(pl "\\d").</para>

<para> A disztribúció tartalmaz példa konfigurációt, amit a 
konfigurációs könyvtárban találsz (pl.: /usr/local/etc/openldap). A 
/usr/local/etc/openldap/schema könyvtárban található sok, általánosan használt 
jellemző, és objektumosztály definíció.</para></section>

<section id="GlobalDirect">
<title> Általános beállítási lehetőségek </title>

<para> Az ebben a fejezetben leírt beállítási lehetőségek valamennyi háttérre és 
adatbázisra érvényesek, amíg specifikusan felül nem írja a háttér vagy az 
adatbázis definíció. Az argumentumok aktuális értékét a &lt;kapcsok&gt; közé kell 
beírni. </para>

<screen>access to &lt;what&gt; [ by &lt;who&gt; &lt;accesslevel&gt; &lt;control&gt; ]+</screen>

<para> Ezen opció biztosítja az &lt;accesslevel&gt; által meghatározott módon (hogyan?) a &lt;what&gt;> által meghatározott
bejegyzésekhez (mit?) és tulajdonságokhoz a &lt;who&gt; által meghatározott kérelmezők
(ki?) hozzáférését. Részletek az <xref linkend="AccessControl"/> részben.</para>

<para><command>Fontos:</command> amennyiben nincs hozzáférési direktíva meghatározva, úgy az alapértelmezett hozzáférési szabály az
access to * by * read,  engedélyezi mind az azonosított, mind az anonymus felhasználóknak az olvasási jogot.</para>

<screen>attributetype &lt;RFC2252 Attribute Type Description&gt;</screen>

<para>Ez a direktíva egy paraméter típust határoz meg.
További információt találsz a <ulink url="http://www.openldap.org/doc/admin22/schema.html">Schema Specification</ulink> (minta) leírásban.</para>

<screen>idletimeout &lt;integer&gt;</screen>

<para> Meghatározza egy meddő kapcsolat bezárásának idejét. (Ennyi másodperc múlva kezdeményezi a kapcsolat megszakítását).
A 0 érték (alaphelyzet) kikapcsolja ezt a funkciót. </para>

<screen>include &lt;filename&gt;</screen>

<para> Ez az opció meghatározza azokat a konfigurációs állományokat, amelyeket a 
slapd végigolvas, mielőtt a következő sorral folytatná a fájl feldolgozását. A 
beemelt fájlnak követnie kell a slapd konfigurációs formátumát. Ezt a 
lehetőséget az adatbázis-háttér objektumosztályainak és attribútumainak 
definícióit tartalmazó fájlok beemelésére használható. </para>

<para><command> Megjegyzés:</command> óvatosan kezelendő ez az opció. Semmi nem korlátozza az 
egymásba ágyazott include-ok számát, és nincs hurokellenőrzés sem. </para>

<screen>loglevel &lt;integer&gt;</screen>

<para> Ez az opció specifikálja, hogy milyen hibakövető üzenetek és működési statisztikák kerüljenek az syslog-ba 
(jelenleg a syslogd-n(8) keresztül LOCAL4 jellemzővel kerülnek naplózásra az 
események). Ehhez az OpenLDAP-t --enable-debug kapcsolóval (alaphelyzet) kell 
fordítani a slapd-t, (kivéve a két stat szintet, amelyek mindig működnek). A 
loglevel értékei összeadódnak. Annak megjelenítéséhez,hogy melyik érték milyen 
üzeneteket eredményez, a slapd-t -? paraméterrel kell meghívni. Az értékek 
megtalálhatóak az alábbi táblázatban is (&lt;integer&gt;):</para>


<para><table tocentry="1">
<title>Hibakereső szintek</title>

<tgroup cols="2"><colspec colname="Level" colwidth="0"/><colspec colname="Description" colwidth="0"/>

<thead><row><entry>Szint</entry>
<entry>Leírás</entry></row></thead>


<tbody><row><entry>-1</entry>
<entry>enable all debugging (minden hibakövetés engedélyezve) </entry></row>
<row><entry>0</entry>
<entry>no debugging (nincs hibakövetés)</entry></row>
<row><entry>1</entry>
<entry>trace function calls (funkcionális hívások követése)</entry></row>
<row><entry>2</entry>
<entry>debug packet handling (csomagkezelés hibakövetése)</entry></row>
<row><entry>4</entry>
<entry>heavy trace debugging (kiterjedt hibakeresés)</entry></row>
<row><entry>8</entry>
<entry>connection management (kapcsolatkezelés)</entry></row>
<row><entry>16</entry>
<entry>print out packets sent and received (küldött és fogadott csomagok 
listázása)</entry></row><row><entry>32</entry>
<entry>search filter processing (kereső szűrő feldolgozása)</entry></row>
<row><entry>64</entry>
<entry>configuration file processing (konfigurációs fájl 
feldolgozása)</entry></row><row><entry>128</entry>
<entry>access control list processing (hozzáférési jogosultság lista 
feldolgozása)</entry></row><row><entry>256</entry>
<entry>stats log connections/operations/results (statisztika: napló 
kapcsolat/művelet/eredmény) </entry></row><row><entry>512</entry>
<entry>stats log entries sent (statisztika: elküldött 
naplóbejegyzések)</entry></row><row><entry>1024</entry>
<entry>print communication with shell backends (shell háttér kommunikáció 
megjelenítése)</entry></row><row><entry>2048</entry>
<entry>print entry parsing debugging (bejegyzés-fordítás 
hibakövetése)</entry></row></tbody></tgroup></table></para>


<para>Például: </para>

<para>loglevel 255 vagy loglevel -1</para>

<para> Ez nagyon sok üzenetet eredményez a syslog-ban. </para>

<para>Alapértelmezés:</para>


<para>loglevel 256</para>

<screen>objectclass &lt;RFC2252 Object Class Description&gt;</screen>

<para> Ez az opció definiálja a séma szabályokat az adott objektum-osztályokhoz.
További információt találsz a <ulink url="http://www.openldap.org/doc/admin22/schema.html">Schema Specification</ulink>
(minta) leírásban.</para>
<screen>referral &lt;URI&gt;</screen>

<para> Ez specifikálja, hova küldje a slapd a kérést, ha nem talál információt a 
kérés megválaszolásához a helyi adatbázisban. </para>

<para>Példa:</para>

<para>referral ldap://root.openldap.org</para>

<para> Ez átirányítja a nem lokális kéréseket a központi OpenLDAP szervernek 
(University of Michigan LDAP szerver - a fordító). Az ügyes LDAP kliensek újra felteszik a 
kérdést ennél a szervernél, de a legtöbb kliens csak arra képes, hogy egyszerű 
LDAP URL-eket kezeljen, melyek csak host részből és esetleg distinguished 
name-ből állnak. </para>

<screen>sizelimit &lt;integer&gt;</screen>

<para> Ez az lehetőség maximalizálja a keresésre adott válasz sorainak számát. </para>

<para>Alapértelmezett:</para>
<para>sizelimit 500</para>

<screen>timelimit &lt;integer&gt;</screen>

<para> Ez a kapcsoló specifikálja egy kérdés megválaszolására szánható maximális 
időt, másodpercekben (valós időben). Ha a kérést ez idő alatt nem sikerül 
megválaszolni, az eredmény időtúllépéssel (exceeded timelimit) tér vissza. </para>

<para>Alapértelmezés:</para>
<para>timelimit 3600</para></section>


<section id="GeneralBEDirect">
<title> Általános háttér opciók </title>

<para> Ezek az opciók csak azokra a hátterekre érvényesek, amelyekben szerepenek. 
Valamennyi háttértípusnál alkalmazhatók. A háttér opciók minden azonos típusú adatbázisnál megjelennek, 
és az adatbázis direktívákkal felülírhatók. </para>

<screen>backend &lt;type&gt;</screen>

<para>Ez az opció a háttér definíció kezdetét jelöli. A &lt;típus&gt; valamelyik 
bdb vagy a következők egyike kell legyen: 
<table tocentry="1">
<title>Adatbázis hátterek</title>

<tgroup cols="2"><colspec colname="Type" colwidth="0"/><colspec 
colname="Description" colwidth="0"/>
<thead><row><entry>Típus</entry>
<entry>Leírás</entry></row></thead>


<tbody><row><entry>bdb</entry>
<entry>Berkeley DB tranzakciós adatbázis</entry></row>
<row><entry>dnssrv</entry>
<entry>DNS SRV háttér</entry></row>
<row><entry>ldbm</entry>
<entry>Lightweight DBM hátér</entry></row>
<row><entry>ldap</entry>
<entry>Lightweight Directory Access Protocol (Proxy) háttér</entry></row>
<row><entry>meta</entry>
<entry>Meta Directory háttér</entry></row>
<row><entry>monitor</entry>
<entry>Monitor háttér</entry></row>
<row><entry>passwd</entry>
<entry> Read-only hozzáférést biztosít a passwd(5)fájlhoz</entry></row>
<row><entry>perl</entry>
<entry>Perl programozható háttér</entry></row>
<row><entry>shell</entry>
<entry>Shell (külső program) háttér</entry></row>
<row><entry>sql</entry>
<entry>SQL programozható háttér</entry></row>
<row><entry>tcp</entry>
<entry>TCP programozható háttér</entry></row></tbody></tgroup></table></para>

<para>Példa:</para>
<para>backend bdb</para>
<para>Ez a bejegyzés jelzi egy új BDB háttér definíciójának kezdetét.
</para></section>

<section id="GeneralDBDirect">
<title> Általános háttér opciók </title>

<para> Ezek az opciók csak azokra az adatbázis-hátterekre érvényesek, amelyekben 
szerepelnek. Valamennyi háttértípusnál alkalmazhatók. </para>

<screen>database &lt;típus&gt;</screen>

<para> Ez az opció jelzi az új adatbázis definíció kezdetét. A &lt;típus&gt; az 
előzőekben felsoroltak valamelyike legyen. </para>

<para>Példa:</para>

<para>database bdb</para>

<para> Ez egy új BDB típusú adatbázis definíció kezdetét jelzi. </para>

<screen>readonly { on | off }</screen>

<para> Ez az opció az adatbázist csak olvasható (read-only) módba kapcsolja. Az 
adatbázis módosításának kísérlete az "unwilling to perform" hibaüzenetet adja.</para>

<para>Alapértelmezés:</para>

<para>readonly off</para>

<screen>
replica uri=ldap[s]://&lt;hostname&gt;[:&lt;port&gt;] | host=&lt;hostname&gt;[:&lt;port&gt;]
                [bindmethod={simple|kerberos|sasl}]
                ["binddn=&lt;DN&gt;"]
                [saslmech=&lt;mech&gt;]
                [authcid=&lt;identity&gt;]
                [authzid=&lt;identity&gt;]
                [credentials=&lt;password&gt;]
                [srvtab=&lt;filename&gt;]
</screen>

<para>Ez az opció határoz meg egy replikációs helyet  az adatbázishoz. Az uri= paraméter
egy sémát határoz meg, egy gazdagép és opcionálisan egy port, ahol a szolga slapd kérelme kezelhető.
Vagy domain név vagy IP cím használható a &lt;hostname&gt; megadására. Ha &lt;port&gt; nincs megadva,
úgy az általános LDAP portot (389 vagy 636) használja.</para>

<para>Az uri engedélyezi, hogy az LDAP szerver másolat LDAP URI-ként legyen meghatározva, például
ldap://slave.example.com:389 vagy ldaps://slave.example.com:636 </para>

<para> A binddn= paraméter adja meg a frissítéshez szükséges csatlakozás DN-ét.
Ennek olyan DN-nek kell lennie, amelynek olvasási/írási joga van a szolga slapd adatbázisához.
Ennek összhangban kell lennie a szolga slapd konfiguráció fájlában lévő updatedn opcióval.
Általában az a DN <emphasis>nem lehet</emphasis> azonos a mester adatbázis rootdn-jével.
Mivel a DN-ek szóközöket is tartalmazhatnak, az egész "binddn=&lt;DN&gt;"
sztringet idézőjelek közé kell tenni.</para>

<para> A bindmethod egyaránt lehet simple, kerberos vagy sasl, annak
függvényében, hogy egyszerű jelszó alapú, Kerberos alapú
vagy SASL azonosítás szükséges a szolga szerverhez történő kapcsolódáshoz. </para>

<para> Amennyiben lehetséges, NE használjuk az egyszerű, jelszó alapú
azonosítást (csak olyan esetekben, amikor a megfelelő biztonsági intézkedések
megtörténtek (TLS, IPSEC, stb))! A jelszó alapú azonosításhoz binddn és
credentials paraméter kell. A credentials paraméter, amely csak akkor szükséges,
ha egyszerű azonosítást használsz, a szolga szervernek a binddn azonosításához
szükséges jelszót tartalmazza. </para>

<para>A Kerberos azonosítást háttérbe szorítja a SASL azonosítási módszer, különösen a KERBEROS_V4 és GSSAPI
mechanizmusok esetében. A Kerberos azonosításhoz binddn és érvényes srvtab fájl
szükséges (Az srvtab paraméter, amely csak kerberos használatához szükséges,
specifikálja, hogy melyik fájl tartalmazza a kulcsokat. Az alapértelmezett érték
az /etc/srvtab - a fordító.)</para>

<para>Az SASL azonosítás a javasolható módszer. Az SASL azonosítás a saslmech paraméter használatán alapuló mechanizmus specifikációját
igényli. Attól függően, hogy milyen mechanizmust választunk, az azonosítási
személy és/vagy a credential meghatározható az authcid és a credential
használatával. Az authcid paraméter meghatározhatja az azonosítási személyt. </para>

<para>További információt találsz a <ulink url="http://www.openldap.org/doc/admin22/replication.html">
Replication with Slurpd</ulink> (Másolat készítése a Slurpd-vel) leírásban.</para>

<screen>replogfile &lt;fájlnév&gt;</screen>

<para> Ez az opció állítja be az replikációs log fájlt, ahol a slapd naplózza a változásokat. A
replikációs log-ot tipikusan a slapd írja és a slurpd olvassa. Rendszerint ezt a
lehetőséget csak a slurpd használja az adatbázis replikációjára. Mindamellett
arra is használható, hogy tranzakciós naplót készíts, ha a slurpd nem fut. Ebben
az esetben ne felejtsd el rendszeresen darabolni a fájlt, különben kezelhetetlen
méretűre nő. </para>

<para>További információt találsz a <ulink url="http://www.openldap.org/doc/admin22/replication.html">
Replication with Slurpd</ulink> (Másolat készítése a Slurpd-vel) leírásban.</para>

<screen>rootdn &lt;dn&gt;</screen>

<para> Ez az opció specifikálja azt a DN-t, akire nem vonatkozik a hozzáférés szabályozás és az adminisztrációs
korlátozások az adatbázis-műveletek során. A DN-nek nem kell bejegyzésre mutatnia
a könyvtárban. Viszont mutathat egy SASL identitásra. </para>

<para>Bejegyzés példa:</para>
<para>rootdn "cn=Manager, dc=example, dc=com"</para>

<para>SASL alapú példa:</para>
<para>rootdn "cn=Manager, dc=example, dc=com"</para>

<screen>rootpw &lt;jelszó&gt;</screen>

<para>Ez az opció állítja be a fent leírt rootdn jelszavát (amikor a rootdn be van állítva egy DN adatbázisban). (Ez a lehetőség adatbázisok 
létrehozásakor vagy replikációs szolgáltatások nyújtásakor hasznos. 
Mindenképpen kerülendő a kódolatlan jelszavak használata. A legkevesebb
az /etc/password fájlban található crypt kódolású jelszó használata. A slapd 
számos más típusú kódolást támogat - a fordító.)</para>

<para>Példa:</para>
<para>rootpw secret</para>

<para>Jelszó-zagyvalék szolgáltatása is megengedett az RFC 2307 szerint. A 
slappasswd használható a jelszó-zagyvalék létrehozására.</para>

<para>Példa:</para>
<para>rootpw {SSHA}ZKKuqbEKJfKSXhUbHG3fG8MDn9j1v4QN</para>

<para>A zagyvalék (hash) a slappasswd -s secret parancs kiadásakor jön létre.</para>

<screen>suffix &lt;dn toldalék&gt;</screen>

<para> A suffix opció specifikálja a kérések DN toldalékát, ami átkerül a háttér-adatbázishoz. 
Több suffix sor is megadható, de legalább egy szükséges minden adatbázis definícióhoz. </para>

<para>Példa:</para>
<para>suffix "dc=example, dc=com"</para>
<para> A kérések DN-je "dc=example, dc=com" toldalékkal kerülnek az adatbázisba.</para>

<para><command>Figyelem:</command> Amikor a hátteret - amelyiknek majd a kérést továbbadjuk - kiválasztottuk, a slapd tekintetbe veszi 
a suffix sor(oka)t minden adatbázis definíciónál abban a sorrendben, ahogy a 
fájlban előfordulnak. Így, ha az egyik adatbázis toldaléka egy másiknak 
előtagja, akkor ennek meg kell jelennie a konfigurációs file-ban is. </para>

<screen>syncrepl</screen>

<para>Ez az opció használható egy másolt adatbázisnak az eredetivel történő szinkronban tartására. Ezáltal a másolt adatbázis tartalma naprakész lesz az eredeti adatbázis tartalmához képest.</para>

<para>Jelen dokumentum nem részletezi ezt az opciót, mivel egy egyszerű LDAP szerver beállítását tűztük célul. Erről az opciórol további információ a 
<ulink url="http://www.openldap.org/doc/admin22/syncrepl.html">LDAP Sync Replication</ulink> honlapon található.</para>

<screen>updatedn &lt;dn&gt;</screen>

<para> Ez az opció csak a szolga slapd-n értelmezhető, és meghatározza a replika megváltoztatására jogosult DN-t. 
Ez lehet az a DN, amellyel a slurpd csatlakozik a replikálás során vagy a DN-t 
azonosítja az SASL indentitással. </para>

<para>Bejegyzés alapú példa:</para>
<para>updatedn "cn=Update Daemon, dc=example, dc=com"</para>

<para>SASL alapú példa:</para>
<para>updatedn "uid=slurpd,cn=example.com,cn=digest-md5,cn=auth"</para>
<para>További információk a <ulink url="http://www.openldap.org/doc/admin/replication.html">Replication with Slurpd</ulink> (Replikáció a slurpd használatával - angol 
nyelvű) honlapon találhatók.</para>

<screen>updateref &lt;URL&gt;</screen>

<para> Ez az opció csak a szolga slapd-n értelmezhető. A replikán végzett frissítési kérések 
jóváhagyásának URL-jét (ami majd a kliensekhez kerül) határozza meg. Annyiszor 
kell meghatározni, ahány URL van.</para>

<para>Példa:</para>
<para>updateref          ldap://master.example.net</para></section>


<section id="BDBDirect">
<title>BDB adatbázis direktívák</title>

<para>Az ebben a kategóriában található előírások 
csak a BDB adatbázisokra vonatkoznak. Ezért az opciókat minden esetben a 
"database bdb" sor követi és megelőz minden további "háttér" vagy "adatbázis" sort. A BDB beállító opciók teljes referenciája a slapd-bdb kézikönyv oldalakon található (man page) (<emphasis>man slapd-bdb</emphasis>).</para>

<screen>directory &lt;könyvtár&gt;</screen>

<para>Ez a direktíva meghatározza azt a könyvtárat, ahol a BDB adatbázis és a 
hozzá tartozó fájlok elhelyezkednek. </para>

<para>Alapértelmezés:</para>

<para>directory /usr/local/var/openldap-data</para>

<screen>sessionlog &lt;sid&gt; &lt;limit&gt;</screen>

<para>This directive specifies a session log store in the syncrepl replication provider 
server which contains information on the entries that have been scoped out of the replication 
content identified by &lt;sid&gt;. The first syncrepl search request having the same &lt;sid&gt; 
value in the cookie establishes the session log store in the provider server. The number of the 
entries in the session log store is limited by &lt;limit&gt;. Excessive entries are removed from 
the store in the FIFO order. Both &lt;sid&gt; and &lt;limit&gt; are non-negative integers. &lt;sid&gt; 
has no more than three decimal digits.</para>

<para>The LDAP Content Synchronization operation that falls into a pre-existing session can use the 
session log store in order to reduce the amount of synchronization traffic. If the replica is not 
so outdated that it can be made up-to-date by the information in the session store, the provider slapd 
will send the consumer slapd the identities of the scoped-out entries together with the in-scope 
entries added to or modified within the replication content. If the replica status is outdated 
too much and beyond the coverage of the history store, then the provider slapd will send the identities 
of the unchanged in-scope entries along with the changed in-scope entries. The consumer slapd will 
then remove those entries in the replica which are not identified as present in the provider content.</para>

<para>A syncrepl-ről további információ a 
<ulink url="http://www.openldap.org/doc/admin22/syncrepl.html">LDAP Sync Replication</ulink> honlapon található.</para></section>

<section id="LDBMDirect">
<title> LDBM adatbázis lehetőségek </title>

<para> Ebben a kategóriában csak az LDBM típusú háttér-adatbázisokra vonatkozó 
opciók találhatók. Ezért az opciókat minden esetben a "database ldbm" sor követi 
és megelőz minden további "database" vagy "backend" sort. A LDBM beállító opciók teljes referenciája a slapd-lbdm kézikönyv oldalakon található (man page; <emphasis>man slapd-ldbm</emphasis>).</para>

<screen>cachesize &lt;integer&gt;</screen>

<para> Ez az opció határozza meg az átmeneti memóriában tárolt bejegyzések 
számát, amelyet az LDBM háttér-adatbáziskérések tartanak fent.</para>

<para>Alapértelmezés:</para>
<para>cachesize 1000</para>

<screen>dbcachesize &lt;integer&gt;</screen>

<para> Ez az opció határozza meg minden egyes nyitott index fájlhoz rendelt 
átmeneti memória méretét byte-ban. Ha nem támogatja az alapját képező adatbázis
eljárás, ez az opció kommentezés (#) nélkül is figyelmen kívül marad. A 
felhasznált memória méretének növelése drámaian növeli a teljesítményt, 
különösen az indexek módosításakor vagy 
létrehozásakor.</para>

<para>Alapértelmezés:</para>
<para>dbcachesize 100000</para>

<screen>dbnolocking</screen>

<para>Bekapcsolva ezt az opciót az adatbázist nem lehet zárolni (lock). Növelheti a feldolgozási sebességet, 
persze a biztonság rovására. </para>

<screen>dbnosync</screen>

<para>Ez a lehetőség azt eredményezi, hogy a lemezen levő adatbázis tartalmak 
nem lesznek automatikusan és azonnal szinkronizálva a memóriatartalommal, amikor 
valami változás történik. Engedélyezve szintén növelheti a sebességet a 
biztonság rovására. </para>

<screen>directory &lt;könyvtár&gt;</screen>

<para> Ez a direktíva meghatározza azt a könyvtárat, ahol a LBDM adatbázis és a hozzá 
tartozó fájlok elhelyezkednek. </para>

<para>Alapértelmezés:</para>
<para>directory /usr/local/var/openldap-data</para>

<screen>index {&lt;attrlist&gt; | default} [pres,eq,approx,sub,none]</screen>

<para>Ez a direktíva meghatározza az adott attribútum karbantartásáért felelős 
indexeket. Ha csak az &lt;attrlist&gt; van megadva, az alapértelmezett indexek 
lesznek csak karbantartva.</para>

<para>Példa:</para>

<screen>
index default pres,eq
index uid
index cn,sn pres,eq,sub
index objectClass eq
</screen>

<para>!!!FIXME!!! Az első sor beállítja az alapértelmezett index készleteket (present 
(jelenlét) és equality (egyenlőség) lesz a karbantartási szempont). A második sor 
objectClass és uid attribútumok alapján kezeli tovább az alapértelmezett index 
készleteket. A harmadik sor cn és sn attribútum típusok szerint vizsgálja az  
equality (egyenlőség), substring és approximate (becslés) index 
készleteket. !!!FIXME!!!</para>

<para>Alapértelmezés szerint az indexeket nem tartja karban. 
Ajánlott azonban legalább az objectClass szerinti equality (egyenlőség) index 
karbantartása.</para>

<para>index objectClass eq</para>

<screen>mode &lt;integer&gt;</screen>

<para>Ez a direktíva határozza meg az újonnan létrehozott adatbázis index állományainak fájlvédelmi módját. </para>

<para>Alapértelmezés:</para>
<para>mode 0600</para></section>


<section id="AccessControl">
<title>Hozzáférés szabályozási példák:</title>

<para>A hozzáférési eszköztár, melyet az <emphasis>access</emphasis> direktíva 
szabályoz, elég erőteljes. Most bemutatunk néhány példát a használatára 
vonatkozóan. Először néhány egyszerű példa: </para>

<screen>access to * by * read </screen>

<para>Ez a hozzáférési direktíva mindenkinek olvasási jogot biztosít.</para>

<para>A következő példa bemutatja a regexp használatát a DN alapján történő 
kereséshez két access direktívában, ahol a sorrend is fontos. </para>


<screen>access to dn=".*, o=U of M, c=US" 
by * search 
access to dn=".*, c=US" 
by * read </screen>


<para>Ebben az esetben a hozzáférési jogosultságok így alakulnak: Keresési (search) jogosultsággal rendelkeznek
az 'o=U of M, c=US' dn-ű felhasználók, míg a többi, c=US jelzetű felhasználó olvasási (read) - eggyel magasabb szintű - 
jogosultságot kap. Ha fordítva lenne a két access sor, a U of M-re vonatkozó korlátozások nem lépnének életbe, 
mivel a c=US körbe beletartoznak, és a szűkítés nem lépne életbe.
(a hozzáférési listákat felűlről lefelé dolgozza fel a program.)</para>

<para>Another way to implement the same access controls is:</para>

<screen>access to dn.children="dc=example,dc=com"
	by * search
	access to dn.children="dc=com"
	by * read
</screen>

<para>Read access is granted to entries under the dc=com subtree, except for those entries 
under the dc=example,dc=com subtree, to which search access is granted. No access is granted 
to dc=com as neither access directive matches this DN. If the order of these access directives 
was reversed, the trailing directive would never be reached, since all entries under 
dc=example,dc=com are also under dc=com entries.</para>

<para><command>Note:</command> Also note that if no access to directive or no "by &lt;who&gt;" clause matches, 
<command>access is denied</command>. That is, every <emphasis>access to</emphasis> directive ends with an implicit <emphasis>by * none </emphasis>clause 
and every access list ends with an implicit <emphasis>access to * by * none</emphasis> directive.</para>

<para>A következő példa ismét jól mutatja a sorrend fontosságát. Mind a hozzáférési direktívák (access),
 mind pedig a "by &lt;kicsoda&gt;" cikkely esetében. Bemutatja továbbá az attribútum kapcsoló
 használatát, bizonyos attribútumok és többféle &lt;who&gt; kapcsoló hozzáférési jogainak beállításához. </para>

<screen>access to dn.subtree="dc=example,dc=com" attr=homePhone
	by self write
	by dn.children=dc=example,dc=com" search
	by peername=IP:10\..+ read
access to dn.subtree="dc=example,dc=com"
	by self write
	by dn.children="dc=example,dc=com" search
	by anonymous auth
</screen>

<para>This example applies to entries in the "dc=example,dc=com" subtree. To all 
attributes except homePhone, an entry can write to itself, entries under 
example.com entries can search by them, anybody else has no access (implicit by * none) 
excepting for authentication/authorization (which is always done anonymously). The 
homePhone attribute is writable by the entry, searchable by entries under example.com, 
readable by clients connecting from network 10, and otherwise not readable 
(implicit by * none). All other access is denied by the implicit access to * by * none.</para>

<para>Sometimes it is useful to permit a particular DN to add or remove itself from 
an attribute. For example, if you would like to create a group and allow people
 to add and remove only their own DN from the member attribute, you could accomplish 
 it with an access directive like this: </para>
<screen>access to attr=member,entry 
	by dnattr=member selfwrite 
</screen>

<para>A dnattr &lt;kicsoda&gt; kapcsoló megmondja,hogy a hozzáférések a 
'member' (tag) -jellemzőben felsorolt elemekre vonatkoznak. 
A 'selfwrite' hozzáférési kapcsoló pedig ezen tagoknak csak
saját DN-jükben történő hozzáadásra és törlésre ad jogosultságot.

A bejegyzés jellemző hozzáadása kötelező, mivel a bejegyzéshez való hozzáférés
során szükségszerűen a bejegyzés jellemzőihez is hozzá kell férnünk.</para>


<para>A hozzáférés szabályozásról rengeteg példa található az  OpenLDAP
Adminisztrátorok Kézikönyvében. Kattints a linkre: <ulink url="http://www.openldap.org/doc/admin22/slapdconfig.html#Access Control">Hozzáférés szabályozás</ulink>
további információkért.</para></section>


<section id="ConfigurationExample">
<title>Konfigurációs fájl példa</title>

<para>A következőkben magyarázó szövegrészekkel megszakítva bemutatok egy konfigurációs állományt.
Két adatbázist definiál, az X.500-as fa különböző részeinek kezelésére. Mindkettő BDB adatbázis.
A sorok számozása csak a tájékozódást és a magyarázatot hivatott segíteni, a működő fájlban nincsenek sorszámok.
 Nézzük először az általános beállításokat! ( global configuration section)</para>


<screen>
1.    # example config file - global configuration section     példa konfig fájl - általános beállítások rész
2.    include /usr/local/etc/schema/core.schema
3.    referral ldap://root.openldap.org
4.    access to * by * read</screen>


<para>Az első sor megjegyzés. Az alap-séma leírásokat tartalmazó külső fájl
befoglalása a második sorban történik meg. A harmadik sorban található utalás (referral)
utasítás azt jelenti, hogy az összes olyan keresési kérelem, amelyet a helyi adatbázis nem tud kiszolgálni,
át lesz irányítva a hagyományos LDAP kapun (389) keresztül a root.openldap.org szerverre.</para>


<para>A negyedik sor az általános elérést biztosítja. Minden bejegyzésre érvényes
(minden más, használható adatbázis hozzáférés korlátozás után).</para>


<para>A beállítófájl következő szakaszában a "dc=example,dc=com" ágban történő kérések kiszolgálására szolgáló
BDB háttér leírása jön. Az adatbázis két szolga slapd-re lesz megkettőzve. Az első egy tényleges, míg a második egy "vészhelyzeti" tükrözés. Az indexelések több attribútum szerint is karbantartásra kerülnek. A userPassword tulajdonság védett a jogosulatlan hozzáférésektől.
</para>

<screen>
5.     # BDB definition for the example.com
6.     database bdb
7.     suffix "dc=example,dc=com"
8.     directory /usr/local/var/openldap-data
9.     rootdn "cn=Manager,dc=example,dc=com"
10.    rootpw secret
11.    # replication directives
12.    replogfile /usr/local/var/openldap/slapd.replog
13.	   replica uri=ldap://slave1.example.com:389
14.            binddn="cn=Replicator,dc=example,dc=com"
15.            bindmethod=simple credentials=secret
16.    replica uri=ldaps://slave2.example.com:636
17.            binddn="cn=Replicator,dc=example,dc=com"
18.            bindmethod=simple credentials=secret
19.    # indexed attribute definitions
20.    index uid pres,eq
21.    index cn,sn,uid pres,eq,sub
22.    index objectClass eq
23.    # database access control definitions
24.    access to attr=userPassword
25.            by self write
26.            by anonymous auth
27.            by dn.base="cn=Admin,dc=example,dc=com" write
28.            by * none
29.    access to *
30.            by self write
31.            by dn.base="cn=Admin,dc=example,dc=com" write
32.            by * read
<!--
5.     # BDB definition for the example.com   BDB adatbázis létrehozása az examle.com részére
6.     database bdb
7.     suffix "dc=example,dc=com"
8.     directory /usr/local/var/openldap-data
9.     rootdn "cn=Manager,dc=example,dc=com"
10.    rootpw secret
11.    # replication directives  többszörözési utasítások
12.    replogfile /usr/local/var/openldap/slapd.replog
13.    replica host=slave1.example.com:389
14.            binddn="cn=Replicator,dc=example,dc=com"
15.            bindmethod=simple credentials=secret
16.    replica host=slave2.example.com
17.            binddn="cn=Replicator,dc=example,dc=com"
18.            bindmethod=simple credentials=secret
19.    # indexed attribute definitions   indexelt tulajdonság leírások
20.    index uid pres,eq
21.    index cn,sn,uid pres,eq,approx,sub
22.    index objectClass eq
23.    # database access control definitions  adatbázis hozzáférés-korlátozás definiálása
24.    access to attr=userPassword
25.            by self write
26.            by anonymous auth
27.            by dn="cn=Admin,dc=example,dc=com" write
28.            by * none
29.    access to *
30.            by self write
31.            by dn="cn=Admin,dc=example,dc=com" write
32.            by * read
-->
</screen>


<para>Az 5. sor megjegyzés. Az adatbázis definíció kezdetét a 'database' kulcsszó jelzi (6.sor).
A 7. sor határozza meg a helyi adatbázishoz továbbítandó keresések DN-utótagját.
A 8. sor jelzi az adatbázis fájlok helyét.</para>


<para>A 9. és 10. sor az adatbázis felügyelőt azonosítja és a hozzárendelt jelszót. This entry is not subject to access control or size or time limit restrictions.
Please remeber to encrypt the rootpw using slappasswd.</para>

<para><command>Example: </command>rootpw {SSHA}Jq4xhhkGa7weT/0xKmaecT4HEXsdqiYA</para>


<para>11-18. sorok a többszörözési feladatot írják le. Bővebben: <ulink url="http://www.openldap.org/doc/admin22/replication.html">Replication</ulink> angol nyelvű oldalon.</para>


<para>A 20. és 22. sorok a különböző attribútumokért felelős indexeket jelzik</para>


<para>A 24-től a 32. sorok hozzáférési jogosultságokat szabályoznak az adabázison.
Minthogy ez az első adatbázis, a szabályozók életbe lépnek minden más bejegyzésre is, amelyek nincsenek még adatbázisban (mint pl. a root DSE).
Minden alkalmazható bejegyzésre érvényes, hogy a userPassword attribútum írható a bejegyzés és az 'admin'  bejegyzés által.
Ezt azonosítási célokra lehet használni, máskülönben nem olvasható. Minden más attribútum
írható a bejegyzés és az 'admin' bejegyzés által (mások által nem), és olvashatja minden bejegyzés (akár autentikált, akár nem).</para>


<para>A példa konfigurációs fájl következő része egy másik BDB adatbázist is definiál.
Ez az adatbázis a dc=example, dc=net alág kereséseit kezeli, de ugyanaz a lényeg, mint
az első adatbázis esetében. Figyeljük meg, hogy a 39. sor nélkül olvasási jogot mindenki, az általános beállítások 4. sorának megfelelően kap.</para>


<screen>
33.    # BDB definition for example.net
34.    database bdb
35.    suffix "dc=example,dc=net"
36.    directory /usr/local/var/openldap-data-net
37.    rootdn "cn=Manager,dc=example,dc=com"
38.    index objectClass eq
39.    access to * by users read</screen></section>
</chapter>


<chapter id="RunningLDAP">
<title>Az LDAP szerver futtatása</title>

<para>Az LDAP démona, a<emphasis> slapd</emphasis> önállóan futó szerverként használható.
Ez lehetővé teszi a háttér számára a cache-elés előnyeinek kihasználását,
jobban tudja kezelni az adatbázisok közötti ütközések problémáit és 
gazdaságosabban bánik a rendszer erőforrásaival. Futtatása az inetd(8)-ből nem lehetséges.
(Korábban opció volt)</para>


<section id="CommandOptions">
<title>Parancssori opciók</title>
<para>A <emphasis>slapd</emphasis> számos parancssori opciót támogat (részletesen a manuálban).
Ebben a részben néhány, általánosan használt opció leírását taláhatod meg.</para>

<screen>-f &lt;fájlnév&gt;</screen>


<para>Ez az opció alternatív konfigurációs fájlt határoz meg a slapd számára
Alapértelmezett: /usr/local/etc/openldap/slapd.conf.</para>

<screen>-h &lt;URL-ek&gt;</screen>


<para>Ezzel az opcióval alternatív port/host párokat állíthatsz be, amiken az LDAP figyel.
Alapértelmezett: ldap:// ami arra utal, hogy az LDAP minden hálózati eszközön figyel a TCP-n keresztül az alapértelmezett LDAP porton (389).
Megadható speciális host-port páros is, vagy más protokoll séma (mint pl. az ldaps:// or ldapi://) is.
Például: -h "ldaps:// ldap://127.0.0.1:667" két figyelő csatornát hoz létre, egyiket az LDAP SSL-en keresztül 
minden eszközre vonatkozóan és a szabványos LDAP/SSL porton (637), míg a másikat a localhoston (127.0.0.1) a loopback eszközön,
TCP-n, a 667-es kapun keresztül. A hostokat IPv4 szerint, numerikusan, vagy névvel is megadhatjuk.
A port értékének numerikusan kell szerepelnie.</para>

<screen>-n &lt;szolgáltaltás-név&gt;</screen>


<para>Itt adható meg a naplózásra és más célokra szolgáló szolgáltatás neve. 
Alapértelmezett: slapd.</para>

<screen>-l &lt;syslog-local-user&gt;</screen>

<para>Ez a paraméter határozza meg a helyi felhasználót a syslog(8) lehetőség használatához. Lehetséges  értékek: LOCAL0, LOCAL1, LOCAL2, ..., és LOCAL7. Az alapértelmezés: LOCAL4. Ez az opció nem használható
minden rendszer alatt. További információkat lásd a  <xref linkend="Logs"/> fejezetben.</para>

<screen>-u user -g group</screen>

<para>Itt adható meg a felhasználó és a csoport, akinek a nevében fut a slapd. Mind a &lt;user&lg;, mind a &lt;group&lg; megadható névvel vagy uid-del.</para>

<screen>-r directory</screen>


<para>Ez a paraméter határozza meg a futás idejű könyvtárat. . Ez lesz a slapd chroot(2) könyvtára az indítás után, még mielőtt felolvasná a konfigurációs fájlokat vagy inicializálná a háttereket.</para>


<screen>-d &lt;szint&gt; | ?</screen>


<para>Ez az opció beállítja az slapd hibakereső értékét a &lt;szint&gt;-re. 
Amikor a szint a '?' karakter, a különböző hibakereső szinteket írja ki és 
kilép a slapd attól függetlenül, hogy milyen egyéb opció lett még beállítva. 
A jelenlegi hibakereső szintek a következők:</para>

<para><table tocentry="1">
<title>Hibakövetés szintje</title>

<tgroup cols="2"><colspec colname="Level" colwidth="0"/><colspec colname="Description" colwidth="0"/>

<thead><row><entry>Level</entry>
<entry>Leírás</entry></row></thead>


<tbody><row><entry>-1</entry>
<entry>minden hibakövetés engedélyezése</entry></row>
<row><entry>0</entry>
<entry>nincs hibakövetés</entry></row>
<row><entry>1</entry>
<entry>funkció hívások nyomkövetése</entry></row>
<row><entry>2</entry>
<entry>csomagkezelés követése</entry></row>
<row><entry>4</entry>
<entry>alapos nyomkövetés</entry></row>
<row><entry>8</entry>
<entry>kapcsolatkezelés</entry></row>
<row><entry>16</entry>
<entry>fogadott és küldött csomagok kiírása </entry></row>
<row><entry>32</entry>
<entry>mintakeresés feldolgozása</entry></row>
<row><entry>64</entry>
<entry>konfigurációs fájl feldolgozása</entry></row>
<row><entry>128</entry>
<entry>hozzásférésszabályozási lista feldolgozása</entry></row>
<row><entry>256</entry>
<entry>kapcsolatok/műveletek/eredmények naplózása</entry></row>
<row><entry>512</entry>
<entry>küldött bejegyzések naplózása </entry></row>
<row><entry>1024</entry>
<entry>a háttérkommunikáció kiírása </entry></row>
<row><entry>2048</entry>
<entry> bejegyzések elemzésének kiírása</entry></row></tbody></tgroup></table></para>

<para>Több szint is megadható egyszerre ha felsoroljuk egymás után a kívánt szinteket, mindet külön -d kapcsolóval.
Mivel a hibakövetési szintek additívak egyszerű összeadással elvégezhető a számolás:
Például, ha a funkcióhívások nyomkövetésése és a konfigurációs fájl feldolgozása
egyaránt szükséges, akkor ennek a két hibakövető szintnek az összeadásával (ebben az esetben 1+64=65 vagyis a kapcsoló: -d 65) egyszerre adható meg a két hibakövetési szint,
vagy a slapd is elvégezheti ezt helyettünk (ekkor a kapcsolók: -d 1 -d 64). További inforációk az &lt;ldap.h&gt; fájlban.</para>

<para><command>Figyelem!</command>A slapd fordításakor az -LDAP_DEBUG-ot definiálni kell minden
hibakövető funkció használatához, kivéve a két naplózási lehetőséget.</para></section>


<section id="StartingLDAP">
<title>Az LDAP kiszolgáló indítása</title>
<para>Általában a slapd a követlezőképpen fut:</para>

<screen>/usr/local/etc/libexec/slapd [&lt;option&gt;]*</screen>


<para>ahol a /usr/local/etc/libexec értékét a konfigurációs
szkript és az &lt;opciók&gt; határozzák meg, az &lt;option&gt; a
fentebb leírtak bármelyike lehet. Ha a hibakereső értéke nem definiált, a
slapd automatikusan elágazik és leválasztja magát a vezérlő terminálról
és a háttérben fut tovább.</para></section>

<section id="KillingLDAP">
<title>Az LDAP kiszolgáló leállítása</title>
<para>A slapd démon biztonságos leállításához ehhez hasonló parancs szükséges: </para>

<screen>kill -INT `cat $(ETCDIR)/slapd.pid`</screen>


<para>Drasztikusabb leállítási módok alkalmazásakor az adatbázisok sérülhetnek, és
a nem mentett adatok elveszhetnek. Itt jegyezzük meg, hogy a slapd pid a slapd.pid fájlba kerül,
amit a slapd.conf fájlban állítottunk be. Pl. /usr/local/var/slapd.pid.</para>


<para>A slapd az argumentumait szintén a slapd.conf által meghatározott elérési úton lévő slapd.args fájlba írja. Pl. /usr/local/var/slapd.args. </para></section>
</chapter>


<chapter id="DBCreation">
<title>Adatbázis létrehozás és karbantartása</title>


<para>Ez a fejezet leírja az adatbázisok létrehozását a semmiből. Két út van
az adatbázisok létrehozására. Létrehozhatók adatbázisok az LDAP
online használatával. Ennél az eljárásnál egyszerűen a slapd indítása
után a tetszés szerinti LDAP klienssel elvégezhető a bejegyzések hozzáadása.
Ez az eljárás viszonylag kis méretű adatbázisoknál használható jól
(néhány száz vagy ezer bejegyzés, a követelmények függvényében).
Azoknál az adatbázisoknál alkalmazható, amelyek támogatják a frissítést (update).</para>


<para>A második eljárás az adatbázisok létrehozására a slapd speciális eszközeinek
segítségével lehetséges, offline módban. Ez a legjobb eljárás, ha sok ezer
bejegyzést kell létrehozni, ami nagyon hosszú időt venne igénybe
az LDAP eljárással, vagy ha biztos akarsz lenni abban, hogy az adatbázis biztosan ne legyen elérhető a
létrehozás ideje alatt. FIGYELEM! Nem minden adatbázis típus támogatja a slapd ezen speciális eszközeit!</para>

<section id="DBOnline">
<title>Adatbázis online létrehozása</title>

<para>Az OpenLDAP programcsomag tartalmazza az ldapadd programot, a
bejegyzések online hozzáadásához, vagyis amíkor az LDAP szerver fut.
Amennyiben az online módszert választod az adatbázis létrehozására,
ezt az eszközt kell használnod a bejegyzések hozzáadásához (más, OpenLDAP csomagon kívüli
eszközöket is használhatsz, mint amilyen az <ulink url="http://www.iit.edu/~gawojar/ldap/">Ldap Browser</ulink>).
Az első bejegyzések hozzáadása után még további bejegyzések felvétele is
lehetséges. Mindenképpen szükséges a következő konfigurációs opciók
beállítása a slapd indítása előtt: </para>

<screen>suffix &lt;dn&gt; </screen>


<para>Az <xref linkend="GeneralDBDirect"/> fejezetben leírtak szerint
ez az opció mondja meg, milyen bejegyzések kerülnek ebbe az adatbázisba.
Be kell állítani a létrehozandó részfa gyökerének DN értékét: </para>

<screen>suffix "o=TUDelft, c=NL" </screen>


<para>Specifikáni kell a könyvtárat, ahol az index file-ok létrejönnek:</para>


<screen>directory /usr/local/tudelft </screen>


<para>Lehetővé kell tenni, hogy csatlakozhass a slapdhez mint címtár-felhasználó bejegyzések hozzáadásának jogával.
Beállítható úgy a címtár, hogy támogassa a super-user-t, vagy root felhasználót erre a célra.</para>

<para>Ez a következő két opció segítségével lehetséges az adatbázis létrehozása során:</para>


<screen>
rootdn &lt;dn&gt;
rootpw &lt;passwd&gt;   /* Mindenképpen kódolt jelszót használj!!! */
</screen>


<para>Ez a két opció határozza meg az adatbázis adminisztrátoraként használható
bejegyzés DN-jét és jelszavát (akinek minden tevékenység engedélyezett).
Az itt meghatározott  DN és a jelszó mindig működik, attól függetlenül,
hogy a bejegyzés vagy a jelszó valóban létezik-e. Ez megoldja a tyúk és
a tojás problémáját, vagyis hogyan azonosítható az adminisztrátor, és hozhatók
létre rekordok mielőtt bármilyen bejegyzés létezne.</para>


<para>A <emphasis>slapd</emphasis> megérti ha SHA-1 kódolású jelszavakat használsz a rootpw
direktívában. Én egy Java osztályt használtam SHA-1 szintű jelszavak létrehozására, de használható a <emphasis>slappasswd</emphasis> parancs is jelszavak generálására.</para>


<screen>slappasswd -h {SHA}</screen>

<screen>rootpw    "{SHA}5en6G6MezRroT3XKqkdPOmY/BfQ="</screen>


<para>Például:</para>

<screen>
        rootdn "cn=Manager,dc=example,dc=com"
        rootpw &quot;{SHA}5en6G6MezRroT3XKqkdPOmY/BfQ=&quot;</screen>
<para>The default output for slappasswd is to generate Secure Hash passwords {SSHA}, in this
  	 case you don't need to pass the -h parameter, just call slappasswd directly.</para>

<para>Amennyiben SASL-t használsz a rootpw sort ki kell szedni.
Vess egy pillantást a <xref linkend="GeneralDBDirect"/> és a <xref linkend="Authentication"/> (Autentikáció) fejezetre.</para>


<para>Végül, az adatbázis definícióinak tartalmaznia kell az
szükséges indexek definícióit: </para>

<screen>index &lcub;&lt;attrlist&gt; &verbar; default&rcub; &lsqb;pres,eq,sub,none&rsqb; </screen>


<para>Például, a cn, sn, uid és objectclass attribútumok indexét a következő
index konfigurációs sor hozza létre:</para>

<screen>
index cn,sn,uid pres,eq,sub
index objectClass pres,eq
</screen>


<para><command>Note:</command> Megjegyzés: figyelj arra, hogy nem minden indextípus használható minden jellemző esetében.
Nézd meg a <xref linkend="LDBMDirect"/> fejezetben (példák).</para>


<para>Ha egyszer beállítottad a szükséges dolgokat, indítsd el a slapd-t,
kapcsolódj az LDAP klienssel, és kezdd el a bejegyzések hozzáadását.
Például, a TUDelft bejegyzést követő a Postmaster bejegyzés létrehozásához
az ldapadd részére létre kell hozni a /tmp/newentry fájlt a következő
tartalommal: </para>

<screen>
o=TUDelft, c=NL
objectClass=organization 
description=Technical University of Delft Netherlands 

cn=Postmaster, o=TUDelft, c=NL 
objectClass=organizationalRole 
cn=Postmaster
description= TUDelft postmaster - postmaster@tudelft.nl </screen>


<para>és utána a következő parancs létrehozza a szükséges bejegyzést: </para>


<screen>ldapadd -f /tmp/newentry -x -D "cn=Manager, o=TUDelft, c=NL" -w secret </screen>


<para>A fenti parancs feltételezi, hogy a roodn bejegyzés a "cn=Manager, o=TUDelft, c=NL" és a rootpw a "secret" (vagy kódolt jelszó a slapd.conf-ban).
 Ha nem akarod begépelni a jelszót a parancsorba, használd a -W opciót az
 ldapadd parancs használatakor a -w"jelszó" helyett.
 Felszólítást kapsz jelszó beírására: </para>


<screen>
ldapadd -f /tmp/newentry -x -D "cn=Manager, o=TUDelft, c=NL" -W 
Enter LDAP Password: </screen></section>


<section id="CreateDBOffline">
<title>Adatbázis offline létrehozása</title>

<para>A második eljárás az adatbázisok offline létrehozása, az alább leírt slapd eszközök segítségével.
Ez a legjobb eljárás ha sok ezer bejegyzés létrehozása szükséges,
ami nagyon hosszú időt venne igénybe a fent leírt LDAP eszközök használatával.
Ezek az eszközök elolvassák a slapd konfigurációs fájlt és a hozzáadandó bejegyzések
szövegét tartalmazó LDIF file-t. Ez hozza létre közvetenül az LDAP index fájlokat
. For database types which support the tools, they produce the database files directly (otherwise you must use the on-line method above). A következő néhány konfigurációs lehetőséget mindenképpen
ismerni kell és be kell állítani a konfigurációs fájl  adatbázis-definíciójának
elején: </para>

<screen>suffix &lt;dn&gt; </screen>


<para>Az előző bekezdésnek megfelelően, ez az opció határozza meg, milyen
bejegyzéseket fog tartalmazni az adatbázis. Ennek a létrehozandó részfa
gyökerének DN-jét kell tartalmaznia. Például:</para>


<screen>suffix "o=TUDelft, c=NL" </screen>


<para>Mindenképpen meg kell határozni az index fájlok könyvtárát:</para>


<screen>directory /usr/local/tudelft </screen>


<para>Végül meg kell mondanunk, milyen indexekre van szükség. Ez egy vagy több index
opcióval végezhető el: </para>


<screen>index {&lt;attrlist&gt; | default } [pres,eq,approx,sub,none]</screen>


<para>Például:</para>


<screen>
index cn,sn,uid pres,eq,sub
index objectClass eq
</screen>


<para>A fenti parancs létrehozza a presence, equality és approximate indexeket a cn,sn és
uid attribútumoknál, és equality indexet az objectClass opciónál.
További információk a konfigurációs fájl beállítása fejezetben találhatók erről az opciókról.</para>


<para>Miután a konfiguráció kész van, létre kell hoznunk az elsődleges adatbázist a hozzá tartozó indexfájlokkal együtt.
Ezt a slapadd(8) programmal tehetjük meg:</para>


<screen>slapadd -l &lt;inputfile&gt; -f &lt;slapdconfigfile&gt; [-d &lt;debuglevel&gt;]
 [-n &lt;integer&gt;|-b &lt;suffix&gt;]</screen>

<para>Az argumentmok jelentései:</para>

<screen>-l &lt;inputfile&gt;</screen>

<para>meghatározza az LDIF bemeneti fájlt, ami a hozzáadandó bejegyzéseket
tartalmazza szöveges formában (A következő fejezet erről szól).</para>

<screen>-f &lt;slapdconfigfile&gt;</screen>

<para>Specifikálja a slapd konfigurációs fájlját, ami meghatározza hol,
milyen indexeket kell létrehozni, stb.</para>

<screen>-d &lt;debuglevel&gt;</screen>

<para>Bekapcsolja a hibakeresést a debuglevel által meghatározott módon.
A hibakeresés szintjei megegyeznek a slapd értékeivel. (lásd a <xref linkend="CommandOptions"/> további részletekért.)</para>

<screen>-n &lt;databasenumber&gt;</screen>

<para>Ez az opcionális argumentum határozza meg, hogy az adatbázisok közül melyiket használja a program.
A konfigurációs fájlban szereplő első adatbázis az "1", a második a "2", stb.
Alapértelmezésként az első adatbázist használja.  A -b argumentummal együtt nem használható.</para>

<screen>-b &lt;suffix&gt;</screen>

<para>Ez az opcionális argumentum határozza meg, hogy az adatbázisok közül melyiket használja a program.
Az utótagot (suffix) összehasonlítja az adatbázisban szereplő adatbázis direktíva  számával, és így dönti el melyik adatbázist használja.
Az -n argumentummal együtt nem használható.</para>

<para>Néha szükségessé válik az indexek újragenerálása (pl. a slapd.conf(5) módosítása után).
Ezt a slapindex(8) programmal végezhetjük el. A program meghívása a következőképpen történik:</para>

<screen>slapindex -f &lt;slapdconfigfile&gt; [-d &lt;debuglevel&gt;] [-n &lt;databasenumber&gt;|-b &lt;suffix&gt;]</screen>

<para>Ahol az -f, -d, -n és a  -b kapcsolók ugyanazok, mint a slapadd(1) program esetében.
A slapindex újraépíti az indexállományokat az éppen aktuális adatbázis tartalmak alapján.</para>

<para>A slapcat programmal az adatbázis tartalmát egy szöveges LDIF fájlba tudjuk önteni (dump).
Akkor lehet hasznos, ha olvasható adatbázis-másolatot szeretnénk készíteni, vagy, ha az adatbázist off-line módon szeretnénk szerkeszteni.
A program indítása:</para>

<screen>slapcat -l &lt;filename&gt; -f &lt;slapdconfigfile&gt; [-d &lt;debuglevel&gt;] [-n &lt;databasenumber&gt;|-b &lt;suffix&gt;]</screen>

<para>Ahol az -f opció -n vagy -b kapcsolóival lehet kiválasztani a slapd.conf(5)-ban leírt adatbázisok közül azt, amilyre szükségünk van.
Az LDIF eredmény a standard kimenetre kerül, hacsak nem határoztunk meg egy fájlt a -l opcióban..</para></section>


<section id="MoreonLDIF">
<title>Bővebben az LDIF formátumról</title>
<para>Az LDAP Data Interchange Fromat (LDIF) az LDAP bejegyzések
megjelenítésére szolgál szöveges formában. Egy bejegyés alapvető formája:</para>

<screen>
#comment      megjegyzés
dn: &lt;distinguished name&gt;
&lt;attrdesc&gt;: &lt;attrvalue&gt;
&lt;attrdesc&gt;: &lt;attrvalue&gt;
...</screen>


<para>A '#' kezdetű sorok megjegyzések. Az attribútum leírások (attrdesc)
lehetnek egyszerűek, mint pl. a cn, az objectClass vagy az 1.2.3 (egy attribútum-típussal azonosított OID)
vagy opciókat is magukba foglalhatnak, pl. cn;lang_en_US vagy userCertificate;binary.</para>

<para>A sorok folytathatóak a következő sorban egy szóköz vagy tab
karatkerrel. Például:</para>


<screen>
dn: cn=Barbara J Jensen, dc=example, dc=
 com
cn: Barbara J
    Jensen
</screen>

<para>megfelel ennek:</para>

<screen>
dn: cn=Barbara J Jensen, dc=example, dc=com
cn: Barbara J Jensen
</screen>

<para>Többszörös attribútumok több elválasztott sorban is specifikálhatóak.
Például:</para>

<screen>
cn: Barbara J Jensen
cn: Babs Jensen
</screen>


<para>Ha az &lt;attrvalue&gt; (attribútum érték) nem nyomtatható karaktereket tartalmaz, vagy szóközzel,
kettősponttal (':'), kisebb jellel('&lt;') kezdődik, akkor az &lt;attrdesc&gt; (attribútum leírás)-t kettőspont követi,
és az érték base64 kódolású lesz. Például a "begins with space" érték a
következőképpen lesz kódolva:</para>

<screen>cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=</screen>


<para>Meghatározható egy URL-is amely az attribútum értéket tárolja.
Pl. a következő sor a jpegPhoto értékét az /útvonal/a/jpeg.képhez fájlból veszi.</para>


<screen>cn:&lt; file://path/to/file.jpeg</screen>


<para>A többszörös bejegyzéseket ugyanabban az LDIF file-ban üres sorokkal
kell elválasztani. Egy három bejegyzést tartalmazó LDIF file:</para>


<screen>
# Barbara's Entry  #Barbara bejegyzése
dn: cn=Barbara J Jensen, dc=example, dc=com
cn: Barbara J Jensen
cn: Babs Jensen
objectClass: person
sn: Jensen

# Bjorn's Entry #Björn bejegyzése
dn: cn=Bjorn J Jensen, dc=example, dc=com
cn: Bjorn J Jensen
cn: Bjorn Jensen
objectClass: person
sn: Jensen
# Base64 encoded JPEG photo # Base64 kódolású fénykép
jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD
A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ
ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG

# Jennifer's Entry #Jennifer bejegyzése
dn: cn=Jennifer J Jensen, dc=example, dc=com
cn: Jennifer J Jensen
cn: Jennifer Jensen
objectClass: person
sn: Jensen
# JPEG photo from file # JPEG kép fájlból
jpegPhoto:&lt; file://path/to/file.jpeg</screen>

<para>Figyeljük meg, hogy a Bjorn bejegyzésben taláható jpegPhoto érték base64 kódolású, míg
a Jennifer bejegyzésben szereplő jpegPhoto az URL-ben szereplő helyen tárolódik.</para>

<para>FIGYELEM: A követő szóközök benne maradnak az LDIF file-ban. A
többszörös szóközök is megmaradnak. Ha nem szükségesek az adatokban,
akkor el kell távolítani őket.</para></section>

<section id="Utilities">
<title>Az ldapsearch, ldapdelete és az ldapmodify progrmok</title>
<para><command>ldapsearch</command> - Az ldapsearch a parancsértelmező által
elérhető felületet biztosít az ldap_search(3) függvény használatához.
Ez a program jól használható bejegyzések kereséséhez az LDAP adatbázisban. </para>

<para>Az ldapsearch szintaktikája a következő (Az opciók jelentése az ldapsearch
man lapján található): </para>

<screen>
ldapsearch  [-n]  [-u]  [-v]  [-k]  
[-K]  [-t]  [-A] [-B] [-L]
[-R] [-d debuglevel] [-F sep] [-f file] 
[-x] [-D binddn]  [-W]  [-w bindpasswd]  
[-h ldaphost]  [-p ldapport]   [-b searchbase]   
[-s base|one|sub] 
[-a never|always|search|find] [-l timelimit] 
[-z sizelimit] filter [attrs...] 
</screen>


<para>Az <command>ldapsearch</command> kapcsolatot létesít az LDAP szerverrel, és a szűrő (filter)
használatával keresést hajt végre az adatbázisban. A szűrőnek
meg kell felenie az RFC 1558-ban definiált LDAP szürők ábrázolásához.
Ha az ldapsearch egy vagy több bejegyzést talál, az <emphasis>attrs</emphasis> által
specifikált attribútumokat adja vissza, és az értékeket a standard
kimenetre írja ki. Ha attrs nincs felsorolva, az összes attribútumot
visszaadja.</para>

<screen>
ldapsearch -x -b 'o=TUDelft,c=NL' 'objectclass=*' 

ldapsearch -b 'o=TUDelft,c=NL' 'cn=Rene van Leuken'

ldasearch -u -b 'o=TUDelft,c=NL' 'cn=Luiz Malere' sn mail
</screen>


<para>A -b opció a searchbase-t (a keresés kindulási pontja), az
-u opció a felhasználóbarát kimenő információt míg az -x opció az egyszerű azonosítást képviseli.</para>


<para><command>ldapdelete - </command>Az ldapdelete a parancsértelmező által
elérhető felületet biztosít az ldap_delete(3) függvény használatához. Ez a program
használható bejegyzések törléséshez az LDAP adatbázisban.</para>


<para>Az ldapdelete szintaktikája a következő (Az opciók jelentése az ldapdelete
man lapján található): </para>

<screen>
ldapdelete   [-n]   [-v]  [-k]  [-K]
[-c]  [-d debuglevel]  [-f file]  [-D binddn]
[-W]  [-w passwd] [-h ldaphost] [-p ldapport]
[dn]...

</screen>


<para>Az <command>ldapdelete</command> kapcsolatot létesít az LDAP szerverrel, és töröl egy vagy
több bejegyzést. Ha egy vagy több DN argumentum szerepel, akkor azok a
Megkülönbüztető Nevü (dn) bejegyzések törlődnek. Minden
DN-nek meg kell felelnie az RFC1779-ben definiált karatersorral. Ha
nincs dn argumentum megadva, a dn-ek listáját a standard bemenetről
olvassa be (vagy az -f kapcsolóval megadott fájlból). </para>

<para>Néhány példa következik az ldapdelete használatára: </para>

<screen>
ldapdelete 'cn=Luiz Malere,o=TUDelft,c=NL'

ldapdelete -v 'cn=Rene van Leuken,o=TUDelft,c=NL' -D 'cn=Luiz Malere,o=TUDelft,c=NL' -W 

</screen>


<para>A -v opció a  bőbeszédű kimenetet, a -D  a Binddn-t
(az azonosító dn-t) és a -W a jelszó prompt-ot jelenti. </para>

<para><command>ldapmodify - </command>Az ldapmodify a parancsértelmező által
elérhető felületet biztosít az ldap_modify(3) és az ldap_add(3) függvények használatához.
 Ez a program bejegyzések módosításához használható az LDAP adatbázisban.</para>

<para>Az ldapmodify szintaktikája a következő (Az opciók jelentése az ldapmodify
man lapján található): </para>

<screen>
ldapmodify   [-a]  [-b]  [-c]  [-r]  
[-n]  [-v]  [-k]  [-d debuglevel]  
[-D binddn]  [-W]  [-w passwd] 
[-h ldaphost] [-p ldapport] [-f file] 

ldapadd [-b] [-c] [-r] [-n] 
[-v]  [-k]  [-K]  [-d debuglevel]
[-D binddn]  [-w passwd]  [-h ldaphost] 
[-p ldapport] [-f file] 
</screen>


<para>Az <command>ldapadd</command> megvalósítása egy hard link az ldapmodify programra. Az
ldapadd hívásakor az ldappmodify -a (új bejegyzés hozzáadása) kapcsolója
automatikusan bekapcsoldódik.

Az ldapmodify kapcsolatot létesít az LDAP szerverrel, és egy vagy több
bejegyzést módosít. A bejegyzések információit a standard inputról
olvassa be, vagy pedig az -f opcióval beállított fájlból. </para>

<para>Néhány példa az ldapmodify használatára: </para>

<para>Tételezzük fel, hogy a /tmp/entrymods fájl létezik, és a következőket
tartalmazza: </para>

<screen>
dn: cn=Modify Me, o=University of Michigan, c=US  #módosítandó rész
changetype: modify 
replace: mail
mail: modme@terminator.rs.itd.umich.edu 
- 
add: title 
title: Grand Poobah 
- 
add: jpegPhoto 
jpegPhoto: /tmp/modme.jpeg 
- 
delete: description 
- 
</screen>

<para>A parancs: </para>

<screen>ldapmodify -b -r -f /tmp/entrymods </screen>

<para>kicseréli a "Módositandó" bejegyzés (cn="Modify Me") mail attribútumát a
"modme@terminator.rs.itd.umich.edu"-ra, hozzáadja a  "Grand Poobah" title (cím) attribútumot, és
 a /tmp/modme.jpeg fájl tartalmát, mint jpegPhoto, és törli a description attribútumot.</para>

<para>A fentiekkel megegyező módosítások a régebbi ldapmodify bemeneti formájában:</para>

<screen>
cn=Modify Me, o=University of Michigan, c=US 
mail=modme@terminator.rs.itd.umich.edu 
+title=Grand Poobah 
+jpegPhoto=/tmp/modme.jpeg 
-description 
</screen>


<para>és a hozzá tartozó parancs: </para>

<screen>ldapmodify -b -r -f /tmp/entrymods </screen>


<para>Tételezzük fel, hogy a /tmp/entrymods fájl létezik, és a következőket tartalmazza: </para>

<screen>
dn: cn=Barbara Jensen, o=University of Michigan, c=US 
objectClass: person
cn: Barbara Jensen 
cn: Babs Jensen 
sn: Jensen 
title: the world's most famous manager 
mail: bjensen@terminator.rs.itd.umich.edu 
uid: bjensen 
</screen>

<para>A parancs: </para>

<screen>ldapadd -f /tmp/entrymods </screen>

<para>hozzáadja a bejegyzést a következő megkülönböztető névvel: cn=Barbara Jensen, o=University of Michigan, c=US,
ha eddig nem létezett volna. Ha létezik ilyen dn-ű bejegyzés, a program hibával leáll és nem írja felül a bejegyzést.</para>

<para>Tételezzük fel, hogy a  /tmp/newentry fájl létezik, és a következőket tartalmazza: </para>

<screen>
dn: cn=Barbara Jensen, o=University of Michigan, c=US 
changetype: delete 
</screen>


<para>A parancs: </para>

<screen>ldapmodify -f /tmp/entrymods </screen>

<para>eltávolítja a Barbara Jensen bejegyzést. </para>

<para>Az -f opció jelenti a fájlt (a módosításhoz szükséges információkat
tartalmazza a standard input helyett), a -b kapcsoló jelzi a bináris
adatokat (minden '/' karakterrel kezdődő értéket binárisként kezel),
az -r kapcsoló állítja be a hozzáadást (a létező értékeket
alapértelmezésként felülírja). </para></section>
</chapter>


<chapter id="Additional">
<title>Kiegészítő információk és lehetőségek</title>

<para>Ebben a fejezetben további információk találhatók olyan hasznos témákról, mint az
azonosítás, naplózás, és az LDAP kliens. A fejezet végén további hasznos linkeket (magyar nyelvűeket is!), könyveket,
és ajánlott irodalmat, RFC-ket találunk.</para>


<section id="LDAPMigrationTools"><title>LDAP Migrációs Eszközök</title>
<para>Az LDAP Migrációs Eszközök a PADL Software Ltd. által közzétett perl script-ek gyűjteménye, használatuk előtt ajánlott a licensz feltételek
elolvasása, habár szabad szoftver. Konfigurációs fájlok LDIF formátumra történő átalakításához használhatóak.
 Ha felmerül az LDAP szerver használata
a felhasználók azonosításhoz, ezek nagyon hasznos programok lehetnek.
A Migration Tools használható a NIS vagy a password archívumok LDIF formába
konvertálásához, ezeket a fájlokat kompatibilissé téve az LDAP
szerverrel. Ezeknek a Perl scripteknek alkalmazásával átköltöztethetők a
user-ek, group-ok, alias-ok, host-ok, netgroup-ok, network-ok,
protocol-ok, PRC-k és service-k a meglevő szolgáltatóktól (NIS, fájlok,
és NetInfo) LDIF fomátumúvá. </para>


<para>Az LDAP Migration Tools letölthető, és további információk találhatók a következő címen:
<ulink url="http://www.padl.com/tools.html">http://www.padl.com/OSS/MigrationTools.html</ulink></para>


<para>A csomagban találhat README fájl, és a script-ek neve egyértelmű. A
script-ek alkalmazása előtt el kell olvasni a README fájlt!</para>

<para>További hasznos URL a migrációs eszközökről:</para>

<para><ulink url="http://dataconv.org/apps_ldap.html">http://dataconv.org/apps_ldap.html</ulink></para></section>


<section id="Authentication">
<title>Azonosítás LDAP használatával</title>

<para>Ahhoz, hogy az LDDAP szolgáltatást igénybe vehessük, először azonosítani kell magunkat (a klienset)
a szolgáltaóval. Ez annyiból áll, hogy megmondjuk a szervernek, ki akar az adatokhoz férni,
ebből a szerver eldönti, hogy mihez férhetünk hozzá és már mehetünk is.
Ha a kliens sikeresen azonosítja magát az LDAP szervernél, akkor ezután kéréseket küld a szervernek,
a szerver pedig ellenőrzi, hogy a kérés kiszolgálása jogos-e vagy sem.
Ez a folyamat a hozzáférés-szabályozás.</para>


<para>Az LDAP-ban az azonosítást a "bind" művelet végzi.
Az Ldapv3 háromféle azonosítási módot támogat: anonymous, egyszerű és SASL azonosítást.
Azok az ügyfelek, melyek a "bind" megkerülésével küldenek kéréseket a szerver felé, anonymous-ként lesznek kezelve.
Az egyszerű azonosítás abból áll, hogy az ügyfél elküldi az LDAP szerver felé a felhasználó DN-jét és a felhasználó egyszerű jelszavát.
Ennek a folyamatnak biztonsági problémái adódnak, mivel a jelszó könnyen elolvasható a hálózatról.
Ennek elkerülésére használható az egyszerű azonosítási folyamat egy titkosított csatornán keresztül (mint amilyen az SSL), ezt az LDAP is támogatja. </para>


<para>Végezetül itt van az SASL, vagyis a Simple Authentication and Security Layer (RFC 2222).
Ez a fajta azonosítás egy kérdés-válasz típusú protokoll az ügyfél és a szerver között, melyen keresztül létrejön egy biztonságos csatorna,
ahol a további tranzakciók lebonyolódnak.
Az SASL használatával mindenféle olyan azonosítási mód lehetséges, amelyet a szerver és a kliens megenged.
A Cyrus-SASL csomag a következő URL-ről érhető el: <ulink url="http://asg.web.cmu.edu/sasl/sasl-library.html">http://asg.web.cmu.edu/sasl/sasl-library.html</ulink>.</para>

<para>A felhasználók további azonosítása a címtár fában lévő további információk eléréséhez,
az LDAP szerver más szolgáltatásokból származó felhasználókat (sendmail, login, ftp, stb. ) is képes azonosítani.
Ezek a specifikus felhasználói információk eljutnak a szerverhez, majd a PAM (Pluggable
Authentication Modules) mechanizmus használatával azonosítja a felhasználókat.
Ez az azonosító modul az LDAP számára elérhető tarball formájában a
következő címen:<ulink url="http://www.padl.com/OSS/pam_ldap.html">http://www.padl.com/OSS/pam_ldap.html</ulink></para></section>

<section id="sasl">
<title>SASL konfiguráció : Digest-MD5 azonosítás</title>
<para> Nekem LDAP-SASL azonosítási rendszerem van, amely a DIGEST-MD5 mechanizmust használja.
Ahhoz, hogy működjön szigorúan ezekhez a lépésekhez ragaszkodva jutottam el:</para>

<itemizedlist>
<listitem><para>Töltsük le a SleepyCat aktuális verzióját (4.2.52 -a doksi frissítésekor), majd fordítsuk le.
Letöltés után  csak a doc/install.html (abban a könyvtárban, ahova kitömörítetted a csomagot) fájlban talált instrukciókra támaszkodtam.</para>
<para>Kicsomagolás után a várható parancsok:</para>
<screen>root@rdnt03:/usr/local/BerkeleyDB.4.2/build_unix#../dist/configure
root@rdnt03:/usr/local/BerkeleyDB.4.2/build_unix#make
root@rdnt03:/usr/local/BerkeleyDB.4.2/build_unix#make install
</screen></listitem>
<listitem><para>Töltsük le a Cyrus SASL aktuális változatát (2.1.17), tömörítsük ki és kövessük a doc/install.html-ben található utasításokat!
Itt figyelnünk kell egy kicsit: ugyanis a konfiguráció során néhány env (környezeti változó) paramétert is meg kell adnunk</para>

<screen>root@rdnt03:/usr/local/cyrus-sasl-2.1.17#env CPPFLAGS="-I/usr/local/BerkeleyDB.4.2/include"
LDFLAGS="-L/usr/local/BerkeleyDB.4.2/lib" ./configure</screen>

<para>A CPPFLAGS és LDFLAGS környezeti változóknak a Berkeley DBD telepítési könyvtárában található include és lib könyvtáraira kell mutatniuk.</para>
<para>Ezután már futtathatók a következők:</para>
<screen>root@rdnt03:/usr/local/cyrus-sasl-2.1.17#make
root@rdnt03:/usr/local/cyrus-sasl-2.1.17#make install
root@rdnt03:/usr/local/cyrus-sasl-2.1.17#ln -s /usr/local/lib/sasl2 /usr/lib/sasl2</screen></listitem>
<listitem><para>Végül, telepítettem az OpenLDAP programot (2.2.5) ugyanazokat az utasításokat használva, mint az SASL-nél
csak futtatva a konfigurációs szkriptet:</para>
<screen>root@rdnt03:/usr/local/openldap-2.2.5#env CPPFLAGS="-I/usr/local/BerkeleyDB.4.2/include"
LDFLAGS="-L/usr/local/BerkeleyDB.4.2/lib" ./configure</screen>
<para>Ezután futtattam a továbbiakat:</para>
<screen>root@rdnt03:/usr/local/openldap-2.2.5#make depend
root@rdnt03:/usr/local/openldap-2.2.5#make
root@rdnt03:/usr/local/openldap-2.2.5#make install</screen></listitem>
<listitem><para>Majd létrehoztam a sasl felhasználói adatbázist:</para>
<screen>root@rdnt03:~# saslpasswd2 -c admin</screen>
<para>Jelszót kell majd beírni. FIGYELEM! A felhasználónév ne egy DN (megkülönböztető név) legyen. A jelszó ugyanaz legyen mint az admin jelszó a címtár fánál.</para></listitem>
<listitem><para>Most be kell állítani az sasl-regexp direktívát a <emphasis>slapd.conf</emphasis> fájlban, mielőtt elindítanánk a slapd démont és tesztelni kezdenénk az azonosítást. Az én <emphasis>slapd.conf</emphasis> fájlom a /usr/local/etc/openldap könyvtárban csücsül:</para>
<screen>sasl-regexp uid=(.*),cn=rdnt03,cn=DIGEST-MD5,cn=auth uid=$1,ou=People,o=Ever</screen>

<para>Ez a paraméter ebben a formában van:</para>
<para>uid=&lt;username&gt;,cn=&lt;realm&gt;,cn=&lt;mech&gt;,cn=auth</para>
<para>A felhasználónév az sasl-ből vétetik, és az ldap keresési sztringbe illesztődik, a $1 helyére. A territóriumod valószínüleg a FQDN-ből (domain) jön, de néha nem, mint nálam sem. Ahhoz, hogy megtudjuk mi a felségterületeted a következőket kell tenni:
</para>

<screen>root@rdnt03:~# sasldblistusers2
admin@rdnt03: userPassword
admin@rdnt03: cmusaslsecretOTP</screen>

<para>Esetemben az <emphasis>rdnt03</emphasis> jelzi a domén-t. Ha ez a Te FQDN-d nem lehet problémád. A következő LDIF fájlt használom:
</para>
<screen>dn: o=Ever
o: Ever
description: Organization Root
objectClass: top
objectClass: organization

dn: ou=Staff, o=Ever
ou: Staff
description: These are privileged users that can interact with Organization products
objectClass: top
objectClass: organizationalUnit

dn: ou=People, o=Ever
ou: People
objectClass: top
objectClass: organizationalUnit

dn: uid=admin, ou=Staff, o=Ever
uid: admin
cn: LDAP Adminstrator
sn: admin
userPassword: {SHA}5en6G6MezRroT3XKqkdPOmY/BfQ=
objectClass: Top
objectClass: Person
objectClass: Organizationalperson
objectClass: Inetorgperson

dn: uid=admin,ou=People,o=Ever
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword: {SHA}5en6G6MezRroT3XKqkdPOmY/BfQ=
displayName: admin
mail: admin@eversystems.com.br
uid: admin
cn: Administrator
sn: admin
</screen>
<para>Adjunk bejegyzéseket az LDAP címtárunkhoz a következő paranccsal:</para>
<screen>slapadd -c -l Ever.ldif -f slapd.conf -v -d 256</screen>
</listitem>
<listitem><para>Most elindíthatjuk a <emphasis>slapd</emphasis> démont, és futtassunk le egy keresést az <emphasis>ldapsearch</emphasis> parancs használatával:</para>
<screen>root@rdnt03:~# ldapsearch -U admin@rdnt03 -b 'o=Ever' '(objectclass=*)'
SASL/DIGEST-MD5 authentication started
Please enter your password:
SASL username: admin@rdnt03
SASL SSF: 128
SASL installing layers
...
Entries
...</screen></listitem>
</itemizedlist>
<para>Ennyi! Amennyiben jobban szeretnéd használni az SASL-t Kerberos V vagy GSSAPI mechanizmusokkal, íme egy hasznos link:
<ulink url="http://www.openldap.org/doc/admin22/sasl.html">http://www.openldap.org/doc/admin22/sasl.html</ulink> Ez az oldal feltételezi, hogy már túl vagy az SASL telepítésén és beállításán.
A levelezőlista segíthet, ha elakadnál: <ulink url="http://asg.web.cmu.edu/sasl/index.html#mailinglists">http://asg.web.cmu.edu/sasl/index.html#mailinglists</ulink></para>
</section>

<section id="Graphicaltools"><title>Grafikus LDAP eszközök</title>

<para>A <command>kldap</command> egy grafikus ldap kliens a KDE környezetet számára.
A Kldap kényelmes felülettel rendelkezik, és képes valamennyi, a címtárban tárolt információs fa megjelentítésére.
Néhány kép az alkalmazásról valamint a letöltési hely:

<ulink url="http://www.mountpoint.ch/oliver/kldap/">http://www.mountpoint.ch/oliver/kldap/</ulink></para>


<para>A <command>KDirAdm</command> könyvtár kezelő eszközt KDE 2 vagy újabb környezethez írták.
Célja, hogy összegyűjtse a legáltalánosabban használt könyvtár kezelő eszközöket:

<ulink url="http://www.carillonis.com/kdiradm/">http://www.carillonis.com/kdiradm/</ulink></para>


<para>A <command>Directory Administrator</command>(Könyvtár Titkár) a legelterjedtebben használt Gnome alapú UNIX rendszerű felhasználó és csoportkezelő alkalmazás LDAP címtár kiszolgálókhoz.
 A Directory administrator lehetővé teszi felhasználók és csoportok létrehozását és törlését,
 valamint a felhasználókhoz tartozó névjegyalbum információk, kiszolgálónkénti hozzáférés-szabályozások, és Sendmail útvonalválasztások kezelését.

<ulink url="http://diradmin.open-it.org/index.php">http://diradmin.open-it.org/index.php</ulink></para>


<para>A <command>GQ</command>egy másik, a Gnome környezet számára készült grafikus LDAP kliens, egyszerű felülettel.
 Működik KDE alatt is, mint ahogy a Kldap is fut Gnome környezetben.
 További információk és a program letölthetősége:

<ulink url="http://biot.com/gq/">http://biot.com/gq/</ulink></para>


<para><command>LDAP Browser/Editor:</command> Ez egy fantasztikus eszköz, mindenféle adminisztrációs és böngészési lehetőséggel felszerelve.
 Itt megnézhető/letölthető: <ulink url="http://www.iit.edu/~gawojar/ldap/">Ldap Browser</ulink>.</para></section>


<section id="Logs"><title>Naplók</title>
<para>A slapd a syslog(8) képességeit használja naplózásra. Alapértelmezés
szerinti syslog(8) jellemző a user LOCAL4, de az értéke LOCAL0, LOCAL1,
egészen LOCAL7-ig engedélyezett. </para>


<para>A naplók létrehozásához szerkeszteni kell a syslog.conf file-t,
rendszerint a /etc könyvtárban.</para>

<para>Ehhez hasonló sort kell létrehozni: </para>

<screen>local4.*     /usr/adm/ldaplog </screen>


<para>Ez az alapértelmezett LOCAL4 usert állítja be a syslog jellemzőnek. A
syslog szintaxisában kevésbé járatosak számára a syslog, a syslog.conf
és a syslogd man oldalai segítenek. Ha meg kell változtatni az
alapértelmezett user-t vagy szintet, akkor a következő opciókkal kell
elindítani a slapd-t: </para>

<screen>-s syslog-level </screen>

<para>Ez az opció mondja meg, hogy a slapd milyen hibakereső állapotait naplózza a syslog(8).
A szint leírja az üzenetek mennyiségét. A következő kulcsszavak használhatók csökkenő
sorrendben: emerg, alert, crit, err, warning, notice, info, debug.

Példa: slapd -f myslapd.conf -s debug </para>

<screen>-l syslog-local-user </screen>

<para>Kiválasztja a syslog(8) jellemző user-ét. Az értékek a LOCAL0, LOCAL1, egészen LOCAL7-ig terjedhetnek.
 LOCAL4 az alapértelmezett. Viszont ez a lehetőség csak azokon a rendszereken
engedélyezett, amelyek támogatják a helyi usereket a syslog(8) jellemzőként. </para>


<para>Néhány pillantás a létrehozott naplókra (a példában: /usr/adm/ldaplog) segíthet felderíteni és megoldani sok problémát. </para></section>

</chapter>


<chapter id="References">
<title>Referenciák</title>

<para>Ebben a fejezetben további LDAP dokumentációk felsorolása találhatók:
hasznos linkek, könyvek és RFC-k. </para>
<section id="Urls">
<title>URL-ek</title>

<para>Néhány, az LADP-ről hasznos információkat tartalmazó tartalmazó weboldal címe
következik. Ezek alapján állítottam össze ezt a HOGYANt, szóval, amennyiben további
információkra lenne szükséged, talán segítenek ezek az oldalak </para>

<para><itemizedlist>

<listitem><para>University of Michigan LDAP oldal:
<ulink url="http://www.umich.edu/~dirsvcs/ldap/">http://www.umich.edu/~dirsvcs/ldap/</ulink></para></listitem>

<listitem><para>University of Michigan LDAP dokumentációs oldal:
<ulink url="http://www.umich.edu/~dirsvcs/ldap/doc/">http://www.umich.edu/~dirsvcs/ldap/doc/</ulink></para></listitem>

<listitem><para>OpenLDAP Adminisztrátorok Kézikönyve (testvéroldal):
<ulink url="http://www.openldap.org/doc/admin">http://www.openldap.org/doc/admin</ulink></para></listitem>

<listitem><para>Linux Directory Service:
<ulink url="http://www.rage.net/ldap/">http://www.rage.net/ldap/</ulink></para></listitem>

<listitem><para>Red Hat és LDAP:
<ulink url="http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/ch-ldap.html">http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/ch-ldap.html</ulink></para></listitem>

<listitem><para>Mandrake Linux - OpenLDAP használata azonosításhoz:
<ulink url="http://www.mandrakesecure.net/en/docs/ldap-auth.php">http://www.mandrakesecure.net/en/docs/ldap-auth.php</ulink></para></listitem>
<listitem><para> Az OpenLDAP használata más nyílt forráskódú projektekkel:
<ulink url="ftp://kalamazoolinux.org/pub/pdf/ldapv3.pdf">ftp://kalamazoolinux.org/pub/pdf/ldapv3.pdf</ulink></para></listitem>
</itemizedlist>
</para>
<para>Magyar nyelvű oldalak:
<itemizedlist>
<listitem><para>LDAP-ról pár szóban
<ulink url="http://padre.web.elte.hu/ldap.html">http://padre.web.elte.hu/ldap.html</ulink></para></listitem>
<listitem><para>Gentoo Linux - OpenLDAP hitelesítési útmutató
<ulink url="http://www.gentoo.org/doc/hu/ldap-howto.xml">http://www.gentoo.org/doc/hu/ldap-howto.xml</ulink></para></listitem>
<listitem><para>NOVELL - Fejlesztői oldalak
<ulink url="http://www.novell.hu/developer/opensource.shtml">http://www.novell.hu/developer/opensource.shtml</ulink></para></listitem>
<listitem><para>Az LDAP szerver installálása - U of SZEGED
<ulink url="http://www.cab.u-szeged.hu/~bilickiv/h_op/inflab_2001_1_f/3/LDAP.htm">http://www.cab.u-szeged.hu/~bilickiv/h_op/inflab_2001_1_f/3/LDAP.htm</ulink></para></listitem>
<listitem><para>HOGYAN érjük el az LDAP adatbázist Evolution alól?
<ulink url="http://kszk.sch.bme.hu/net/lists/evolution_ldap/">http://kszk.sch.bme.hu/net/lists/evolution_ldap/</ulink></para></listitem>
</itemizedlist></para></section>


<section id="Books">
<title>Könyvek</title>
<para>A legnépszerübb és a leghasznosabb LDAP témájú könyvek:</para>

<itemizedlist>
<listitem><para>Mark Wilcox: Implementing LDAP</para></listitem>
<listitem><para>Howes and Smith: LDAP: Programming Directory-Enabled Applications
      with Lightweight Directory Access Protocol</para></listitem>
<listitem><para>Howes, Smith, and Good: Understanding and Deploying LDAP Directory
      Servers</para></listitem>
</itemizedlist></section>

<section id="RFCs">
<title>RFC-k</title>
<para>Az LDAP fejlesztőket támogató <ulink url="http://www.rfc-editor.org/rfc/">RFC-k</ulink>:</para>


<itemizedlist>
<listitem><para>RFC 1558: A String Representation of LDAP Search Filters</para></listitem>
<listitem><para>RFC 1777: Lightweight Directory Access Protocol</para></listitem>
<listitem><para>RFC 1778: The String Representation of Standard Attribute Syntaxes</para></listitem>
<listitem><para>RFC 1779: A String Representation of Distinguished Names</para></listitem>
<listitem><para>RFC 1781: Using the OSI Directory to Achieve User Friendly Naming</para></listitem>
<listitem><para>RFC 1798: Connectionless LDAP</para></listitem>
<listitem><para>RFC 1823: The LDAP Application Programming Interface</para></listitem>
<listitem><para>RFC 1959: An LDAP URL Format</para></listitem>
<listitem><para>RFC 1960: A String Representation of LDAP Search Filters</para></listitem>
<listitem><para>RFC 2251: Lightweight Directory Access Protocol (v3)</para></listitem>
<listitem><para>RFC 2307: LDAP as a Network Information Service</para></listitem>
</itemizedlist></section>

</chapter></book>


