Inhalt
- Voraussetzungen
1. Installation Slapd
2. Installation libnss-ldap
3. Installation libpam-ldap
4. Installation phpldapadmin
5. Test
6. Automatisch Homeverzeichnis anlegen
7. Tipp
8. Quellen
- ct-server Installation
slapd
libnss-ldap
libpam-ldap
phpldapadmin, apache (beides optional)
Ich verwende die bereits im CT-Special benützen Daten:
Domain: zuhause.xx
Server IP-Adresse: 192.168.1.2
IPCop: 192.168.1.1
1. Installation Slapd
server:# apt-get install slapd
Konfigurationsdialog:
falls nicht bereits bei der Grundinstallation angegeben wurde:
DNS domain name: zuhause.xx
Name der Organisation: zuhause.xx
danach wird:
Admin password: slapdadmin
confirm password: slapdadmin
abgefragt.
Bem.: sollte man danach gefragt werden ob man LDAP-v2 aktivieren möchte, so sollte man dies mit Ja beantworten falls man LDAP später als Adressbuch verwenden will. Einige Clients kommen mit LDAP-v3 noch nicht zurecht.
Im Falle, dass slapd bereits früher installiert wurde kann man mittels
server:# dpkg-reconfigure slapd
die Konfiguration erneut durchführen:
Dialog:
BDB
Do you want that your database to be removed when slapd is purged ?
No
Move old database ?
Yes
Allow LDAPv2 protocol ?
Yes
Omit OpenLDAP server configuration ?
No
2. Installation libnss-ldap
Damit das Betriebsystem auch die Einträge des LDAP Verzeichnisses lesen kann benötigt man libnss-ldap.
server:# apt-get install libnss-ldap
Konfigurationsdialog:
LDAP Server Host: 127.0.0.1
DN Searchbase: dc=zuhause,dc=xx
LDAP Version: 3
Sollten die folgenden Fragen auftauchen dann wie folgt antworten:
Database requires login: no
Make config readable by owner: yes
Es folgt dann noch ein Hinweis, dass die Datei /etc/nsswitch.conf angepasst werden muß.
Damit das Betriebsystem auch im LDAP-Verzeichnis nach Usern sucht, muß man die Datei /etc/nsswitch.conf anpassen:
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Dies bewirkt, dass zuerst die Datei /etc/passwd nach Usern durchsucht wird und anschließend LDAP (umgekehrt geht es auch).
3.Installation libpam-ldap
Um sich auch mit den in LDAP befindlichen Usern am System anzumelden benötigen wir noch libpam-ldap.
server:# apt-get install libpam-ldap
Dialog:
Make local root dn admin: yes
Database requires logging in: no
Root login account: cn=admin,dc=zuhause,dc=xx
Root password: slapdadmin
Bei der Frage nach Crypt mit MD5 antworten.
Crypt: MD5
Danach werden noch die folgenden Zeilen in den angegebenen Dateien editiert:
In /etc/pam.d/common-account
die Zeile
account require pam_unix.co
durch
account sufficient pam_ldap.so
account required pam_unix.so try_first_pass
ersetzen.
In /etc/pam.d/common-auth
die Zeile
auth required pam_unix.so nullok_secure
durch
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
ersetzen.
In /etc/pam.d/common-password
die Zeile
password required pam_unix.so nullok obscure min=4 max=8 md5
durch
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass
ersetzen.
4. Installation phpldapadmin
Um die LDAP Verwaltung etwas zu vereinfachen installiere ich hier auch phpldapadmin. Natürlich kann man LDAP auch mittels LDIF Files füttern. Vorausgesetzt ist dabei, dass auch Apache bereits bei der Grundinstallation installiert wurde. Andernfalls kann man dies schnell mittels ctsrvcfg nachholen (apt-get install apache, geht auch).
server:# apt-get install phpldapadmin
Das war bereits die ganze Hexerei. Mit den folgenden Schritten kann man das System noch testen.
5. Test
Nun kann man sich via Webbrowser am Ldapserver anmelden:
Es sollte nun ein leerer LDAP-Baum mit der Wurzel zuhause.xx erscheinen. Im nächsten Schritt füllt man das LDAP-Verzeichnis mit einigen Daten.
Create new Entry
Select "Organizational Unit" (ou)
Name ou: "users"
confirm.
Danach kann man auch noch die OU "groups" anlegen die später alle Gruppen aufnehmen soll.
Jetzt legen wir unter der OU "group" folgende "Posix-Group" an:
admins gid=2000, myusers gid=2001, guests gid=2002
Zuletzt fügen wir auch noch einen Testuser "User Account (posix account)" hinzu:
ldaptest uid=2000 gid=2001
Mit dem Kommando
server:# getent group
sollte man sämtliche Gruppen erhalten, auch jene die gerade mittels phpladpadmin erstellt wurden.
server:# getent passwd
liefert alle User auch jene aus dem LDAP-Verzeichnis.
Nun sollte es auch möglich sein sich mittels des Users ldaptest am System anzumelden.
6. Home Verzeichnis
Was noch fehlt ist die automatische Erstellung des Home-Verzeichnisses.
Mit
session required pam_mkhomedir.so skel=/etc/skel umask=0022
in der Datei /etc/pam.d/common-session kann man dieses Problem erledigen.
7. TIPP Vorsicht auf korrekte schreibweise in den Dateien /etc/pam.d/common- die oben editiert wurden und auch in der Datei /etc/nsswitch.conf. Ich suchte lange nach einem Fehler der durch einen Tippfehler (Großbuchstabe) entstand. Bei Fehlermeldungen wie
Connection to LDAP server failed for the XX try !
fetch_ldap_pw: neither ldap secret retrieved
auch daran denken die /etc/nsswitch.conf zu kontrollieren. Bei mir war die Ursache ein "Passwd" anstatt "passwd".
Jene die gerne Sambauser in Ldap verwalten möchten kann ich nur das Howto von Simon Newton [2] empfehlen. Hier wird in kurzen Schritten die Konfiguration beschrieben, die auch bei mir funktionierte.
8. Quellen
[1] Samba Installationsguide: /usr/share/doc/samba-doc/htmldocs/Samba-Guide/happy.html
[2] Simon Newton http://www.nomis52.net/?section=docs&page=samldap
[3] Using OpenLDAP on Debian Woody to serve Linux and Samba Users http://homex.subnet.at/~max/ldap/index.php
[4] Ldap für den Hausgebrauch http://www.aumund.org/taxonomy/term/35




