OpenLDAP ist eine Implementierung von LDAP als FreieSoftware.

Homepage: http://www.openldap.org/

English: http://linuxwiki.riverworth.com/index.php/LDAP_Authentication

Lizenz: OpenLDAP Public License (BSD Style, GPL-kompatibel)

Inhaltsverzeichnis

  1. Mini-HowTo
  2. Tipps+Tricks
  3. Fragen
  4. Links
    1. Allgemeines
    2. Spezielles
      1. E-Mail && LDAP
    3. Englische Informationen
    4. Bücher
    5. Administrationswerkzeuge
      1. Webbasierte AW.

Mini-HowTo

Einrichtung eines LDAP-Servers zur Benutzerauthentifizierung mit OpenLDAP

Viele Server können einen LDAP-Server zur Benutzerauthentifizierung nutzen, so z.B. PAM, PureFtpd, Courier, Apache und viele andere. Soll OpenLDAP in einem Netzwerk zur Authentifizierung verwendet werden ist die Verwendung von SSL stark anzuraten denn sonst wird LDAP zu einem passwort-verteil System.

Zuerst einmal sollte man sich die OpenLDAP-Pakete seiner Distribution installieren und auf besondere Hinweise für diese achten die von dieser Beschreibung abweichen!

Dann kann man die Konfigurationsdatei slapd.conf des Servers editieren. Wenn man Programme installiert hat, die zusätzliche LDAP-Schemata benötigen, muss man diese per include einfügen, z.B.

include /etc/openldap/schema/pureftpd.schema
include /etc/openldap/schema/courier.schema

Diese sollten nach den normalen Schema stehen.

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

Als nächstes werden ACLs definiert, die den Zugriff auf die DNs regeln, z.B.

access to * attr=userPassword
 by self write
 by anonymous auth
access to *
 by * read

Die ACLs werden der Reihe nach abgearbeitet und nur die erste Übereinstimmung wird genommen. Im Beispiel kann ein beliebiger User das Passwort also nicht lesen. Zu beachten ist, dass der als rootdn definierte DN immer Schreiberlaubnis hat.

Nach diesen globalen Einstellungen folgt die Definition einer (oder mehrerer) Datenbanken.

database ldbm
suffix "dc=vlugnet,dc=org"
rootdn "cn=Manager,dc=vlugnet,dc=org"

oder

suffix "o=Vaihingen/Enz Linux User Group,c=DE"
rootdn "cn=Manager,o=Vaihingen/Enz Linux User Group,c=DE"

suffix legt dabei den Basis-DN fest. Die DNs können dabei entweder der traditionellen Namensgebung (Land, Organisation, Abteilung, Person) folgen oder an Hand der Internet-Domänen-Namen festgelegt werden (so wie im oberen Beispiel).

Wenn man kein SASL nutzt (was bei rein lokalen Installationen ok ist und alles vereinfacht), dann muss man noch ein Passwort für den rootdn festlegen.

rootpw {MD5}CY9rzUYh03PK3k6DJie09g==

Ein so verschlüsseltes Passwort kann man z.B. mit slappasswd -h{md5} erzeugen.

Nun muss man noch den Pfad zur Datenbank angeben. In diesem Verzeichnis legt LDAP seine Datenfiles ab.

directory /var/lib/ldap

und die zu erzeugenden Indizes:

index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial

Danach kann man den Server schonmal starten. Dabei sollte man den Parameter -h ldap://127.0.0.1 angeben, damit der Server nur lokal erreichbar ist.

Tipps+Tricks

!OpenLDAP in Verbindung mit BerkeleyDB 4.1 hat einen zu kleinen Cache. Zum vergrössern schreibt man in location/DB_CONFIG set_cachesize 0 <bytes> 0 und lässt db4.1_recover laufen.

Potentielle Falle beim Konfigurieren von des clients: Es darf in /etc/ldap/ldap.conf im Gegensatz zu vielen anderen config files kein = Zeichen verwenden. Beispiel:

BASE dc=example,dc=com
URI ldaps://example.com
TLS_CACERT /etc/ssl/certs/example_cacert.pem

Bei SSL ist es notwendig das CAcert anzugeben!

Möchte man die Benutzer Passwörter als SSHA (das derzeit sicherste Verfahren das in OpenLDAP implementiert ist) speichern, muss man in /etc/ldap/slapd.conf sie richtige Methode einstellen: password-hash {SSHA} und in pam_ldap.conf pam_password auf exop setzen.

Fragen

Allgemeine Fragen zu LDAP siehe LDAP.

Also so richtig übersichtlich finde ich obiges Mini-HOWTO nicht. :( Das mag daran liegen, das ich eigentlich gar keine Ahnung von LDAP habe. Aber genau das will ich ja ändern... Also ein paar Fragen:

  • Verstehe ich das richtig, das ich die Schemata eigentlich nicht benötige, wenn meine Programme per PAM authentifizieren und LDAP dann im PAM eingetragen ist?
    • Welche? Für PAM brauchst du ein Schema, welches die Objektklasse "posixAccount" enthält. Bei OpenLDAP ist das in den standardmäßig installierten Schemata dabei (im nis.schema)

  • Ich möchte z.B. einen Samba-Server aufsetzen. Ich verstehe das so, dass der Samba per PAM authentifiziert und ich dem PAM dann sage, dass er LDAP benutzen soll. Dafür nehme ich dann das posixAccount-Schema. Ist das richtig?

    • Man benötigt beides (samba.schema und nis.schema), in ersterem ist die Objektklasse smb!PasswordEntry für das NT-Passwort und in zweitem ist die Objektklasse posixAccount für die restlichen (Unix-) Benutzerdaten. Samba greift dann direkt auf LDAP zu. Genaueres siehe Linux-PDC mit Samba und OpenLDAP (iX). Die beste, mir bekannte, deutsche Anleitung zu diesem Thema!

  • Ein Objekt (z.B. ein User) kann übrigens mehrere Objektklassen beinhalten. Was bedeutet das?

    • s.o., z.B. posixAccount und smb!PasswordEntry, beides sind Objektklassen. Das Objekt, das diese Klassen beinhaltet, hat dann als Attribute, genau diese, die in mindestens einer dieser Objektklassen definiert sind.

  • Und wie bekomme ich jetzt meine User-Einträge in die Datenbank?
    • indem du ein sog LDIF-File (siehe Doku zu OpenLDAP) anlegst und es dann mit ldapadd in die Datenbank einfügst, oder einen der Client verwendest (siehe Links)

  • Wie verwaltet Ihr eure LDAP-Adressbücher? Meine clients scheinen nicht in der Lage zu sein, direkt auf dem LDAP-Server die Kontakte anzulegen und pflegen viel lieber lokale Adressbücher? -- RomanKreisel 2004年05月15日 09:08:04

    • Du brauchst als User von OpenLDAP einen User, der Schreibrechte hat (die man default-mäßig nich hat) wie man den Server einstellt das die Benutzer auch schreiben können steht in der Dokumentaion.
    • Nur Kmail(Kaddressbook) und Evolution können auch Addressen eintragen.
  • Wie müssen die Clients konfiguriert werden, wenn ich OpenLDAP als NIS Ersatz benutzen will???
  • Wie sieht es mit mobilen Clients, z.B. Notebooks, aus? Benötigen diese wieder lokale Benutzerkonten oder gibt es eine Möglichkeit bestimmte Benutzerkonten zu "cachen"? Wenn ja ist es auch möglich das Profil des User zu Cachen? Sprich ist es möglich sich so etwas wie einen M$ Domänencontroller zu bauen (für Linux Clients)?

OffeneFrage: Wie richte ich OpenLDAP ein?

Links

Allgemeines

Spezielles

E-Mail && LDAP

Anmerkung: Kmail/Kaddressbook und Evolution sind die einzigen Clients die auch schreiben auf ldap-Adressbücher zugreifen können.

Englische Informationen

Bücher

Administrationswerkzeuge

Webbasierte AW.


OpenLDAP (zuletzt geändert am 2009年11月03日 08:16:29 durch BAHb369)

AltStyle によって変換されたページ (->オリジナル) /