EDV:LDAP: Difference between revisions
(ldapclient) Â |
 |
||
(26 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
= Einrichten |
= 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 == |
|||
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]] |
|||
== PAM == |
|||
[[Category:EDV|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