OpenLDAP
Aus Ubuntu-Forum Wiki
DieTa (Diskussion | Beiträge) (→LDAP im Thunderbird einrichten) |
(→OpenLDAP konfigurieren) |
||
(Der Versionsvergleich bezieht 16 dazwischenliegende Versionen mit ein.) | |||
Zeile 1: | Zeile 1: | ||
+ | [[Bild:606.png]] | ||
+ | {{Update}} | ||
__TOC__ | __TOC__ | ||
+ | = Allgemeines = | ||
+ | OpenLDAP ist ein Verzeichnisdienst wie das '''ActiveDirectory''' in der Windows-Server-Welt. OpenLDAP ist dabei frei und kostenfrei erhältlich. An dieser Stelle wird die Konfiguration eines OpenLDAP-Servers für die Verwendung als Adressbuch beschrieben, was aber natürlich lange nicht alles ist, was LDAP kann. | ||
- | + | Vorraussetzung für das Tutorial ist, dass Ihr mit [[nano]] umgehen könnt und Ubuntu mit Apache2 und PHP5 installiert habt (vorzugsweise Ubuntu 6.06.1 LTS Server). | |
- | |||
+ | = Installation = | ||
- | + | Zunächst startet Ihr ein [[Terminal]] auf Eurem Server und wechselt in den SuperUser-Modus, damit Ihr nicht dauernd "sudo" vor jedem zweiten Befehl schreiben müsst. | |
- | + | sudo -s | |
- | Zunächst startet Ihr ein Terminal auf Eurem Server und wechselt in den SuperUser-Modus, damit Ihr nicht dauernd "sudo" vor jedem zweiten | + | Die Quellen in [[/etc/apt/sources.list]] müssen vorab freigeschaltet werden. |
- | + | apt-get install slapd ldap-utils nmap php5-ldap db4.6-util | |
- | + | ||
- | + | ||
- | Die Quellen in | + | |
- | + | ||
- | + | ||
Das war auch schon die Grundinstallation. Während der Installation von '''slapd''' werdet Ihr nach einem Passwort gefragt. Merkt Euch dieses gut! :) | Das war auch schon die Grundinstallation. Während der Installation von '''slapd''' werdet Ihr nach einem Passwort gefragt. Merkt Euch dieses gut! :) | ||
- | + | = OpenLDAP konfigurieren = | |
- | + | Um herauszufinden, ob der Server auch gestartet wurde, benötigt man das eben installierte '''nmap''': | |
- | + | nmap localhost | grep ldap | |
- | + | ||
- | + | ||
- | + | ||
Es sollte nun folgendes angezeigt werden: | Es sollte nun folgendes angezeigt werden: | ||
- | |||
389/tcp open ldap | 389/tcp open ldap | ||
+ | Die Datei slapd.conf muss an die richtige Stelle kopiert werden: | ||
+ | cp /usr/share/slapd/slapd.conf /etc/ldap/ | ||
Nun richten wir das Loglevel ein. Der Wert 296 ist für uns ideal, denn dort werden Resultate, Suchfilter und Verbindungsmangement geloggt. | Nun richten wir das Loglevel ein. Der Wert 296 ist für uns ideal, denn dort werden Resultate, Suchfilter und Verbindungsmangement geloggt. | ||
- | + | nano /etc/ldap/slapd.conf | |
- | + | ||
Sucht (Strg+W) nach dem Stichwort "loglevel" und tragt dort die 296 ein | Sucht (Strg+W) nach dem Stichwort "loglevel" und tragt dort die 296 ein | ||
- | |||
# Read slapd.conf(5) for possible values | # Read slapd.conf(5) for possible values | ||
loglevel 296 | loglevel 296 | ||
Nun die Datei speichern (Strg+O). | Nun die Datei speichern (Strg+O). | ||
- | |||
In der Datei '''/etc/syslog.conf''' tragt Ihr nun noch folgendes ein (unten drunter): | In der Datei '''/etc/syslog.conf''' tragt Ihr nun noch folgendes ein (unten drunter): | ||
- | |||
# local4.debug /var/log/slapd.log | # local4.debug /var/log/slapd.log | ||
- | |||
Als nächstes generieren wir einen SSHA-Schlüssel, den wir gleich brauchen: | Als nächstes generieren wir einen SSHA-Schlüssel, den wir gleich brauchen: | ||
- | |||
# slappasswd | # slappasswd | ||
New password: xxxxxx | New password: xxxxxx | ||
Zeile 57: | Zeile 48: | ||
- | Nun legen wie die Daten für die Basis des LDAP-Servers fest indem wir die Datei '''/etc/ldap/slapd.conf''' editieren und den Wert "suffix" folgendermaßen verändern: | + | Nun legen wie die Daten für die Basis des LDAP-Servers fest, indem wir die Datei '''/etc/ldap/slapd.conf''' editieren und den Wert "suffix" folgendermaßen verändern: |
'''HINWEIS! Beim Ubuntu-Server sollten hier eigentlich schon die richtigen Angaben drinstehen, sofern diese unter '''/etc/hostname''' gesetzt wurden!''' | '''HINWEIS! Beim Ubuntu-Server sollten hier eigentlich schon die richtigen Angaben drinstehen, sofern diese unter '''/etc/hostname''' gesetzt wurden!''' | ||
- | |||
suffix "dc=meinedomain,dc=local" | suffix "dc=meinedomain,dc=local" | ||
- | + | Diese Änderungen müssen in der ganzen Datei angepasst werden. Am Ende der Datei fügt Ihr nun die Administrator-Daten ein: | |
- | Diese Änderungen müssen in der ganzen Datei angepasst werden. | + | |
- | + | ||
- | Am Ende der Datei fügt Ihr nun die Administrator-Daten ein: | + | |
- | + | ||
rootdn "cn=admin,dc=meinedomain,dc=local" | rootdn "cn=admin,dc=meinedomain,dc=local" | ||
rootpw {SSHA}4GMPGS/UQTOJ7LdI+iOu7lExQAbpzX6/ | rootpw {SSHA}4GMPGS/UQTOJ7LdI+iOu7lExQAbpzX6/ | ||
Anschließend speichert Ihr die Datei (Strg+O) und startet den LDAP-Server neu: | Anschließend speichert Ihr die Datei (Strg+O) und startet den LDAP-Server neu: | ||
- | |||
# /etc/init.d/slapd restart | # /etc/init.d/slapd restart | ||
- | + | Nun sagen wir den Clients, wo der Server überhaupt ist. Dafür erstellen wir die '''/etc/ldap/ldap.conf''' neu mit folgendem Inhalt: | |
- | + | ||
ldap_version 3 | ldap_version 3 | ||
URI ldap://192.168.x.x:389 | URI ldap://192.168.x.x:389 | ||
Zeile 88: | Zeile 72: | ||
- | + | Anschließend legen wir die Administrationsdaten an, damit wir uns später auch im Server anmelden können. Erstellt dazu eine Datei namens '''base.ldif''' und gebt folgenden Inhalt ein: | |
- | + | ||
- | Erstellt dazu eine Datei namens '''base.ldif''' und gebt folgenden Inhalt ein: | + | |
- | + | ||
# nano base.ldif | # nano base.ldif | ||
Inhalt: | Inhalt: | ||
- | |||
dn:dc=meinedomain,dc=local | dn:dc=meinedomain,dc=local | ||
objectClass: dcObject | objectClass: dcObject | ||
Zeile 109: | Zeile 89: | ||
Nun fügen wir die eben angelegte Datei per '''ldapadd''' dem LDAP-Server hinzu: | Nun fügen wir die eben angelegte Datei per '''ldapadd''' dem LDAP-Server hinzu: | ||
- | |||
# ldapadd -x -W -D cn=admin,dc=meinedomain,dc=local -f base.ldif | # ldapadd -x -W -D cn=admin,dc=meinedomain,dc=local -f base.ldif | ||
Enter LDAP Password: xxxxxx | Enter LDAP Password: xxxxxx | ||
Zeile 116: | Zeile 95: | ||
'''Es kann sein, dass der Server meldet, dass die Daten schon vorhanden sind, wenn das so ist, könnt Ihr die Meldung ignorieren!''' | '''Es kann sein, dass der Server meldet, dass die Daten schon vorhanden sind, wenn das so ist, könnt Ihr die Meldung ignorieren!''' | ||
- | |||
Mit '''ldapsearch -x''' können wir die Daten vom Server abfragen: | Mit '''ldapsearch -x''' können wir die Daten vom Server abfragen: | ||
- | |||
# ldapsearch -x | # ldapsearch -x | ||
# extended LDIF | # extended LDIF | ||
Zeile 147: | Zeile 124: | ||
Die Konfiguration ist damit abgeschlossen. Weiter gehts mit der Installation von phpLDAPadmin! :) | Die Konfiguration ist damit abgeschlossen. Weiter gehts mit der Installation von phpLDAPadmin! :) | ||
- | + | = phpLDAPadmin = | |
- | + | ||
- | + | ||
[[Bild:Phpldapadmin.png]] | [[Bild:Phpldapadmin.png]] | ||
Das ebenfalls als OpenSource verfügbare Administrationstool phpLDAPadmin kann mit wenigen Handgriffen installiert werden. | Das ebenfalls als OpenSource verfügbare Administrationstool phpLDAPadmin kann mit wenigen Handgriffen installiert werden. | ||
- | |||
# apt-get install phpldapadmin | # apt-get install phpldapadmin | ||
- | + | Anschließend empfiehlt es sich, einen Link zu dem Verzeichnis der Installation zu legen, damit die Administrationsoberfläche bequem erreichbar ist. | |
- | Anschließend empfiehlt es sich einen Link zu dem Verzeichnis der Installation zu legen, damit die Administrationsoberfläche bequem erreichbar ist. | + | |
- | + | ||
# ln -s /usr/share/phpldapadmin /var/www/phpldapadmin | # ln -s /usr/share/phpldapadmin /var/www/phpldapadmin | ||
# /etc/init.d/apache2 restart | # /etc/init.d/apache2 restart | ||
- | Nun ist die Administration per http:// | + | Nun ist die Administration per http://SERVERADRESSE/phpldapadmin erreichbar. |
- | + | '''WICHTIGE INFO ZUM LOGIN''': Es hat mich einige graue Haare gekostet, bis ich endlich raushatte, wie man sich richtig einloggt, weil es nirgends stand: | |
- | '''WICHTIGE INFO ZUM LOGIN''' | + | |
- | + | ||
- | Es hat mich einige graue Haare gekostet bis ich endlich raushatte, wie man sich richtig einloggt, weil es nirgends stand: | + | |
Login DN: '''cn=admin,dc=meinedomain,dc=local''' | Login DN: '''cn=admin,dc=meinedomain,dc=local''' | ||
Passwort: ''zuvor vergebenes'' | Passwort: ''zuvor vergebenes'' | ||
+ | |||
+ | Falls beim ersten Login im Baum die Domain example.com angezeigt wird, sollte man die Datei /etc/phpldapadmin/config.php durchsuchen nach diesem String. | ||
+ | Ein Austausch aller nicht auskommentierten Stellen führt dann dazu, dass die eigene Domain im baum angezeigt wird. | ||
Zeile 180: | Zeile 152: | ||
=== OU anlegen === | === OU anlegen === | ||
- | + | Klickt rechts im Menü auf: | |
- | Klickt rechts im Menü auf: | + | |
[[Bild:Createnewentry.png]] | [[Bild:Createnewentry.png]] | ||
- | |||
Anschließend seht Ihr auf der linken Seite ein umfangreiches Menü: | Anschließend seht Ihr auf der linken Seite ein umfangreiches Menü: | ||
Zeile 191: | Zeile 161: | ||
Klickt nun "Organisational Unit" an und auf "Proceed >>". | Klickt nun "Organisational Unit" an und auf "Proceed >>". | ||
- | |||
[[Bild:Neworganisationalunite.png]] | [[Bild:Neworganisationalunite.png]] | ||
Zeile 197: | Zeile 166: | ||
In der "Container DN" sollte bereits Eure Domain eingetragen sein, wenn nicht, ändert dies entsprechend. | In der "Container DN" sollte bereits Eure Domain eingetragen sein, wenn nicht, ändert dies entsprechend. | ||
Bei Orgisational Unit gebt Ihr "people" ein und klickt auf den anschließend erst klickbaren Button "Proceed >>". | Bei Orgisational Unit gebt Ihr "people" ein und klickt auf den anschließend erst klickbaren Button "Proceed >>". | ||
- | |||
[[Bild:Nou.png]] | [[Bild:Nou.png]] | ||
Zeile 208: | Zeile 176: | ||
[[Bild:Oup.png]] | [[Bild:Oup.png]] | ||
- | |||
und anschließend auf das aufklappende | und anschließend auf das aufklappende | ||
- | |||
[[Bild:Createnewentry.png]] | [[Bild:Createnewentry.png]] | ||
- | |||
Links wählt Ihr nun "Adress Book Entry" | Links wählt Ihr nun "Adress Book Entry" | ||
Zeile 221: | Zeile 186: | ||
und anschließend wieder auf "Proceed >>" klicken. | und anschließend wieder auf "Proceed >>" klicken. | ||
- | |||
[[Bild:nabe.png]] | [[Bild:nabe.png]] | ||
Zeile 228: | Zeile 192: | ||
Auf der folgenden Seite bestätigt Ihr das Anlegen mit "Create Object". | Auf der folgenden Seite bestätigt Ihr das Anlegen mit "Create Object". | ||
- | |||
[[Bild:Testfertig.png]] | [[Bild:Testfertig.png]] | ||
Zeile 237: | Zeile 200: | ||
== LDAP im Thunderbird einrichten == | == LDAP im Thunderbird einrichten == | ||
- | Um LDAP nun auch sinnvoll zu nutzen, beschreibe ich hier kurz die Einrichtung im Thunderbird 2 | + | Um LDAP nun auch sinnvoll zu nutzen, beschreibe ich hier kurz die Einrichtung im Thunderbird 2.x . |
Startet Thunderbird und klickt im Menü auf '''Extras''' und '''Einstellungen''', anschließend auf das Icon '''Verfassen''' und dann auf den Reiter '''Adressieren'''. | Startet Thunderbird und klickt im Menü auf '''Extras''' und '''Einstellungen''', anschließend auf das Icon '''Verfassen''' und dann auf den Reiter '''Adressieren'''. | ||
Zeile 263: | Zeile 226: | ||
Klickt den Namen Eures Servers an und tippt in das Suchfeld '''* *''' ein um alle User zu listen. Wenn Ihr z.B. nach einem Nachnamen sucht, wird dann natürlich nur der User mit dem entsprechenden Nachnamen angezeigt. | Klickt den Namen Eures Servers an und tippt in das Suchfeld '''* *''' ein um alle User zu listen. Wenn Ihr z.B. nach einem Nachnamen sucht, wird dann natürlich nur der User mit dem entsprechenden Nachnamen angezeigt. | ||
- | + | Ab Thunderbird Version 2.0 ist in das Suchfeld ein '.' (=Punkt) einzutragen, damit alle Adressen angezeigt werden. | |
Viel Spaß mit Eurem LDAP-Server! :) | Viel Spaß mit Eurem LDAP-Server! :) | ||
- | + | ||
+ | [[Kategorie:Server]] |
Aktuelle Version vom 12. August 2011, 08:22 Uhr
Dieser Artikel bedarf einer Aktualisierung. |
Inhaltsverzeichnis |
1 Allgemeines
OpenLDAP ist ein Verzeichnisdienst wie das ActiveDirectory in der Windows-Server-Welt. OpenLDAP ist dabei frei und kostenfrei erhältlich. An dieser Stelle wird die Konfiguration eines OpenLDAP-Servers für die Verwendung als Adressbuch beschrieben, was aber natürlich lange nicht alles ist, was LDAP kann.
Vorraussetzung für das Tutorial ist, dass Ihr mit nano umgehen könnt und Ubuntu mit Apache2 und PHP5 installiert habt (vorzugsweise Ubuntu 6.06.1 LTS Server).
2 Installation
Zunächst startet Ihr ein Terminal auf Eurem Server und wechselt in den SuperUser-Modus, damit Ihr nicht dauernd "sudo" vor jedem zweiten Befehl schreiben müsst.
sudo -s
Die Quellen in /etc/apt/sources.list müssen vorab freigeschaltet werden.
apt-get install slapd ldap-utils nmap php5-ldap db4.6-util
Das war auch schon die Grundinstallation. Während der Installation von slapd werdet Ihr nach einem Passwort gefragt. Merkt Euch dieses gut! :)
3 OpenLDAP konfigurieren
Um herauszufinden, ob der Server auch gestartet wurde, benötigt man das eben installierte nmap:
nmap localhost | grep ldap
Es sollte nun folgendes angezeigt werden:
389/tcp open ldap
Die Datei slapd.conf muss an die richtige Stelle kopiert werden:
cp /usr/share/slapd/slapd.conf /etc/ldap/
Nun richten wir das Loglevel ein. Der Wert 296 ist für uns ideal, denn dort werden Resultate, Suchfilter und Verbindungsmangement geloggt.
nano /etc/ldap/slapd.conf
Sucht (Strg+W) nach dem Stichwort "loglevel" und tragt dort die 296 ein
# Read slapd.conf(5) for possible values loglevel 296
Nun die Datei speichern (Strg+O).
In der Datei /etc/syslog.conf tragt Ihr nun noch folgendes ein (unten drunter):
# local4.debug /var/log/slapd.log
Als nächstes generieren wir einen SSHA-Schlüssel, den wir gleich brauchen:
# slappasswd New password: xxxxxx Re-enter new password: xxxxxx {SSHA}4GMPGS/UQTOJ7LdI+iOu7lExQAbpzX6/
Markiert die unterste Zeile und kopiert Euch dies möglichst in die Zwischenablage. (der Key der hier gezeigt wird ist das Passwort: xxxxxx, Euer Key sieht dann ganz anders aus ;))
Nun legen wie die Daten für die Basis des LDAP-Servers fest, indem wir die Datei /etc/ldap/slapd.conf editieren und den Wert "suffix" folgendermaßen verändern:
HINWEIS! Beim Ubuntu-Server sollten hier eigentlich schon die richtigen Angaben drinstehen, sofern diese unter /etc/hostname gesetzt wurden!
suffix "dc=meinedomain,dc=local"
Diese Änderungen müssen in der ganzen Datei angepasst werden. Am Ende der Datei fügt Ihr nun die Administrator-Daten ein:
rootdn "cn=admin,dc=meinedomain,dc=local" rootpw {SSHA}4GMPGS/UQTOJ7LdI+iOu7lExQAbpzX6/
Anschließend speichert Ihr die Datei (Strg+O) und startet den LDAP-Server neu:
# /etc/init.d/slapd restart
Nun sagen wir den Clients, wo der Server überhaupt ist. Dafür erstellen wir die /etc/ldap/ldap.conf neu mit folgendem Inhalt:
ldap_version 3 URI ldap://192.168.x.x:389 SIZELIMIT 0 TIMELIMIT 0 DEREF never BASE dc=meinedomain, dc=local
Die URI ist die IP oder Domain Eures Servers! Wenn Ihr einen DNS-Server laufen habt, könnt Ihr hier auch im Stil von "ldap.meinedomain.local" einen Eintrag machen.
Anschließend legen wir die Administrationsdaten an, damit wir uns später auch im Server anmelden können. Erstellt dazu eine Datei namens base.ldif und gebt folgenden Inhalt ein:
# nano base.ldif
Inhalt:
dn:dc=meinedomain,dc=local objectClass: dcObject objectClass: organization o: meinedomain dc: meinedomain dn:cn=admin,dc=meinedomain,dc=local objectClass: organizationalRole cn: admin
Datei speichern (Strg+O).
Nun fügen wir die eben angelegte Datei per ldapadd dem LDAP-Server hinzu:
# ldapadd -x -W -D cn=admin,dc=meinedomain,dc=local -f base.ldif Enter LDAP Password: xxxxxx adding new entry "dc=meinedomain,dc=local" adding new entry "cn=admin,dc=meinedomain,dc=local"
Es kann sein, dass der Server meldet, dass die Daten schon vorhanden sind, wenn das so ist, könnt Ihr die Meldung ignorieren!
Mit ldapsearch -x können wir die Daten vom Server abfragen:
# ldapsearch -x # extended LDIF # # LDAPv3 # base <> with scope sub # filter: (objectclass=*) # requesting: ALL # # meinedomain.local dn: dc=meinedomain,dc=local objectClass: dcObject objectClass: organization o: meinedomain dc: meinedomain # admin, meinedomain.local dn: cn=admin,dc=meinedomain,dc=local objectClass: organizationalRole cn: admin # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
Die Konfiguration ist damit abgeschlossen. Weiter gehts mit der Installation von phpLDAPadmin! :)
4 phpLDAPadmin
Das ebenfalls als OpenSource verfügbare Administrationstool phpLDAPadmin kann mit wenigen Handgriffen installiert werden.
# apt-get install phpldapadmin
Anschließend empfiehlt es sich, einen Link zu dem Verzeichnis der Installation zu legen, damit die Administrationsoberfläche bequem erreichbar ist.
# ln -s /usr/share/phpldapadmin /var/www/phpldapadmin # /etc/init.d/apache2 restart
Nun ist die Administration per http://SERVERADRESSE/phpldapadmin erreichbar.
WICHTIGE INFO ZUM LOGIN: Es hat mich einige graue Haare gekostet, bis ich endlich raushatte, wie man sich richtig einloggt, weil es nirgends stand:
Login DN: cn=admin,dc=meinedomain,dc=local Passwort: zuvor vergebenes
Falls beim ersten Login im Baum die Domain example.com angezeigt wird, sollte man die Datei /etc/phpldapadmin/config.php durchsuchen nach diesem String. Ein Austausch aller nicht auskommentierten Stellen führt dann dazu, dass die eigene Domain im baum angezeigt wird.
4.1 User in phpLDAPadmin anlegen
Ohne jetzt im Detail auf die Funktionsweise eines LDAP-Servers eingehen zu wollen, möchte ich Euch in kurzen Schritten zeigen, wie Ihr einen Testuser anlegen könnt.
Die Grundstruktur ist die Domain, die ist bereits angelegt. Darunter folgt die OU (Organisational Unit), die hier den Namen "people" erhält. Darunter werden erst die eigentlichen User angelegt.
4.1.1 OU anlegen
Klickt rechts im Menü auf:
Anschließend seht Ihr auf der linken Seite ein umfangreiches Menü:
Klickt nun "Organisational Unit" an und auf "Proceed >>".
In der "Container DN" sollte bereits Eure Domain eingetragen sein, wenn nicht, ändert dies entsprechend. Bei Orgisational Unit gebt Ihr "people" ein und klickt auf den anschließend erst klickbaren Button "Proceed >>".
Auf der folgenden Seite bestätigt Ihr das Anlegen der OU mit dem Klick auf "Create Object".
4.1.2 Testperson anlegen
Klickt nun auf das + vor:
und anschließend auf das aufklappende
Links wählt Ihr nun "Adress Book Entry"
und anschließend wieder auf "Proceed >>" klicken.
Nun tragt Ihr alle Daten ein und klickt anschließen wieder auf "Proceed >>".
Auf der folgenden Seite bestätigt Ihr das Anlegen mit "Create Object".
Das war's! Euer erster User ist angelegt :)
4.2 LDAP im Thunderbird einrichten
Um LDAP nun auch sinnvoll zu nutzen, beschreibe ich hier kurz die Einrichtung im Thunderbird 2.x .
Startet Thunderbird und klickt im Menü auf Extras und Einstellungen, anschließend auf das Icon Verfassen und dann auf den Reiter Adressieren.
Wählt LDAP-Verzeichnisdienst aus und klickt auf Bearbeiten...
Klickt auf Hinzufügen
In dem folgenden Fenster gebt Ihr nun dem Kind einen Namen, den Adresse vom Server und ansonsten übernehmt Ihr die Daten die Ihr hier seht (natürlich ist der Domainname zu ändern ;)).
Das war's! Der LDAP-Server ist nun von Thunderbird aus erreichbar.
Testen könnt Ihr das, indem Ihr nun mit Ok bestätigt und im Thunderbird selber auf das Icon Adressbuch klickt.
Klickt den Namen Eures Servers an und tippt in das Suchfeld * * ein um alle User zu listen. Wenn Ihr z.B. nach einem Nachnamen sucht, wird dann natürlich nur der User mit dem entsprechenden Nachnamen angezeigt. Ab Thunderbird Version 2.0 ist in das Suchfeld ein '.' (=Punkt) einzutragen, damit alle Adressen angezeigt werden.
Viel Spaß mit Eurem LDAP-Server! :)