Linux LDAP HOWTO
Thomas Bendler (
[email protected])
v0.65-2, 7. Oktober 1999
Dieses HOWTO soll die Installation und Konfiguration eines LDAP
Servers auf Basis des OpenLDAP veranschaulichen. Desweiteren finden
sich Informationen zum Zugriff auf den LDAP Server.
1. Einleitung
1.1. Besonderheiten
Dieses HOWTO bezieht sich auf die Installation des OpenLDAP Servers
1.2.4-2 aus der Serie n unter SuSE Linux 6.2. Die Konfiguration
unterscheidet sich von der Installation des Orginal OpenLDAP Paketes
durch unterschiedliche Verzeichnisse, die per Default in den rpm�s der
SuSE Distribution eingestellt sind. In einem gesonderten Kapitel gehe
ich auf die einzelnen Unterschiede ein, so da� die Anpassung an die
lokalen Gegebenheiten kein Problem sein sollte.
1.2. Neue Versionen
1.2.1. Aktuelle Version
Die aktuelle Version dieses Dokumentes ist auf dem Server des
Deutschen Linux HOWTO Projektes unter
http://www.tu-harburg.de/dlhp/
zu finden.
1.2.2. Zuk�nftige Versionen
Die von mir vorgestellte Beispieldatenbank stellt nat�rlich nur einen
kleinen Teil der M�glichkeiten dar, die LDAP bietet. Sie soll in
erster Linie als Einstieg dienen und den geneigten Nutzer zum
experimentieren animieren. Ich werde versuchen, dieses HOWTO im Laufe
der n�chsten Zeit zu erweitern, um weitere M�glichkeiten im Umgang mit
LDAP aufzuzeigen. Dabei bin ich allerdings auf die Hilfe der LDAP
Cracks angewiesen, da ich mich noch nicht allzulange mit LDAP
besch�ftige. Um dieses Dokument also so vollst�ndig wie m�glich zu
gestalten, bitte ich funtionierende Verfahren (z.B. Passwort
Authentifizierung via LDAP, Roaming, SAMBA und LDAP, etc.) an die
unter Feedback angegebende E-Mail Adresse zu senden, damit ich sie so
schnell wie m�glich in dieses Dokument aufnehmen kann.
1.3. Feedback
Bei Fragen und Kommentaren zu diesem Dokument sowie bei Anregungen und
Verbesserungsvorschl�gen wenden Sie sich bitte an:
Thomas Bendler (
[email protected])
1.4. Haftung
F�r die hier vorgestellten Verfahren �bernehme ich keine Haftung.
Sollten sich Fehler eingeschlichen haben oder Verfahren nicht
funtionieren, siehe Feedback.
1.5. Copyright
Dieses Dokument ist urheberrechtlich gesch�tzt. Das Copyright liegt
bei Thomas Bendler.
Das Dokument darf gem�� der GNU General Public License verbreitet
werden. Insbesondere bedeutet dieses, da� der Text sowohl �ber
elektronische wie auch physikalische Medien ohne Zahlung von
Lizenzgeb�hren verbreitet werden darf, solange dieser Copyright
Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt
und ausdr�cklich erw�nscht. Bei einer Publikation in Papierform ist
das Deutsche Linux HOWTO Projekt hier�ber zu informieren.
2. Eine kleine Einf�hrung in LDAP
2.1. Was ist LDAP?
LDAP ist die Abk�rzung von Lightweight Directory Access Protokoll. Das
LDAP entstand urspr�nglich als Front End f�r den X.500
Verzeichnisdienst. Da X.500 als kompletter OSI Stack implementiert
ist, war es nicht m�glich, diesen Verzeichnisdienst fl�chendeckend zu
implementieren. LDAP ist ein Verzeichnisdienst, der auf dem TCP/IP-
Protokoll basiert und somit Resourcenschonender f�r die Netzwerk
Infrastruktur ist. Obwohl LDAP nur einen Teil der Funktionen des DAP
zur Verf�gung stellt, reicht es aus, um die fehlenden Funktionen
vollst�ndig zu emulieren. Basis f�r LDAP sind die im Abschnitt
``RFC's'' aufgef�hrten RFC�s.
2.2. Welche Informationen kann LDAP zur Verf�gung stellen?
LDAP speichert seine Informationen in einer Baumhierarchie. Diese
Hierarchie kann diverse Informationen enthalten. Einen �berblick
verschafft RFC 2307, in dem m�gliche Inhalte der LDAP Hierarchie
spezifiziert sind:
� Benutzer
� Gruppen
� IP Dienste
� IP Protokolle
� RPCs
� NIS Netzwerkgruppen
� Boot-Informationen
� Einh�ngepunkte f�r Dateisysteme
� IP Hosts und Netzwerke
� RFC 822 konforme Mail-Aliase
3. Technische Daten des LDAP Server
Der Zugriff auf den LDAP Server erfolgt �ber das LDAP Protokoll via
TCP/IP. Per Default lauscht der slapd auf dem Port 389. Dies ist im
RFC 1777 spezifiziert. Der LDAP Server speichert seine Informationen
in einer baumartigen Struktur. Diese wird auch Directory Information
Tree genannt, kurz DIT. Zum Speichern benutzt der LDAP Server Objekte,
die er mit Attributen versehen kann. Dadurch kann man die Struktur
flexibel an die eigenen Bed�rfnisse anpassen. Das RFC 2256
spezifiziert die Standard Objekte des LDAP Servers. Man wird zwar von
niemanden gezwungen, diese Vorgaben auch zu benutzen, um aber eine
m�glichst gro�e Kompatibilit�t zu erzielen, sollte man diese Vorgaben
einhalten.
4. Installation des OpenLDAP
Beschrieben wird im folgenden die Installation des OpenLDAP in der
Version 1.2.1. Die Installation zuk�nftiger Releases sollte sich nicht
grundlegend von der hier vorgestellten Methode abweichen. Sollte dies
trotzdem der Fall sein, werde ich das in zuk�nftigen Versionen dieses
Dokumentes ber�cksichtigen.
4.1. Quellen f�r den OpenLDAP Server
Der Quellcode der aktuellen Version des OpenLDAP Servers in einem
komprimierten Archiv finden sich auf der Homepage der OpenLDAP
Foundation. Die aktuellen Quellen k�nnen von:
ftp.OpenLDAP.org:/pub/OpenLDAP/openldap-release.tgz
bezogen werden.
Eine einfachere M�glichkeit der Installation bieten sogenannte rpm-
Archive. Dies sind bereits kompilierte Pakete, die auf die
Besonderheiten der jeweils eingesetzten Distribution zugeschnitten
sind. Die jeweilige Installationsprozedur entnehmen Sie bitte Ihrem
Handbuch. In der SuSE Distribution ist der OpenLDAP Server in der
Serie n zu finden.
4.2. Installation des OpenLDAP Servers
Haben Sie den OpenLDAP mit Hilfe der Distributions eigenen rpm-Archive
installiert, k�nnen Sie diesen Abschnitt auslassen. Wenn Sie sich die
Quellen des OpenLDAP Servers gezogen haben, m�ssen Sie diese noch
installieren. Zu diesem Zweck wechseln Sie in das Verzeichnis, in dem
Sie die Quellen gespeichert haben und entpacken Sie die Quellen mit
folgendem Kommando:
tar xvfz ./openldap-release.tgz
Anschlie�end m�ssen Sie mit cd ldap in das Installationsverzeichnis
wechseln. Dort befindet sich die Datei include/ldapconfig.h.edit. In
ihr kann man den LDAP an die eigenen Bed�rfnisse anpassen. In der
Regel sollten aber die voreingestellten Werte in Ordnung sein. Nun
gehts ans �bersetzten und Installieren des Programmpaketes. F�hren Sie
dazu folgende Befehle aus:
./configure
make depend
make
Um die Kompilation zu testen, k�nnen noch folgende Anweisungen
ausgef�hrt werden:
cd test
make
Die Installation des Paketes mu� als Superuser (root) mit folgendem
Befehl erfolgen:
su
make install
That�s it. Nun sollte der OpenLDAP Server installiert sein.
4.3.
Unterschiede zwischen dem Orginal OpenLDAP Paket und den SuSE
rpm-Archiven
Die beiden Pakete sind zwar nach der Installation inhaltlich fast
identisch, unterscheiden sich aber gravierend in den verwendeten
Pfaden. Folgende �bersicht soll die Unterschiede verdeutlichen:
SuSE rpm-Archive:
/etc/openldap/ Konfigurationsdateien
/usr/bin/ Hilfsdateien
/usr/libexec/openldap/ Server
/sbin/init.d/ldap Startskript
/usr/doc/packages/openldap/ Dokumentation, zus�tzliche Tools
/usr/include/ Include Dateien
/usr/lib/ Bibliotheken
/usr/share/openldap/ Dateien f�r X.500 Gateway
OpenLDAP Original:
/usr/local/etc/openldap/ Konfigurationsdateien
/usr/local/bin/ Hilfsdateien
/usr/local/sbin/ Server
/usr/src/ldap/doc/ Dokumentation (wenn Installationsverzeichnis)
/usr/local/include/ Include Dateien
/usr/local/lib/ Bibliotheken
/usr/local/share/ Dateien f�r X.500 Gateway
5. Anpassen der Konfigurationsdateien
Die Pfade f�r die Konfigurationsdateien entnehmen sie bitte dem
Abschnitt ``Unterschiede zwischen dem Orginal OpenLDAP Paket und den
SuSE rpm-Archiven''. Mit dem OpenLDAP Server werden mehrere
Konfigurationsdateien ausgeliefert, die teilweise noch an die lokalen
Gegebenheiten angepasst werden m�ssen.
5.1. Liste der Konfigurationsdateien
ldap.conf Client Konfiguration
ldapfilter.conf Filterregeln
ldapsearchprefs.conf Bevorzugte Suchkriterien
ldaptemplates.conf Templates f�r Formulare
slapd.conf Server Konfiguration
slapd.at.conf Beschreibung der Attribute
slapd.oc.conf Beschreibung der Objektklassen
5.2. Konfigurieren der ldap.conf
In der Datei ldap.conf wird die Basis Domain f�r den Client
festgelegt. F�r das folgende Beispiel im Abschnitt ``Erstellen eines
Beispielverzeichnisses'' wird die Basisadresse mit der Domain
geleichgesetzt.
#
# ldap.conf f�r Structur Net
#
# Beachten Sie auch man ldap.conf
#
BASE dc=structure-net,dc=de
HOST ldap.structure-net.de
Was bewirkt die hier vorgestellte ldap.conf? Mit der Variable BASE
wird die standardm��ig abgefragte Struktur festgelegt. Die Variable
HOST gibt den Server an, der standardm��ig abgefragt wird. �ber die
Variable PORT kann alternativ auch ein anderer Default Port
eingestellt werden.
5.3. Konfiguration der slapd.conf
Die Datei slapd.conf enth�lt die Eintr�ge f�r die Konfiguration des
slapd Standalone Server. Der slapd beantwortet die LDAP Anfragen der
Clients. F�r das folgende Beispiel bekommt die Datei folgenden Inhalt:
#
# slapd.conf f�r Structure Net (SuSE Style)
#
# Beachten Sie auch "man slapd.conf"
#
# Diese Datei sollte nicht global lesbar sein, da sie ein
# Pa�wort enth�lt.
include /etc/openldap/slapd.at.conf
include /etc/openldap/slapd.oc.conf
schemacheck on
referral ldap://ldap.infospace.com
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
database ldbm
directory /var/openldap
suffix "dc=structure-net,dc=de"
rootdn "uid=admin,dc=structure-net,c=de"
rootpw secret
index cn,sn,uid pres,eq,approx,sub
index objectclass pres,eq
index default none
defaultaccess read
access to attr=userpassword
by self write
by dn="uid=admin,dc=structure-net,dc=de" write
by * compare
Was bewirkt die hier vorgestellte slapd.conf? Die include Anweisungen
bewirken ein Einbinden der angegebenen Dateien. In diesem Fall werden
die Objektklassen (oc) und deren Attribute (at) eingelesen. Mit dem
schemacheck wird �berpr�ft, ob modifizierte oder neu installierte
Daten den Regeln der Objektklassen entsprechen. Ist der ldap nicht in
der Lage, eine Anfrage zu beantworten, fragt er den unter referral
angegebenden Server. Die Zeilen pidfile und argsfile sind f�r den
laufenden Betrieb (pid=prozess id, args=argumente). Mit dem
Schl�sselwort database wird festgelegt, welches Datenbankformat
benutzt wird. Es sind auch Abfragen von anderen Datenbanken m�glich.
Im directory wird spezifiziert, wo die Datenbank zu finden ist bzw.
angelegt werden soll. Da dieses Verzeichnis frei w�hlbar ist, mu� es
noch von Hand angelegt werden. Dazu reicht ein einfaches:
cd /var
mkdir openldap
Die unter suffix angegebende Struktur legt fest, welche Anfragen �ber
die lokale Datenbank beanwortet werden k�nnen. Die rootdn und rootpw
Eintr�ge spezifizieren den Administrator der Datenbank. Mit Hilfe der
index Anweisung wird der Datenbank mitgeteilt, wie sie Indexe anlegen
soll. Zum Schlu� werden noch die Zugriffsrechte auf den LDAP Server
festgelegt. Standardm��ig erh�lt jeder Benutzer Lesezugriff auf die
Datenbank. Ver�ndern d�rfen die Benutzer nur ihren eigenen Eintrag.
Diese Aktion wird �ber das Attribut userpassword verifiziert. Der
Benutzer admin darf alle Eintr�ge unterhalb structure-net ver�ndern.
Ein Vergleich ist jedem gestattet.
5.4. Sonstige Konfigurationsdateien
Wie man bereits in der Konfigurationsdatei slapd.conf sehen kann,
werden zwei Konfigurationsdateien eingebunden (slapd.at.conf,
slapd.oc.conf). Diese m�ssen in diesem Beispiel nicht ver�ndert
werden. Die Dateien enthalten die Objektklassen und die Attribute f�r
die Objektklassen. Die standardm��ig gegebenden Dateien sind f�r die
meisten Standard Anwendungen ausreichend. F�r weitere Informationen
konsultieren Sie bitte die entsprechenden Manual Pages.
Sollen die Benutzer ihre Eintr�ge selbst ver�ndern k�nnen, so empfielt
sich noch eine Anpassung der ldaptemplates.conf an die eigene
Bed�rfnisse. Sie stellt die Standard-Einstellungen zur Verf�gung.
6.
Erstellen eines Beispielverzeichnisses
6.1. Erstellen der LDIF Dateien
Nach der Installation und Konfiguration des LDAP Servers mu� dieser
mit Daten gef�ttert werden. Das folgende Beispiel erkl�rt den LDAP
Server anhand einer fiktiven Firma mit mehreren Abteilungen. Die
einzelnen Felder m�ssen den lokalen Gegebenheiten nur angepa�t werden,
um eine simple Konfiguration aufzusetzten.
F�r das folgende Beispiel wird im Verzeichnis /etc/openldap das
Unterverzeichnis ldif/ angelegt. In diesem Verzeichnis kann mit jedem
x-beliebigen Editor, der ASCII unterst�tzt, eine Datei mit dem Namen
firmenstruktur.ldif erstellt werden. Der Name und das Verzeichnis f�r
die Beispiel LDIF-Dateien sind beliebig. Es m�ssen f�r den Fall, das
andere Namen oder Pfade verwendet werden, diese nur an die lokalen
Gegebenheiten angepa�t werden.
Das Beispiel erstellt den DIT (Directory Information Tree) f�r die
fiktive Firma Structure Net in Deutschland; hoffentlich gibts die
wirklich nicht. Die Firma Structure Net bekommt drei Abteilungen
spendiert: Sales, Development und Support. Jeder Abteilung werden zwei
Mitarbeiter zugeordnet. Daraus ergibt sich folgende Struktur:
DE
|
+-- Structure Net --+
|
+-- Sales --+-- Mitarbeiter 1 (Axel Hueser)
| |
| +-- Mitarbeiter 2 (Jared Wiener)
|
+-- Development --+-- Mitarbeiter 3 (Thomas Bendler)
| |
| +-- Mitarbeiter 4 (Thomas Lippert)
|
+-- Support --+-- Mitarbeiter 5 (Elmar Mueller)
|
+-- Mitarbeiter 6 (Enrico Lemke)
Um das Beispiel �bersichtlich zu gestalten und dem Nutzer zu zeigen,
welche Eintr�ge f�r was verantwortlich sind, habe ich die Beispiel
LDIF in eine Datei f�r die Firmenstruktur und in eine Datei pro
Abteilung aufgeteilt. Der admin Account mu� nat�rlich schon in der
Firmenstrukur angegeben werden, da sonst keine weiteren Eintr�ge �ber
ldapadd m�glich sind; doch dazu sp�ter mehr.
6.1.1. Beispiel LDIF firmenstruktur.ldif
dn: dc=structure-net, dc=de
objectclass: organization
objectclass: top
o: Structure Net
l: Hamburg
postalcode: 21033
streetadress: Billwiese 22
dn: ou=Sales, dc=structure-net, dc=de
objectclass: organizationalunit
ou: Sales
description: Verkauf
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
dn: ou=Development, dc=structure-net, dc=de
objectclass: organizationalunit
ou: Development
description: Verkauf
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
dn: ou=Support, dc=structure-net, dc=de
objectclass: organizationalunit
ou: Support
description: Verkauf
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
dn: uid=admin, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
cn: admin
cn: Systemverwalter
cn: Thomas Bendler
sn: Bendler
uid: admin
mail:
[email protected]
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
6.1.2. Beispiel LDIF sales.ldif
dn: uid=ahueser, ou=Sales, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Axel Hueser
sn: Hueser
uid: ahueser
mail:
[email protected]
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
dn: uid=jwiener, ou=Sales, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Jared Wiener
sn: Wiener
uid: jwiener
mail:
[email protected]
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
6.1.3. Beispiel LDIF development.ldif
dn: uid=tbendler, ou=Development, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
cn: tbendler
cn: Systemverwalter
cn: Thomas Bendler
sn: Bendler
uid: tbendler
mail:
[email protected]
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
dn: uid=tlippert, ou=Development, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Thomas Lippert
sn: Lippert
uid: tlippert
mail:
[email protected]
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
6.1.4. Beispiel LDIF support.ldif
dn: uid=emueller, ou=Support, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Elmar Mueller
sn: Mueller
uid: emueller
mail:
[email protected]
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
dn: uid=elemke, ou=Support, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Enrico Lemke
sn: Lemke
uid: elemke
mail:
[email protected]
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321
Die vorgestellte Datenbank ist nat�rlich weder sonderlich umfangreich
noch besonders trickreich. Doppelte Datens�tze wie z.B. Admin und
Bendler, die sich auf die selbe Person beziehen, k�nnen auch �ber
Verweise aufgel�st werden. So kann man z.B. eine Gruppe People
erstellen, in der man alle bekannten Personen unterbringt. In den
Gruppen Sales, Development und Support tr�gt man dann Verweise auf
diese Personen ein.
6.2. Umwandeln der LDIF Datei in das LDBM Format
Als n�chstes mu� die LDIF Datei ins LDBM Format konvertiert werden.
Dazu dient der Befehl ldif2ldbm. In der SuSE Distribution ist dieser
unter /usr/sbin/ zu finden. Der Befehl lautet also:
ldif2ldbm -i /etc/openldap/ldif/firmenstruktur.ldif \
-f /etc/openldap/slapd.conf
Sollten sich irgendwelche Dateien nicht in den Standardpfaden
befinden, so kann man so nach den Dateien suchen lassen:
find / -name <Dateiname>
Ist die LDIF Datei konvertiert, mu� der LDAP Server gestartet werden.
SuSE stellt daf�r ein init-Skript zur Verf�gung:
/sbin/init.d/ldap start
Wenn der LDAP Server wunschgem�� l�uft, kann dieser auch automatisch
gestartet werden, indem man die Variable START_LDAP in der rc.config
auf yes setzt.
Ist kein Startskript vorhanden, wird der LDAP Server mit folgendem
Kommando gestartet:
slapd -f /usr/local/etc/openldap/slapd.conf
6.3. Testen des LDAP Servers
Um den LDAP Server zu testen, kann man jetzt eine Anfrage an selbigen
schicken. Dies geschieht mit folgendem Befehl:
ldapsearch objectclass=\*
Der Server sollte nun eine Struktur, wie in der Datei
firmenstruktur.ldif beschrieben, als R�ckantwort �bergeben.
6.4. Hinzuf�gen von Datens�tzen
Nun gehts an das Hinzuf�gen von Datens�tzen. Dazu werden die bereits
erstellten LDIF Dateien benutzt. Das Hinzuf�gen geschieht mit Hilfe
des Befehls ldapadd. Dies geschieht folgenderma�en:
ldapadd -v -D dn="uid=admin,dc=structure-net,dc=de" \
-w secret -f /etc/openldap/ldif/sales.ldif
ldapadd -v -D dn="uid=admin,dc=structure-net,dc=de" \
-w secret -f /etc/openldap/ldif/development.ldif
ldapadd -v -D dn="uid=admin,dc=structure-net,dc=de" \
-w secret -f /etc/openldap/ldif/support.ldif
Auf diese Weise k�nnen auch weitere Eintr�ge hinzugef�gt werden. Eine
etwas komfortablere Variante stellt das X.500 Webgateway, da welches
als Frontend beschrieben wird.
7. Tuning des LDAP Servers
Es gibt unterschiedliche M�glichkeiten, den LDAP Server zu tunen. Die
M�glichkeiten, den LDAP Server zu tunen, beziehen sich in erster Linie
auf die LDBM Datenbank. Deutliche Performancegewinne lassen sich aber
erst in Verbindung mit gro�en Datenbest�nden erzielen. Das The SLAPD
and SLURPD Administration Guide bietet einen �berblick der
M�glichkeiten zum Tunen des LDAP Servers. Weitere Informationen finden
sich im FAQ-O-MATIC auf der Homepage des OpenLDAP Projektes.
8. Frontends f�r den LDAP Server
Da auf Dauer die Bedienung des LDAP Servers mit Hilfe der
mitgelieferten Tools wie z.B. ldapmodify relativ umst�ndlich ist,
sehnt man sich nach einem grafischen Interface zur Modifizierung und
Abfrage der LDAP Datenbank. Ich habe dazu das X.500 Webgateway
installiert. Das X.500 Webgateway bietet eine komfortable M�glichkeit,
auf den LDAP Server via einem Browser zuzugreifen. Es erlaubt auch
die Pa�wort gest�tzte Modifikation der Eintr�ge.
8.1. Installation von Web500gw
Das Web500gw wird von Frank Richter, Technische Universit�t Chemnitz
entwickelt. Es basiert auf dem Gopher-LDAP Gateway (go500gw)
Implementierung von Tim Howes. Erweiterungen stammen von Mark Smith,
Rakesh Patel, Rutgers University und Hallvard B Furuseth, Universit�t
Oslo. Das Web500gw kann unter folgender Adresse bezogen werden:
ftp.tu-chemnitz.de/pub/Local/urz/web500gw/web500gw.tgz
Die Installation des Quellcodes wird in der mitgelieferten INSTALL-
Datei beschrieben. Ich gehe im folgenden nicht auf die Installation
des Gateways ein, da dies den Rahmen des Dokumentes sprengen w�rde.
Dem geneigten Benutzer sei die Online Hilfe empfohlen, die unter
http://www.tu-chemnitz.de/~fri/web500gw/
zu finden ist. Die Benutzer von SuSE Linux haben es dort ein bi�chen
einfacher. Sie m�ssen nur web500gw aus der Serie n installieren. Das
Gateway kann dann kompfortabel �ber das Skript /sbin/init.d/webgw
gestartet werden. Soll das Gateway automatisch beim Hochfahren
gestartet werden, mu� es in die Datei rc.config eingetragen werden.
Alternativ kann das Gateway auch mit web500gw gestartet werden. Dies
bietet sich auch zur Fehlersuche an, da man mit den Parametern -v -d
32 das Verhalten des Gateways kontrollieren kann.
8.2. Konfiguration von Web500gw
Nach der Installation von Web500gw mu� das Gateway konfiguriert
werden, damit es den lokalen Gegebenheiten Rechnung tr�gt. Wesentlich
hierf�r ist die Datei web500gw.conf im Verzeichnis /etc/web500. Bei
SuSE wird web500gw standardm��ig unter /usr/local installiert. Im
folgenden habe ich eine beispielhafte Konfigurationsdatei f�r den
Beispiel LDAP Server abgedruckt. Das Anpassen der restlichen
Konfigurationsdateien ist optional. Eine entsprechende Dokumentation
ist in der Online Hilfe zu finden.
8.3. Die web500gw.conf
#
# web500gw.conf erstellt von Thomas Bendler 13.08.1999
#
# Standard Port f�r web500gw - dies kann durch das Flag -p ge�ndert werden
port: 8888
# Standard LDAP Server - dies kann durch das Flag -x ge�ndert werden
ldapserver: ldap.structure-net.de
# Standard LDAP Port - dies kann durch das Flag -P ge�ndert werden
ldapport: 389
# Erlaube die Nutzung von anderen LDAP Servern
otherservers: no
# Maximales Zeitlimit f�r LDAP Anfragen in Sekunden
timelimit: 30
# Maximale Anzahl der Ergebnisse bei Anfragen au�erhalb der Basis DN.
sizelimit: 0
# Standard Basis DN
# kann durch die ACCESS Regeln ge�ndert werden
homedn: dc=structure-net,dc=de
# Was macht web500gw, wenn keine Basis DN angegeben wurde
rootishome: on: /M = "dc=structure-net,dc=de", / = "X.500 root"
# Anbindung �ber spezifizierte DN
# kann durch die ACCESS Regeln ge�ndert werden
web500dn: dc=structure-net,dc=de
# ... und das Pa�wort f�r web500dn (simple auth)
web500pw:
# Anzeige eines Eintrages, wenn Suche erfolgreich war
showonematch: yes
# Try a UFN search if a search value contains a comma
# Boolean value - Default is yes
ufnsearch: on
# Durchsuche Subtree nach folgenden Klassen
subsearch: organization, organizationalUnit
# Send "Last-Modified:" HTTP header if entry has a "lastModifiedTime"
# attribute. Boolean value - Default is yes
lastmodified: on
# Send "Expire:" HTTP header: default: -1 == don't expire
# 0 == expire now (no caching), > 0 == expire after seconds
expires: 3600
# Pfad der Dateien
etcdir: /etc/web500
g3togif: /usr/local/bin/g3togif
jpegtogif: /usr/bin/djpeg -gif
# wenn Robots anfragen sende folgende Zeile
robots: User-agent: *
Disallow: /
# Maximale Anzahl von Werten f�r ein Attribut
maxvalues: 5
# access: Name : Pattern : rights : sizelimit : def-lang : Homedn : Bind_as : Bind-PW : suffix
access: Local : .*\.structure-net\.de$ : full : 50 : de : : : :.internal
access: German : .*\.de$ : read : 50 : de : c=DE :::
access: World : .* : read : 50 : en : / : : :
# language: HTTP-Content-Language : pattern for Accept-Language : suffix for lang spec files
language: de : de.* : .de
language: fr : fr.* : .fr
language: en : .* :
# Browser abh�ngige Konfiguration
#browser: Name : User-Agent pattern : options : def. display flags : navigation
browser: Mozilla : Mozilla/* : html32 : table : top,menu
browser: Lynx : Lynx.* : forms,mailto : oneline : bottom,small
browser: Other : .* : forms,mailto,img : list : top,list
8.4. Zugriff auf Web500gw
Auf das Web500gw kann mit jedem handels�blichen Browser zugegriffen
werden. In dem Beispiel ist die URL folgende:
http://ldap.structure-net.de:8888/
Wenn das Gateway richtig konfiguriert ist, sollte nun ein Auswahlmen�
erscheinen. Dort ist auch die Online Hilfe integriert.
8.5. Weitere Konfigurationsdateien
Um das Gateway an die lokalen Gegebenheiten anzupassen, sollte man
einen Blick in die restlichen Konfigurationsdateien werfen und zum
Beispiel Vorgaben und E-Mail Adressen an die lokalen Gegebenheiten
anpassen. Desweiteren kann auch eine Modifizerung der Templates
notwendig sein, wenn man z.B. via member auf andere Eintr�ge
verweisst. Diese Eintr�ge wurden in der Version, die mir vorlag,
standardm��ig nicht angezeigt.
9. Client Zugriff auf LDAP
Beispielhaft f�r den Zugriff auf den LDAP Server sei hier der Netscape
Communicator beschrieben. Der Communicator bietet unterschiedlich
M�glichkeiten, um auf den LDAP Server zuzugreifen. Im folgenden werde
ich mich auf die Abfrage der Adressen, die im Beispiel erzeugt wurden,
beschr�nken. Da der LDAP Server in der Lage ist, fast alles in seiner
Baumhierachie zu speichern, ist es nat�rlich auch m�glich, Profile der
einzelnen Benutzer zu speichern. M�glichkeiten und Wege dies zu
realisieren, werde ich in einer zuk�nftigen Version dieses Dokumentes
ber�cksichtigen.
9.1. Konfiguration des Netscape Communinicator
Die Konfiguration des Netscape Communicators gestaltet sich relativ
einfach. Voraussetzung f�r die Benutzung des LDAP Servers ist eine
Version ab 4.5.
Ist diese installiert, mu� als erstes das Adressbuch ge�ffnet werden.
Dies findet sich unter communicator, adress book. Nun �ffnet sich ein
Fenster, in dem bereits drei Verzeichnisse eingetragen sind:
Netcenter, InfoSpace und Verisign. Ein Klick mit der rechten Maustaste
auf Netcenter �ffnet ein Popup Fenster, in dem New Directory ...
ausgew�hlt werden mu�. Nun m�ssen in das erscheinende Formular
folgende Daten eingetragen werden (ich beziehe mich auf das Beispiel
aus Sektion 4 und 5, gegebenfalls m�ssen die Eintr�ge an die lokale
Konfiguration angepa�t werden): eine Beschreibung des Dienstes unter
description (z.B. Structure Net), der Name des LDAP Servers
(ldap.structure-net.de) und zu guter letzt der Server Root (c=DE,
c=US). In diesem Feld werden die L�nder spezifiziert, die durchsucht
werden. Optional kann noch das Feld Login with name and password
aktiviert werden, falls die einzelnen Benutzer in der Lage sein
sollen, Ihre Daten selbstt�tig zu �ndern.
Der LDAP Server kann jetzt �ber das search Feld befragt werden. Gibt
man nun z.B. den Nachnamen an, erscheint eine Liste der Personen, die
im sn Feld diesen Namen stehen haben.
9.2. Erweiterte Konfiguration
Um das Adressbuch an die lokalen Gegebenheiten anzupassen, sind noch
weitere Einstellungen m�glich. Eine detailierte Anleitung findet sich
auf der Web-Site von Netscape unter folgender Adresse:
http://developer.netscape.com/docs/manuals/communicator/ldap45.htm
10. N�tzliche Tools
Neben dem vorgestellten Netscape Communicator und Web500gw als Client
bzw. Front End zum LDAP Server existieren noch weitere Tools, um die
Arbeit mit dem LDAP Server zu erleichtern. Im folgenden habe ich ein
paar zusammengestellt. Diese Liste erhebt keinen Anspruch auf
Vollst�ndigkeit.
10.1. LDAP Migration Tools
Die LDAP Migration Tools sind eine Sammlung von PERL-Skripten, die bei
der Konvertierung von vorhandenen Datenbanken ins LDAP Format (bzw.
ins LDIF Format) behilflich sind. So kann man z.B. die /etc/passwd
Datei ins LDIF Format �berf�hren. Die LDAP Migration Tools sind
erh�ltlich unter:
http://www.padl.com/tools.html
Die Migration Tools sind vor allem dann hilfreich, wenn man den LDAP
Server z.B. zur Benutzer Authentifizierung nutzen will. Soll der LDAP
Server nur als Adressbuch verwendet werden, sind die Tools nicht
notwendig.
10.2. PAM LDAP Module
Um den LDAP Server als erste Instanz f�r User Authentifizierungen zu
nutzen, wird ein gesicherter Transport vorrausgesetzt. Dies wird mit
Hilfe des Pluggable Authentification Module (PAM) API erreicht. Die
PAM sind unter folgender Adresse erh�ltlich:
http://www.padl.com/pam_ldap.html
10.3. kldap
Kldap ist ein Client f�r den LDAP Server, der z.B. die Struktur der
Baumhierachie visualisieren kann. Um Kldap f�r SuSE Linux zu
kompilieren, mu� das Makefile angepa�t werden. Ein angepa�tes Makefile
kann beim Autor bezogen werden (via E-Mail). N�hrere Informationen und
die M�glichkeit zum Download finden sich unter:
http://www.mountpoint.ch/oliver/kldap
10.4. GQ
GQ ist das �quivalent f�r Kldap unter Gnome. N�hrere Informationen und
die M�glichkeit zum Download finden sich unter:
http://biot.com/gq/
11. Weitere Quellen und Dokumentationen
Leider sieht die derzeitige Situation in Bezug auf die LDAP-
Dokumentation nicht sehr rosig aus. Es gibt zwar die ein oder andere
brauchbare Dokumentation, sie sind allerdings nicht einfach zu finden.
Ich habe daher eine Link Liste und eine B�cherliste mit Informationen
zu LDAP zusammengestellt, auf die sich im wesentlichen auch dieses
HOWTO st�tzt. In diesem Zusammenhang m�chte ich mich auch nochmal f�r
hilfreiche Beitr�ge aus dem USENET zu diesem Thema bedanken.
11.1. Adressen im Internet
OpenLDAP HomePage
http://www.openldap.org/
LDAP Einf�hrung im Linux Magazin
http://www.linux-magazin.de/ausgabe.1998.09/LDAP/ldap.html
slapd und slurpd Administrator�s Guide
http://www.umich.edu/~dirsvcs/ldap/doc/guides/
Introducing to Directory Service (X.500)
http://www.nic.surfnet.nl/surfnet/projects/x500/introducing/
Linux Driectory Service
http://www.rage.net/ldap/
11.2. B�cher
� Implementing LDAP by Mark Wilcox
� LDAP: Programming Directory-Enabled Applications with Lightweight
Directory Access Protocol by Howes and Smith
� Understanding and Deploying LDAP Directory Servers by Howes, Smith,
and Good
11.3.
RFC�s
� RFC 1558: A String Representation of LDAP Search Filters
� RFC 1777: Lightweight Directory Access Protocol
� RFC 1778: The String Representation of Standard Attribute Syntaxes
� RFC 1779: A String Representation of Distinguished Names
� RFC 1781: Using the OSI Directory to Achieve User Friendly Naming
� RFC 1798: Connectionless LDAP
� RFC 1823: The LDAP Application Programming Interface
� RFC 1959: An LDAP URL Format
� RFC 1960: A String Representation of LDAP Search Filters
� RFC 2251: Lightweight Directory Access Protocol (v3)
� RFC 2307: LDAP as a Network Information Service