LDAP

Aus Goobi

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 10:33, 8. Jan. 2008 durch Benmueller (Diskussion | Beiträge).
(Unterschied) ← Nächstältere Version | Aktuelle Version ansehen (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Installation des LDAP Servers und der LDAP Authentifizierung

Voraussetzungen


  • Installation der benötigten Software Pakete
emerge -g openldap pam_ldap nss_ldap

oder

emerge openldap pam_ldap nss_ldap

(-g verhindert, das jedes Paket neu kompiliert wird)

Konfiguration OpenLDAP Servers

(Die SSL Konfiguration wird unter http://www.openldap.org/faq/data/cache/185.html beschrieben)

  • Benötigte Schemata in "/etc/openldap/slapd.conf" einfügen
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
  • Name des Baums und Admistrativen Nutzer konfigurieren:
suffix dc=bib,dc=uni,dc=de
rootdn cn=Manager,dc=bib,dc=uni,dc=de
rootpw [PASSWORT]
  • Das Passwort wird als Hash Wert angeben, es wird mit dem Befehl "slappasswd" erzeugt:
slappasswd
  • Danach müssen die Indexierungsregeln angepasst werden, z.B.:
index objectClass,uidNumber,gidNumber eq
  • Falls schon etwas ins Directory geschrieben wurde, muss danach der Befehl "slapindex" ausgeführt werden.
slapindex
  • Zusätzlich können ACLs angegeben werden, z.B.:
access to *
  by dn="uid=root,dc=bib,dc=uni,dc=de" write
  by users read
  by anonymous auth
  • Ein weiters Beispiel für den PAM Account, der später angelegt werden wird:
access to attrs=userPassword,gecos,description,loginShell
  by cn=pam,dc=bib,dc=uni,dc=de write
  by self write
  by * none

Mehr unter http://www.openldap.org/doc/admin24/slapdconfig.html#The%20access%20Configuration%20Directive

Zum testen der Konfiguration sollte der OpenLDAP Server nun gestartet werden

/etc/init.d/ldap start

Konfiguration des LDAP Clients

  • /etc/openldap/ldap.conf
BASE         dc=bib,dc=uni,dc=de
URI          ldap://localhost/
TLS_REQCERT  never
  • Funktionstest
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

Initiale Einträge

  • Administrativer Benutzer
dn: dc=bib,dc=uni,dc=de
objectclass: dcObject
objectclass: organization
o: Bibliothek
dc: bib

dn: cn=Manager,dc=bib,dc=uni,dc=de
objectclass: organizationalRole
cn: Manager
  • Einfache Struktur
dn: cn=pam,dc=bib,dc=uni,dc=de
objectclass: organizationalRole
objectclass: simpleSecurityObject
cn: pam
userPassword: [PASSWORT]

dn: ou=goobi,dc=bib,dc=uni,dc=de
objectclass: organizationalUnit
ou: goobi

dn: ou=groups,ou=goobi,dc=bib,dc=uni,dc=de
objectclass: organizationalUnit
ou: groups

dn: ou=users,ou=goobi,dc=bib,dc=uni,dc=de
objectclass: organizationalUnit
ou: users

Wichtig: "[PASSWORT]" durch einen von "slappasswd" erzeugten Hash (s.o.) ersetzen.

Beide Schnipsel können in einer Datei gespeichert werden. Die Datei kann dan mit folgendem Befehl ins Directory "importiert" werden:

ldapadd -x -D "cn=Manager,dc=bib,dc=uni,dc=de" -W -f [DATEINAME]

Anpassung der Systemauthentifizierung

  • /etc/ldap.conf

"host" und "base" anpassen:

host 127.0.0.1

base dc=bib,dc=uni,dc=de
  • "binddn" und "bindpw" anpassen:
binddn cn=pam,dc=bib,dc=uni,dc=de
bindpw [PASSWORT]
  • "rootbinddn" und "rootbindpw" anpassen:
rootbinddn cn=Manager,dc=bib,dc=uni,dc=de
rootbindpw [PASSWORT]
  • Folgende weitere Optionen müssen ebenfalls gesetzt werden:
pam_filter objectclass=posixAccount
pam_template_login_attribute uid
pam_member_attribute memberuid
  • Zusätzlich müssen die LDAP Äste in den die Konfigurationsdaten zu finden sind konfiguriert werden:
nss_base_passwd         ou=users,ou=goobi,dc=bib,dc=uni,dc=de
nss_base_shadow         ou=users,ou=goobi,dc=bib,dc=uni,dc=de
nss_base_group          ou=groups,ou=goobi,dc=bib,dc=uni,dc=de
  • /etc/pam.d/system-auth

In diese Datei müssen folgende Zeilen eingefügt werden:

auth       sufficient   pam_ldap.so use_first_pass
account    required     pam_ldap.so
password   sufficienti  pam_ldap.so use_authtok use_first_pass
session    optional     pam_ldap.so

Komplette Datei nach der Ergänzung (Beispiel):

#%PAM-1.0

auth       required     pam_env.so
auth       sufficient   pam_unix.so likeauth nullok shadow
auth       sufficient   pam_ldap.so use_first_pass
auth       required     pam_deny.so

account    required     pam_unix.so
account    sufficient   pam_localuser.so
account    required     pam_ldap.so

password   required     pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password   sufficient   pam_unix.so nullok md5 shadow use_authtok
password   sufficienti  pam_ldap.so use_authtok use_first_pass
password   required     pam_deny.so

session    required     pam_limits.so
session    required     pam_unix.so
#session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0066
session    optional     pam_ldap.so
  • /etc/nsswitch.conf

Dort müssen folgende drei Zeilen geändert werden:

passwd:      files compat ldap
shadow:      files compat ldap
group:       files compat ldap

Funktionstests

  • Abfragen des LDAP Servers
ldapsearch -W -x -D "cn=Manager,dc=bib,dc=uni,dc=de"
  • Lokale Anmeldung (wenn Nutzer im LDAP Server vohanden)
ssh USER@localhost

Um Fehler bei der Konfiguration der SystemAuthentifizierung zu vermeiden, solte man es auch mit existierenden Systemnutzer (z.B. "root") ausprobieren.

Persönliche Werkzeuge