Debian LDAP-Client: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:




==Installation der Pakete==
==Installation==
  apt-get install libnss-ldap nscd
  apt-get install libnss-ldapd libpam-ldapd
Folgende Fragen beantworten:
Folgende Fragen beantworten:
* LDAP Server URI: ldap://'''IP_DES_LDAP_SERVER'''  ([[Debian_LDAP#Optional: SSL Verschlüsselung|LDAP SSL]]) (ldapi:// nur verwenden, wenn Client und Server auf dem selben System laufen, da ldapi nur lokal via Unix-Socket und nicht via Netzwerk funktioniert)
* LDAP Server URI: ldap://'''IP_DES_LDAP_SERVER'''  ([[Debian_LDAP#Optional: SSL Verschlüsselung|LDAP SSL]]) (ldapi:// nur verwenden, wenn Client und Server auf dem selben System laufen, da ldapi nur lokal via Unix-Socket und nicht via Netzwerk funktioniert)
* Distinguished name of the search base: '''LDAP_BASE''' z.B. dc=test,dc=homelinux,dc=lan
* LDAP server search base: '''LDAP_BASE''' z.B. dc=test,dc=lan
* LDAP Version: 3
* check server's SSL Certificate: never
* LDAP account for root: cn=admin,dc=test,dc=homelinux,dc=lan
* Name services to configure: group , passwd und shadow auswählen
* LDAP root account password: '''LDAP_ADMIN_PWD'''
* Allow LDAP admin account to behave like local root: yes
* Does the LDAP Database require login: no
* LDAP administrative account: cn=admin,dc=test,dc=homelinux,dc=lan
* LDAP administrative Password: '''LDAP_root_PWD'''
 
 
==Konfiguration==
vi /etc/nsswitch.conf
ldap in folgenden Einträgen ergänzen:
passwd:        compat ldap
group:          compat ldap
shadow:        compat ldap
 
In der Standard Debian6 Konfiguration kann der User sein Passwort nicht ändern. Um dies zu ermöglichen, muss folgende Änderung durchgeführt werden:
vi /etc/pam.d/common-password
In folgender Zeile '''use_authtok''' löschen:
password        [success=1 user_unknown=ignore default=die]    pam_ldap.so use_authtok try_first_pass
Die Zeile sollte dann folgendermaßen aussehen:
password        [success=1 user_unknown=ignore default=die]    pam_ldap.so try_first_pass
 
Standardmäßig werden User und Gruppen von der Basis aus gesucht. Die Suche kann etwas beschleunigt werden, wenn User automatisch in der OU=people und die Gruppen in der OU=groups gesucht werden. Dazu müssen folgende Änderungen in den Konfigfiles /etc/libnss-ldap.conf und /etc/pam_ldap.conf durchgeführt werden.
vi /etc/libnss-ldap.conf
Folgende Änderungen durchführen:
nss_base_passwd        ou=people,dc=test,dc=homelinux,dc=lan?one
nss_base_shadow        ou=people,dc=test,dc=homelinux,dc=lan?one
nss_base_group          ou=groups,dc=test,dc=homelinux,dc=lan?one
 
vi /etc/pam_ldap.conf
Folgende Änderungen durchführen:
nss_base_passwd        ou=people,dc=test,dc=homelinux,dc=lan?one
nss_base_shadow        ou=people,dc=test,dc=homelinux,dc=lan?one
nss_base_group          ou=groups,dc=test,dc=homelinux,dc=lan?one
 


==Funktionstest Client==
==Funktionstest Client==
Zeile 63: Zeile 29:


Funktionstest wiederholen, um sicherzustellen, dass auch der nscd Daemon korrekt arbeitet.
Funktionstest wiederholen, um sicherzustellen, dass auch der nscd Daemon korrekt arbeitet.
==User migrieren==
Clientseitig können User, die in /etc/passwd eingetragen sind und solche, die via LDAP authorisiert werden, beliebig gemischt werden. Es sollte jedoch vermieden werden, dass User sowohl in /etc/passwd als auch via LDAP verfügbar sind. Selbes gilt für Gruppen (/etc/groups).
User, die bisher lokal verfügbar waren (via /etc/passwd) und auf LDAP migriert werden sollen, haben höchst wahrscheinlich unterschiedliche User ID.
Selbes gilt für die Gruppen ID's.
Um die ID's anzupassen folgendermaßen vorgehen:
* '''UID_ALT''' : User ID aus /etc/passwd
* '''UID_LDAP''': LDAP User ID
* '''GID_ALT''':  Gruppen ID aus /etc/passwd
* '''GID_LDAP''': LDAP Gruppen ID.
z.B. /etc/passwd
tux:x:1001:2002:,,,:/home/tux:/bin/bash
'''UID_LDAP'''=2000
'''GID_DAP'''=3000
=> '''UID_ALT'''=1001
=> '''GID_ALT'''=2002
Eigentümerrechte der Files anpassen:
find / -uid '''UID_ALT''' -exec chown '''UID_LDAP''' {} \;
find / -gid '''GID_ALT''' -exec chgrp '''GID_LDAP''' {} \;
z.B.
find / -uid 1001 -exec chown 2000 {} \;
find / -gid 2002 -exec chgrp 3000 {} \;
User in /etc/passwd deaktiveren:
vi /etc/passwd
Kommentarzeichen vor den User tux setzen:
#tux:x:1001:2002:,,,:/home/tux:/bin/bash




Zeile 108: Zeile 43:
Folgende Änderungen durchführen:
Folgende Änderungen durchführen:
  URI  ldaps://'''IP_DES_SERVER'''  
  URI  ldaps://'''IP_DES_SERVER'''  
  BASE '''LDAP_Base'''  z.B. dc=test,dc=homelinux,dc=lan
  BASE '''LDAP_Base'''  z.B. dc=test,dc=lan
  TLS_CACERT '''CACERT_DIR'''/cacert.pem
  TLS_CACERT '''CACERT_DIR'''/cacert.pem
  TLS_REQCERT never
  TLS_REQCERT demand


  vi /etc/libnss-ldap.conf
  vi /etc/nslcd.conf
Die URI abändern:
uri ldaps://'''IP_DES_SERVER'''
Und die selbe Änderung in folgendem File
vi /etc/pam-ldap.conf
Die URI abändern:
Die URI abändern:
  uri ldaps://'''IP_DES_SERVER'''
  uri ldaps://'''IP_DES_SERVER'''
Folgende Änderungen durchführen:
tls_reqcert demand
tls_cacertfile '''CACERT_DIR'''/cacert.pem
NSLCD Daemon neustarten, um die Änderungen zu übernehmen.


Funktionstest siehe [[Debian_LDAP-Client#Funktionstest Client|Funktionstest Client]]
Funktionstest siehe [[Debian_LDAP-Client#Funktionstest Client|Funktionstest Client]]

Aktuelle Version vom 5. Dezember 2013, 21:47 Uhr

Allgemein

Hier wird die clientseitige Einrichtung für LDAP beschrieben. Nachdem PAM (Plugabble Authentication Module) zum Einsatz kommt, wird LDAP nicht nur zur Anmeldung am Linuxsystem (lokal bzw. Telnet/SSH remote) verwendet, sondern auch für sämtliche Serverdienste, die PAM verwenden können (z.B. FTP, Postfix und Cyrus, usw.).


Installation

apt-get install libnss-ldapd libpam-ldapd

Folgende Fragen beantworten:

  • LDAP Server URI: ldap://IP_DES_LDAP_SERVER (LDAP SSL) (ldapi:// nur verwenden, wenn Client und Server auf dem selben System laufen, da ldapi nur lokal via Unix-Socket und nicht via Netzwerk funktioniert)
  • LDAP server search base: LDAP_BASE z.B. dc=test,dc=lan
  • check server's SSL Certificate: never
  • Name services to configure: group , passwd und shadow auswählen

Funktionstest Client

Voraussetzung:

  • User (LDAP_USER) im LDAP-Server angelegt.
  • Der User sollte nicht lokal angelegt sein, da ansonsten die Informationen aus /etc/passwd und /etc/groups ausgegeben werden.

Der Daemon nscd, der Login- und Userinformationen cached sollte während der funktionschecks deaktiviert werden, um sicherzustellen, dass tatsächlich die Anfragen an den LDAP-Server gerichtet und von dort beantwortet werden.

/etc/init.d/nscd stop
id ldap_user

Es sollten Infos wie UserID, GroupID und Gruppenzugehörigkeit zum User ausgegeben werden. Falls der User im LDAP Directory nicht existiert bzw. Konfigurationsfehler im LDAP-Server bzw. Client vorliegen, wird "No such user" ausgegeben


Wenn der User Loginberechtigt ist, dann via ssh mit Usernamen und Passwort versuchen sich einzuloggen. Falls alles korrekt funktioniert, sollte der Login möglich sein.

Waren die Funktionschecks erfolgreich empfiehlt es sich den Cache Daemon nscd wieder zu starten, um den LDAP-Server von Anfragen zu entlasten.

/etc/init.d/nscd start

Funktionstest wiederholen, um sicherzustellen, dass auch der nscd Daemon korrekt arbeitet.


Optional: SSL-Verschlüsselung

Um die Client-Anfragen auf SSL umzustellen, folgendermaßen vorgehen:

CA Root Zertifikat (cacert.pem) auf dem Client ablegen z.B. im Verzeichnis /etc/ssl/certs oder /etc/ssl/CA/ oder /etc/ldap/ssl/ (CACERT_DIR).

Zugriffsrechte anpassen:

chmod 751 CACERT_DIR
chmod 644 CACERT_DIR/cacert.pem
vi /etc/ldap/ldap.conf

Folgende Änderungen durchführen:

URI  ldaps://IP_DES_SERVER 
BASE LDAP_Base  z.B. dc=test,dc=lan
TLS_CACERT CACERT_DIR/cacert.pem
TLS_REQCERT demand
vi /etc/nslcd.conf

Die URI abändern:

uri ldaps://IP_DES_SERVER

Folgende Änderungen durchführen:

tls_reqcert demand
tls_cacertfile CACERT_DIR/cacert.pem

NSLCD Daemon neustarten, um die Änderungen zu übernehmen.

Funktionstest siehe Funktionstest Client