EDV:LDAP
Einrichten eines LDAP-Clients im KIP
Hier KIP wird die zentrale Nutzerverwaltung in LDAP gemacht. Wenn von KIP-Account die Rede ist, wird damit immer der Account im LDAP gemeint.
Wichtige Angaben:
1. LDAP-Server | ldap.kip.uni-heidelberg.de (129.206.176.40) |
2. LDAP-Server | ldap2.kip.uni-heidelberg.de (129.206.176.149) |
search base | dc=kip,dc=uni-heidelberg,dc=de |
LDAP Version | 3 |
Die Aktuellnen (Beispiel)-Konfigurationsdateien fĂŒr das KIP sind alle im KIP-AFS:
/afs/kip/common/etc/LDAP/*
LDAP-Utils
Diese Tools ermöglichen unter anderem eine einfache Abfrage auf der Kommandozeile mit ldapsearch.
Installieren der Binaries:
aptitude install ldap-utils
Kurzversion. Kopieren der Konfigurationsdatei aus dem KIP-AFS:
cp --backup=t /afs/kip/common/etc/LDAP/ldap.conf /etc/ldap/ cp --backup=t /afs/kip/common/etc/keys-certs/kip.crt /etc/ssl/
Die /etc/ldap/ldap.conf sollte so aussehen:
URI ldap://ldap.kip.uni-heidelberg.de ldap://ldap2.kip.uni-heidelberg.de BASE dc=kip,dc=uni-heidelberg,dc=de ldap_version 3 TLS_REQCERT allow tls_cacert /etc/ssl/kip.crt
Die Datei kip.crt gibt es hier: KIP-Wurzelzertifikat
NSS (Namensauflösung)
Installieren der Binaries:
aptitude install libnss-ldap
Kurzversion. Kopieren der Konfigurationsdatei aus dem KIP-AFS:
cp --backup=t /afs/kip/common/etc/LDAP/libnss-ldap.conf /etc/ cp --backup=t /afs/kip/common/etc/LDAP/nsswitch.conf /etc/ [ -x /etc/init.d/nscd ] && /etc/init.d/nscd restart
In der /etc/libnss-ldap.conf muss folgendes enthalten sein:
uri ldap://ldap.kip.uni-heidelberg.de/ ldap://ldap2.kip.uni-heidelberg.de/ ldap://ldap3.kip.uni-heidelberg.de/ base dc=kip,dc=uni-heidelberg,dc=de timelimit 30 nss_base_passwd ou=people,dc=kip,dc=uni-heidelberg,dc=de nss_base_group ou=group,dc=kip,dc=uni-heidelberg,dc=de
In der /etc/nsswitch.conf an den EintrĂ€gen passwd und group ldap hinzufĂŒgen und am besten auch 'compat' durch 'files' ersetzen:
passwd: files ldap group: files ldap shadow: files
Falls vorhanden den nscd (Name Service Cache Daemon) neustarten:
/etc/init.d/nscd restart
Zum testen am besten getent verwenden (userX ist ein LDAP Nutzer):
getent passwd userX
PAM (Pluggable Authentication Modules)
Installieren der Binaries:
aptitude install libpam-ldap
FĂŒr die pam_ldap.conf gibt es auch ein Beispiel im KIP-AFS, allerdings kann die Ănderung am Filter (pam_filter) notwendig sein:
cp --backup=t /afs/kip/common/etc/LDAP/pam_ldap.conf /etc/
In der /etc/pam_ldap.conf sollte folgendes enthalten sein:
uri ldaps://ldap.kip.uni-heidelberg.de/ ldaps://ldap2.kip.uni-heidelberg.de/ ldaps://ldap3.kip.uni-heidelberg.de/ base dc=kip,dc=uni-heidelberg,dc=de scope sub timelimit 30 bind_timelimit 30 bind_policy soft nss_base_passwd ou=people,dc=kip,dc=uni-heidelberg,dc=de nss_base_group ou=group,dc=kip,dc=uni-heidelberg,dc=de nss_map_attribute uniqueMember member ## Here you can restrict access to only some people (for example KIPGroup S3) pam_filter objectclass=posixAccount #pam_filter &(objectclass=posixAccount)(KIPGroup=S3) pam_password crypt pam_min_uid 1000 ssl on tls_checkpeer no tls_cacertfile /etc/ssl/kip.crt
Die Datei kip.crt gibt es hier: KIP-Wurzelzertifikat
Nun entweder fĂŒr den Dienst den man anbieten will pam_ldap.so hinzufĂŒgen oder allgemein in den common-*-Dateien. Einige Beispiele fĂŒr diese Dateien sind im KIP-AFS:
ls /afs/kip/common/profiles/new-System_*/etc/pam.d/
Beispiel fĂŒr eine /etc/pam.d/common-auth:
auth sufficient pam_unix.so nullok_secure auth required pam_ldap.so ignore_unknown_user
Beispiel fĂŒr eine /etc/pam.d/common-account:
account sufficient pam_unix.so account required pam_ldap.so ignore_unknown_user
So wird der Nutzer erst lokal ĂŒberprĂŒft/gesucht und dann im LDAP. |
Die /etc/pam.d/ssh sieht dann zum Beispiel immernoch so aus:
auth required pam_env.so # [1] auth required pam_env.so envfile=/etc/default/locale # Standard Un*x authentication. @include common-auth account required pam_nologin.so # Standard Un*x authorization. @include common-account # Standard Un*x session setup and teardown. @include common-session session optional pam_motd.so # [1] session optional pam_mail.so standard noenv # [1] session required pam_limits.so # Standard Un*x password updating. @include common-password
Probleme mit Ubuntu und einer nicht auflösbaren Gruppen ID
Die sudo Umgebung in Ubuntu prĂŒft beim Einloggen ob der User Mitglied der Gruppe Admin ist. Diese Routine schlĂ€gt in einer LDAP Umgebung fehl. Ein Workaround ist, die Datei /etc/bash.bashrc entsprechend zu editieren und den Eintrag sudo-hint auszukommentieren.
cp /afs/kip/common/etc/bash.bashrc /etc/bash.bashrc -b