OpenLDAP

OpenLDAP auf Debian Wheezy installieren

So gut wie jede Linux Distribution stellt den kostenlosen LDAP Server OpenLDAP zur Verfügung.
In dieser Anleitung gehe ich auf die Grundinstallation unter Debian Wheezy ein, die vorgeschlagenen Defaults reichen zunächst aus, wir werden dann aber die Directory Struktur manuell anpassen.

OpenLDAP Grundinstallation

[stextbox id=“bash“]apt-get install slapd ldap-utils[/stextbox]

Bei der Installation wird nach den Admin Passwort für das LDAP Directory gefragt. Hier sollte eins eingegeben werden.

Da bis jetzt nur das Admin Passwort vergeben wurde und die Default Einstellungen geladen wurden werden wir die Konfiguration nochmal ausführen.

[stextbox id=“bash“]dpkg-reconfigure slapd[/stextbox]

Da wir eine Initiale Konfiguration wollen sagen wir hier nein

openldap01

Als nächstes geben wir den DNS Domain Namen ein.

openldap02

Jetzt noch der Organisation Name

openldap03

Gefolgt von der Passwort Eingabe des LDAP Admin. Hier wird ein Neues Passwort vergeben.

openldap04

Ab hier nutzt man am besten die Default Einstellungen.

openldap05

Löschen der Datenbank beim entfernen von slapd.

openldap06

Alte Datenbank verschieben.

openldap07

Jetzt sollte der OpenLDAP Server laufen und erreichbar sein.
Zum testen kann man diesen LDAP Serach mal ausführen

[stextbox id=“bash“]ldapsearch -x -D „cn=admin,dc=secretisland,dc=de“ -W -H ldap://ldap.dmz-home.secretisland.de -b „dc=secretisland,dc=de“[/stextbox]

Struktur Aufbau im OpenLDAP

Es wird noch nach dem Passwort vom User admin gefragt das wir dann eingeben müssen. Danach kommt diese Ausgabe:

Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <dc=secretisland,dc=de> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# secretisland.de
dn: dc=secretisland,dc=de
objectClass: top
objectClass: dcObject
objectClass: organization
o: secretisland.de
dc: secretisland

# admin, secretisland.de
dn: cn=admin,dc=secretisland,dc=de
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: HIER STEHT EIN ENCRYPTETES PASSWORD

# admins, secretisland.de
dn: ou=admins,dc=secretisland,dc=de
objectClass: organizationalUnit
objectClass: top
ou: admins
description: Server admins

# search result
search: 2
result: 0 Success

# numResponses: 4
# numEntries: 3

Das LDAP funktioniert, jetzt können wir mit dem kostenlosen JXplorer die LDAP Struktur bearbeiten. Dieses Programm ist für die verschiedensten Betriebssysteme verfügbar.

Um sich mit dem LDAP Server zu verbinden geben wir die Zugangsdaten ein.

JXplorer01

Als Host: ldap.dmz-home.secretisland.de
Die Logindaten Sind Benutzer + Passwort
cn=admin,dc=secretisland,dc=de

Begrifflichkeiten

  • cn = common name
  • dc = domainComponent
  • ou = organizationalUnit

Da wir bist jetzt nur den Root vom LDAP haben werden wir erst mal eine OU anlegen um unseren LDAP Baum zu erstellen.

Dazu erstellen wir unter secretistland eine OU. (Rechts klick auf secretisland und dann Neu)

JXplorer02

Hier haben ich schon die angaben angepasst (Standard RDN ist CN) dann noch unten die Klasse organizationalUnit auswählen.
Nach dem man auf OK geklickt hat ist das ganze noch nicht gespeichert. Jetzt kommt erst mal ein weiteres Editor Fenster in dem man noch weitere angaben machen kann.
Alle fett Felder sind Pflichtfelder und müssen ausgefüllt sein.

JXplorer03

Nach dem Abschicken ist die OU angelegt. Und auf der linken Seite sollte es jetzt so ausschauen.

JXplorer04

Jetzt kann man weitere OUs oder CNs hinzufügen.

Unser LDAP Serach sollte jetzt so aussehen.

[stextbox id=“bash“]ldapsearch -x -D „cn=admin,dc=secretisland,dc=de“ -W -H ldap://ldap.dmz-home.secretisland.de -b „dc=secretisland,dc=de“[/stextbox]

# extended LDIF
#
# LDAPv3
# base <dc=secretisland,dc=de> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# secretisland.de
dn: dc=secretisland,dc=de
objectClass: top
objectClass: dcObject
objectClass: organization
o: secretisland.de
dc: secretisland

# admin, secretisland.de
dn: cn=admin,dc=secretisland,dc=de
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: HIER STEHT EIN ENCRYPTETES PASSWORD

# OU_Narf, secretisland.de
dn: ou=OU_Narf,dc=secretisland,dc=de
objectClass: organizationalUnit
objectClass: top
ou: OU_Narf

# search result
search: 2
result: 0 Success

# numResponses: 4
# numEntries: 3

Wie man sieht hat sich das ganze um die OU_Narf erweitert.

Sinnvolle Struktur definieren

Der Debian Installer gibt als Base DN des Directories den Domain Namen vor. Man kann natürlich auch beliebige andere wählen, für eine kleine Firma könnte man z.B. die Objektklasse „organization“ wählen: „o=Meine GmbH“.

Für die Mitarbeiter sollte man eine eigene Hierarchie aufbauen, z.B. die Objektklasse „organizationalUnit“: „ou=people“, in der dann die Einträge abgelegt sind.

Es hat sich bewährt, für Funktionsuser (z.B. den Administrator, einen Read-Only-User) ebenfalls eine separate Hierarchie anzulegen. In diesem Beispiel heißt sie „specialaccounts“.

Berechtigungen definieren

Mit LDAP kann man Zugriffsrechte sehr fein einstellen. In diesem Beispiel eines Firmen-LDAP-Servers gibt es folgende Policy:

  • Anonyme User (ohne Login) haben überhaupt keinen Zugriff
  • Jeder angemeldete User hat Lesezugriff auf alle anderen Einträge, und Schreibzugriff auf seinen eigenen Eintrag
  • Der Admin-User hat Schreibzugriff auf alle Einträge

 

Wie man seinen LDAP Baum aufbaut bleibt im Grunde jedem selbst überlassen. Es gibt sicherlich einige gute ansetze wie das ganze gemacht werden soll / kann.

1 Kommentar zu „OpenLDAP

  1. Huhu,

    auch ganz interessant sind die folgenden Tools für einen schreibenden Zugriff aufs LDAP:
    * gq (benötigt QT und X-Forwarding)
    * ldapvi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*