EDV:LDAP

From KIP Wiki
⧌kip-jumptonavigation⧜⧌kip-jumptosearch⧜

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