Entwicklungsumgebung/LDAP Einrichtung
Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben). |
Schon wieder LDAP?
Nach der Installation und Grundeinrichtung des LDAP nach der Beschreibung unter: Entwicklungsumgebung/LDAP erfolgt nun die Konfiguration zu einem Schulserver:
Die Datei /etc/ldap/ldap.conf
BASE dc=delixs-schule,dc=de URI ldap://localhost SIZELIMIT 12 TIMELIMIT 15 DEREF always
Die Datei /etc/ldap/slapd.conf
das samba-Schema wurde schon am Anfang kopiert, jetzt einbinden:
include /etc/ldap/schema/samba.schema
(*hinter* den anderen Zeilen eintragen)
loglevel 384 (wenn Entwicklung abgeschlossen, auf 0 setzen) sizelimit 3000 backend hdb gelassen rootdn "cn=admin,dc=delixs-schule,dc=de" rootpw
wieder ergänzt, da in der Literatur so angegeben erstellt mit:
cd /etc/ldap slappasswd -u >> slapd.conf
(verschlüsselte Passwort wird angehangen, mit mcedit verschieben)
Die Datei /etc/libnss-ldap.conf
Bevor man irgendwas mit NSS und/oder PAM testen oder konfigurieren will, muss der nscd ausgeschaltet werden:
/etc/init.d/nscd stop
Die /etc/libnss-ldap.conf wurde folgendermaßen abgeändert
base dc=delixs-schule,dc=de deref always uri ldap://127.0.0.1/ ldap_version 3 rootbinddn cn=admin,dc=delixs-schule,dc=de scope sub bind_timelimit 30 bind_policy soft nss_connect_policy persist
Nach erfolgter Änderung kann der nscd wieder eingeschaltet werden.
/etc/init.d/nscd start
Neustart des slapd
/etc/init.d/slapd restart
Test
'slapcat' sollte 2 Entries anzeigen. Wenn man die Ausgabe umleitet mit 'slapcat > test.ldif', dann kommen 2 Warnungen
Diese Warnungen beseitigen
In /etc/ldap/slapd.conf müssen folgende Zeilen (105, 128*) bearbeitet werden:
access to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=delixs-schule,dc=de" write by anonymous auth by self write by * none access to * by dn="cn=admin,dc=delixs-schule,dc=de" write by * read
jeweils die 2. Zeile (also 'by dn="cn=admin,dc=delixs-schule,dc=de" write') muss rausgelöscht werden (nicht nur auskommentiert!)
Initialisierung des LDAPs
Da die smbldap-tools davon ausgehen, dass alle Gruppen unter einer 'ou' zu finden sind, wird nun doch diese sehr einfache Struktur gewählt.
.----- ou=groups / / / .------ ou=people / / LDAPBASE -------- ou=accounts \ \ \ `------ ou=machines \ \ `----- cn=admin
Anmerkung: Die Einträge für sambaDomain und für DHCP kommen später. Die Einträge für LDAPBASE und cn=admin sind schon drin
Das LDIF-File http://www.arktur.th.schule.de/initldap.ldif (Datei im Paket) wird nun so eingespielt:
ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/initldap.ldif
rückgängig gemacht werden kann es mit dem passenden Killfile (Datei im Paket) oder http://www.arktur.th.schule.de/killinitldap.del
ldapdelete -x -D cn=admin,dc=delixs-schule,dc=de -W -f /root/killinitldap.del
Konfiguration von NSS
Die datei /etc/nsswitch.conf
passwd: compat ldap shadow: compat ldap group: compat ldap
Konfiguration von PAM
als root eine 2. Konsole aufgemacht!
Die datei /etc/pam_ldap.conf
base dc=delixs-schule,dc=de uri ldap://127.0.0.1/ # geändert ldap_version 3 rootbinddn cn=admin,dc=delixs-schule,dc=de scope sub # geändert bind_policy soft # geändert pam_password exop # geändert
Anm.: Wo geändert steht, da musste ich den Eintrag erstellen. Die zwei anderen Einträge waren schon so.
Die Datei /etc/pam.d/common-account
account [success=1 default=ignore] pam_unix.so account required pam_ldap.so account required pam_permit.so
Die Datei /etc/pam.d/common-auth
auth [success=1 default=ignore] pam_unix.so auth required pam_ldap.so use_first_pass ignore_authinfo_unavail auth required pam_permit.so
Die Datei /etc/pam.d/common-password
password [success=1 default=ignore] pam_unix.so nullok obscure min=4 max=8 md5 password required pam_ldap.so try_first_pass password required pam_smbpass.so nullok use_authtok try_first_pass password required pam_permit.so
Die Datei /etc/pam.d/common-session
session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel umask=0022
Ergänzungen an der /etc/ldap/slapd.conf
folgende indexe sollten angelegt werden:
#index default eq index objectClass eq index uidNumber eq index gidNumber eq index uid,displayName eq index cn,sn pres,eq,sub index memberUid eq index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq
bei den ACLs kommentieren wir diese aus: (Anm.: beim Testen unter Samba ging search nicht)
access to dn.base="" by * read
Neustart des LDAP
/etc/init.d/slapd restart
Testen der PAM-Konfiguration
Speichern Sie zum Test den folgenden Text in die Datei mit dem Namen "mmustermann.ldif" ab und legen diese auf dem Server unter "/root" ab.
# # Login: mmustermann # Passwort: geheim # dn: uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount objectClass: sambaSamAccount cn: mmustermann sn: mmustermann givenName: mmustermann uid: mmustermann uidNumber: 2000 gidNumber: 1002 homeDirectory: /home/students/mmustermann loginShell: /bin/bash gecos: Schueler displayName: mmustermann sambaSID: S-1-5-21-22721786-4218643269-2274238902-3002 sambaAcctFlags: [U ] sambaNTPassword: C2AE1FE6E648846352453E816F2AEB93 userPassword:: e1NTSEF9dGpzaVNabEVaYXBiTW1PZ0JHdXlWR09xYlJLVFRJdTk=
Damit das Homeverzeichnis automatisch erstellt werden kann, legen Sie noch das Verzeichnis "/home/students" an:
mkdir /home/students
Jetzt spielen Sie diese Date in den LDAP ein mit dem Befehl:
ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/mmustermann.ldif
Nun sollte folgendes funktionieren:
- anmelden auf einer weiteren Console mit 'mmustermann' und dem Passwort 'geheim'
- 'getent passwd mmustermann' liefert
mmustermann:x:2000:102:Manfred Mustermann,testklasse:/home/students/mmustermann:/bin/bash
- 'id mmustermann' liefert
uid=2000(mmustermann) gid=1002(crontab) Gruppen=1002(crontab)
- mit 'passwd mmustermann' kann man das Passwort ändern
Es ging hier nur um den Test der PAM-Konfiguration, also können Sie diesen User wieder löschen. Dazu geben Sie diesen Befehl in einer einzigen langen Zeile ein:
ldapdelete -x -D "cn=admin,dc=delixs-schule,dc=de" -W "uid=mmustermann,ou=people,ou=accounts,dc=delixs-schule,dc=de"
Weblinks
- http://www.openldap.org/
- http://linuxwiki.de/OpenLDAP
- http://de.wikipedia.org/wiki/Ldap
- http://wiki.debian.org/LDAP
- http://www.webmasterpro.de/server/article/ldap.html
- http://dkluenter.gmxhome.de/
- http://www.debian-administration.org/article/OpenLDAP_installation_on_Debian