EDV:LDAP: Difference between revisions

From KIP Wiki
⧼kip-jumptonavigation⧽⧼kip-jumptosearch⧽
No edit summary
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Einrichten eine [[EDV:LDAP|LDAP]]-Clients im KIP =
= Einrichten eines [[EDV:LDAP|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:
{| {{Prettytable}}
| 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 ==
== LDAP-Utils ==
Diese Tools ermöglichen unter anderem eine einfache Abfrage auf der Kommandozeile mit '''ldapsearch'''.


Installieren der Binaries:
=== ldapsearch ===
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: [[EDV:KIP-Wurzelzertifikat|KIP-Wurzelzertifikat]]


== NSS (Namensauflösung) ==
== 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: [[EDV:KIP-Wurzelzertifikat|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

{{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:
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 ==
== PAM ==


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]]
[[Category:EDV|LDAP]]
[[Category:EDV|LDAP]]
[[Category:EDV Howto|LDAP]]
[[Category:EDV HowTo|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