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.uni-heidelberg,dc=de
LDAP Version 3


LDAP-Utils

Diese Tools ermöglichen unter anderem eine einfache Abfrage auf der Kommandozeile mit ldapsearch.

Installieren der Binaries:

aptitude install ldap-utils

Die /etc/ldap/ldap.conf sollte so aussehen:

URI     ldap://ldap.kip.uni-heidelberg.de ldap://ldap2.kip.uni-heidelberg.de
BASE    dc=kip.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

In der /etc/libnss-ldap.conf muss folgendes enthalten sein:

uri   ldap://ldap.kip.uni-heidelberg.de/ ldap://ldap2.kip.uni-heidelberg.de/
base  dc=kip.uni-heidelberg,dc=de
nss_base_passwd      ou=people,dc=kip.uni-heidelberg,dc=de
nss_base_group       ou=group,dc=kip.uni-heidelberg,dc=de

In der /etc/nsswitch.conf an den Einträgen passwd und group ldap hinzufügen:

passwd:         compat ldap
group:          compat ldap
shadow:         compat

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

In der /etc/pam_ldap.conf sollte folgendes enthalten sein:

uri   ldaps://ldap.kip.uni-heidelberg.de/ ldaps://ldap2.kip.uni-heidelberg.de/
base  dc=kip.uni-heidelberg,dc=de

scope sub
nss_base_passwd    ou=people,dc=kip.uni-heidelberg,dc=de
nss_base_group     ou=group,dc=kip.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. 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 im LDAP überprüft/gesucht und erst bei Nichterfolg lokal.

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