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
Als nächstes geben wir den DNS Domain Namen ein.
Jetzt noch der Organisation Name
Gefolgt von der Passwort Eingabe des LDAP Admin. Hier wird ein Neues Passwort vergeben.
Ab hier nutzt man am besten die Default Einstellungen.
Löschen der Datenbank beim entfernen von slapd.
Alte Datenbank verschieben.
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.
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)
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.
Nach dem Abschicken ist die OU angelegt. Und auf der linken Seite sollte es jetzt so ausschauen.
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.
Huhu,
auch ganz interessant sind die folgenden Tools für einen schreibenden Zugriff aufs LDAP:
* gq (benötigt QT und X-Forwarding)
* ldapvi