Benutzerverwaltung mit LDAP

Der Directorydienst LDAP bietet die Möglichkeit zahlreiche Benutzerinformationen, wie Passwörter und Zugriffsrechte bis hin zu Telefonnummern, zentral abzulegen und aufzurufen.
Allerdings ist es nicht immer ganz so einfach einen LDAP Server zu verwalten. Im folgenden verwenden wir den LDAP Server um Benutzerdaten für folgende Dienste zentral abzulegen:

  • Unix User
  • pam
  • Mailserver (Cyrus,Postfix)
  • Samba

LDAP Server einrichten

Die Hauptkonfigurationsdatei:

/etc/ldap/slapd.conf:

allow bind_v2

include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/mail.schema
include         /etc/ldap/schema/samba.schema

pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args
loglevel        5

modulepath      /usr/lib/ldap
moduleload      back_hdb
backend         hdb
database        hdb
sizelimit       500
tool-threads    1

suffix          "dc=firma"
directory       "/data/ldap"

dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500

index           objectClass eq
lastmod         on
checkpoint      512 30

access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,dc=firma" write
        by anonymous auth
        by self write
        by * none

access to dn.base="" by * read

access to *
        by dn="cn=admin,dc=primag" write
        by * read

Der Datenpfad verschiebe ich in das Datenhauptverzeichnis /data. Seit Hardy spielt hier beim LDAP und bei MySQL auch apparmor eine Rolle. Es reicht nicht mehr den Datenpfad zu ändern. Der slapd Daemon braucht auch via apparmor Zugriffsrecht.
/etc/apparmor.d/usr.sbin.slapd:

...
  /data/ldap/ r,
  /data/ldap/* rwk,
...

Das Datenverzeichnis muss Schreibzugriff für den Benutzer ‘openldap’ gewährleisten:

chown -R openldap.openldap /data/ldap
chmod -R g+rw /data/ldap

Daten sichern

Die gesamten Daten können mit einem einfachen Befehl ausgelesen werden:

slapcat > backup.ldif

Daten wieder herstellen

Ich beschreibe hier nur die Wiederherstellung aller Daten. Es gibt auch die Möglichkeit nur Teile davon wieder zurück zu spielen. Siehe hierzu man slapadd.

/etc/init.d/slapd stop
rm -r /data/ldap/*
slapadd -l backup.ldif
chown -R openldap.openldap /data/ldap
chmod -R g+rw /data/ldap
/etc/init.d/slapd start

Für Tests vorher UNBEDINGT! den ganzen Ordner sichern!

Unix User

Die Dateien /etc/passwd und /etc/shadow werden, mit Ausnahme der Einträge für die Dienste, über LDAP verwaltet.

Verwaltung

Ich verwalte den LDAP Server via Web mit phpLDAPadmin

 
linux/server/ldap.txt · Zuletzt geändert: 29.06.2008 17:03 von tangst