EDV:LDAP: Difference between revisions

From KIP Wiki
⧌kip-jumptonavigation⧜⧌kip-jumptosearch⧜
 
(11 intermediate revisions by 2 users not shown)
Line 11: Line 11:
| 2. LDAP-Server || '''ldap2'''.kip.uni-heidelberg.de (129.206.176.149)
| 2. LDAP-Server || '''ldap2'''.kip.uni-heidelberg.de (129.206.176.149)
|-
|-
| search base || '''dc=kip.uni-heidelberg,dc=de'''
| search base || '''dc=kip,dc=uni-heidelberg,dc=de'''
|-
|-
| LDAP Version || 3
| LDAP Version || 3
Line 17: Line 17:
|}
|}


Die Aktuellnen (Beispiel)-Konfigurationsdateien fĂŒr das [[KIP]] sind alle im [[KIP-AFS]]:
/afs/kip/common/etc/LDAP/*


== LDAP-Utils ==
== LDAP-Utils ==
Line 23: Line 25:
Installieren der Binaries:
Installieren der Binaries:
aptitude install ldap-utils
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:
Die '''/etc/ldap/ldap.conf''' sollte so aussehen:
URI ldap://ldap.kip.uni-heidelberg.de ldap://ldap2.kip.uni-heidelberg.de
URI ldap://ldap.kip.uni-heidelberg.de ldap://ldap2.kip.uni-heidelberg.de
BASE dc=kip.uni-heidelberg,dc=de
BASE dc=kip,dc=uni-heidelberg,dc=de
ldap_version 3
ldap_version 3
Line 38: Line 44:
Installieren der Binaries:
Installieren der Binaries:
aptitude install libnss-ldap
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:
In der '''/etc/libnss-ldap.conf''' muss folgendes enthalten sein:
uri ldap://ldap.kip.uni-heidelberg.de/ ldap://ldap2.kip.uni-heidelberg.de/
uri ldap://ldap.kip.uni-heidelberg.de/ ldap://ldap2.kip.uni-heidelberg.de/ ldap://ldap3.kip.uni-heidelberg.de/
base dc=kip.uni-heidelberg,dc=de
base dc=kip,dc=uni-heidelberg,dc=de
timelimit 30
nss_base_passwd ou=people,dc=kip.uni-heidelberg,dc=de
nss_base_group ou=group,dc=kip.uni-heidelberg,dc=de
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:
In der '''/etc/nsswitch.conf''' an den EintrĂ€gen ''passwd'' und ''group'' '''ldap''' hinzufĂŒgen
und am besten auch 'compat' durch 'files' ersetzen:
passwd: compat '''ldap'''
group: compat '''ldap'''
passwd: '''files ldap'''
shadow: compat
group: '''files ldap'''
shadow: '''files'''


Falls vorhanden den '''nscd''' (Name Service Cache Daemon) neustarten:
Falls vorhanden den '''nscd''' (Name Service Cache Daemon) neustarten:
Line 60: Line 73:
Installieren der Binaries:
Installieren der Binaries:
aptitude install libpam-ldap
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:
In der '''/etc/pam_ldap.conf''' sollte folgendes enthalten sein:
uri ldaps://ldap.kip.uni-heidelberg.de/ ldaps://ldap2.kip.uni-heidelberg.de/
uri ldaps://ldap.kip.uni-heidelberg.de/ ldaps://ldap2.kip.uni-heidelberg.de/ ldaps://ldap3.kip.uni-heidelberg.de/
base dc=kip.uni-heidelberg,dc=de
base dc=kip,dc=uni-heidelberg,dc=de
scope sub
scope sub
timelimit 30
nss_base_passwd ou=people,dc=kip.uni-heidelberg,dc=de
bind_timelimit 30
nss_base_group ou=group,dc=kip.uni-heidelberg,dc=de
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
nss_map_attribute uniqueMember member
Line 85: Line 105:
Nun entweder fĂŒr den Dienst den man anbieten will '''pam_ldap.so''' hinzufĂŒgen oder allgemein
Nun entweder fĂŒr den Dienst den man anbieten will '''pam_ldap.so''' hinzufĂŒgen oder allgemein
in den '''common-*'''-Dateien.
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''':
Beispiel fĂŒr eine '''/etc/pam.d/common-auth''':
auth '''sufficient''' pam_unix.so nullok_secure
auth '''sufficient''' pam_unix.so nullok_secure
Line 93: Line 116:
'''account required pam_ldap.so''' ignore_unknown_user
'''account required pam_ldap.so''' ignore_unknown_user


{{Achtung|So wird der Nutzer erst im LDAP ĂŒberprĂŒft/gesucht und erst bei Nichterfolg lokal.}}
{{Achtung|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:
Die '''/etc/pam.d/ssh''' sieht dann zum Beispiel immernoch so aus:
Line 117: Line 140:
@include common-password
@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


[[Category:LDAP|LDAP]]
[[Category:LDAP|LDAP]]

Latest revision as of 12:55, 12 June 2008

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