Wie wird ein openLDAP-Server, phpLDAPadmin und LDAP-Client auf einem Raspberry Pi installiert?

Wollte schon immer einen eigenen LDAP-Server haben. Da es heute regnet, habe ich mir einen mal auf dem Raspberry Pi eingerichtet. Hier gibt es eine gute Anleitung (auf englisch) zum installieren eines Ldap Servers. Analog dazu habe ich mal eine Anleitung zum openLDAP in deutsch angelegt. Erste mal eine Mindmap zum Thema:
Ldap
Kurz ist folgende nötig (BPMN 2.0):
ldap

1. Vorbereitung:
Evl. laufende andere Server stoppen. Z.b.

sudo /etc/init.d/apache2 stop
sudo /etc/init.d/jenkins stop

Und ein update der Package:

sudo apt-get update
sudo apt-get upgrade

2. Um den openLdap-Server zu installieren auf der Konsole die folgenden Package installieren:
sudo apt-get install slapd ldap-utils

Ergebnis:
slapd (2.4.31-1+nmu2) wird eingerichtet ...
Creating new user openldap... done.
Creating initial configuration... done.
Creating LDAP directory... done.
[ ok ] Starting OpenLDAP: slapd.
ldap-utils (2.4.31-1+nmu2) wird eingerichtet ...

2xPasswort eingeben in folgenden Dialogen:
Bildschirmfoto 2014-04-21 um 11.23.55
Bildschirmfoto 2014-04-21 um 11.24.09

Dann den Server konfigurieren mit:
sudo dpkg-reconfigure slapd
Bildschirmfoto 2014-04-21 um 11.23.10

Dann im Dialog auf Nein klicken und eine freie Domäne wählen
z.b. thomas-wenzlaff.lan
Bildschirmfoto 2014-04-21 um 11.23.24
den Namen der Organisation wählen
z.b. TWSoft
Bildschirmfoto 2014-04-21 um 11.23.38
Dann 2 x Passwort eingeben wie oben und die Datenbank wählen: HDB
Bildschirmfoto 2014-04-21 um 11.24.21
und folgende Antworten in den Dialogen wählen:Nein – Ja – Nein
Bildschirmfoto 2014-04-21 um 11.24.47

Bildschirmfoto 2014-04-21 um 11.25.09

Bildschirmfoto 2014-04-21 um 11.25.27

Ergebnis:
[ ok ] Stopping OpenLDAP: slapd.
Moving old database directory to /var/backups:
- directory unknown... done.
Creating initial configuration... done.
Creating LDAP directory... done.
[ ok ] Starting OpenLDAP: slapd.

3. Jetzt noch phpldapadmin für die leicht Verwaltung installieren:

sudo apt-get install php5-fpm php5-cli php5-ldap php-apc phpldapadmin nginx

Die config.php
sudo nano /etc/phpldapadmin/config.php
wie folgt anpassen (suchen mit STRG+W):

//Orginal Zeile suchen
$servers->setValue('server','base',array('dc=example,dc=com'));
// anpassen wie oben eingegeben
$servers->setValue('server','base',array('dc=thomas-wenzlaff,dc=lan'));

//Orginal Zeile suchen
$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');
// anpassen wie oben eingegeben
$servers->setValue('login','bind_id','cn=admin,dc=thomas-wenzlaff,dc=lan');

4. Nun noch den Server nginx konfigurieren, in dem die Datei default bearbeitet wird:

sudo nano /etc/nginx/sites-available/default
Den vorhanden server Block löschen, und diesen einfügen:

server {
root /usr/share/phpldapadmin/htdocs;
index index.php index.html;
server_name localhost;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}}

Nach dem speichern den nginx-Server restarten mit:

sudo service nginx restart oder sudo /etc/init.d/nginx restart

Den nginx-Server kann man übrigens mit sudo /etc/init.d/nginx stop stoppen, mit sudo /etc/init.d/nginx start starten und den Status ob er läuft oder nicht mit sudo /etc/init.d/nginx status abfragen.

Wenn folgende Fehlermeldung kommt:

Restarting nginx:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
nginx.

Evl. laufenden Apache oder was sonst so auf den Port 80 läuft, wie oben in den vorbereitungen beschrieben runterfahren.

5. Test des Server

Im Browser die folgende URL aufrufen:
http://[Raspberry-Pi-Adresse>]/index.php

Cool, es wird die LDAP Admin Seite angezeigt.
Bildschirmfoto 2014-04-21 um 12.08.24
Links im Baum auf „Anmelden“ klicken.
Bildschirmfoto 2014-04-21 um 12.16.53

Bildschirmfoto 2014-04-21 um 12.17.18

6. LDAP-Client installation

sudo apt-get install libpam-ldapd libnss-ldapd

Im Dialog die Server ULR eingeben, z.B.
ldapi://[Raspberry-Pi-Adresse]:389/
Dann den Basis Namen:
dc=thomas-wenzlaff,dc=lan
Im folgenden Dialog alle Services anwählen.

Dann die Datei:
sudo nano /etc/pam.d/common-session
bearbeiten. Einfach hinten folgende Zeile hinzufügen:
session required pam_mkhomedir.so umask=0022 skel=/etc/skel

7. LDAP Client checken mit:
sudo getent passwd
es werden die angelegten Nutzer ausgeben.

Habe ich einen Schritt vergessen?