LDAP Server: Unterschied zwischen den Versionen

Aus Doku-Wiki
Zur Navigation springenZur Suche springen
Zeile 132: Zeile 132:
 
Nach der Einrichtung wird mit folgendem Befehl der Benutzer angelegt
 
Nach der Einrichtung wird mit folgendem Befehl der Benutzer angelegt
 
  # cpu useradd [USERNAME]
 
  # cpu useradd [USERNAME]
 +
Mit einem Script script kann die '''/etc/passwd''' ausgelesen werden um die LDAP-User anzulegen.
 +
# cat /etc/passwd | perl -n -a -F: -e 'print $F[0], $/ if $F[2] > 10000 and $F[2] < 20000' | xargs -n 1 cpu useradd
  
 
=LDAP-Client Software zur Abfrage des LDAP-Servers=
 
=LDAP-Client Software zur Abfrage des LDAP-Servers=

Version vom 28. November 2006, 15:39 Uhr

Anmerkung

Hier ist die Installation und Grundkonfiguration eines LDAP-Servers dokumentiert. Es sollen sich Benutzer an Linuxbasierte Desktop-Clients anmelden können. Im Verzeichnis werden Daten über Benutzer, Gruppen und deren Atribute bereit gestellt

Version und Voraussetzungen

Linux: Debian Linux Sarge
LDAP: SLAPD 2.2.23 (Stable)
Verwaltung: phpLdapAdmin 0.9.5-3sarge2

Quellen

Doku von OpenLdap.org
Linux LDAP HOWTO

Installation

# apt-get update

Ldap-Server-Programme

# apt-get install slapd libldap-2.2-7 libldap2 ldap-utils ldapdiff nscd

Ldap-Client-Programme

# apt-get install libnss-ldap libpam-ldap ldap-utils nscd

Berkeley v4.2 Database Utilities

# apt-get install db4.2-util libdb4.2 libdb4.3

Verwaltungstool für das LDAP-Verzeichnis

# apt-get install php4-ldap phpldapadmin

Bei der Installation des LDAP-Servers werden verschiedene Fragen getsellt. Sie können aber auch später in den Konfigurationsdateien, die im folgenden beschrieben werden, angepasst werden.

Konfiguration

slapd.conf

Diese Datei ist für die Konfiguration des LDAP-Server zuständig In der Datei /etc/ldap/slapd.conf habe ich zei Änderunegn vorgenommen

Anpassen des Suffix
suffix          "dc=blb-intranet,dc=de"

Anpassen der RootDN
rootdn "cn=admin,dc=intranet,dc=de"

Später werden hier noch die SSL-Zertifikate angegeben. Dies aber weiter unten.

lapd.conf

Der LDAP-Server erwartet die Datei unter /etc/ldap/ldap.conf während der LDAP-Client sie unter /etc/ldap.conf erwartet. Mit einem Link kann man sich die Doppelarbeit ersparen.

# la -s /etc/ldap/ldap.conf /etc/ldap.conf

In der ldap.conf habe ich folgende Anpassungen vorgenommen

  Root-Verzeichnis des LDAP-Zweiges
  BASE    dc=blb-intranet, dc=de
  URI des LDAP-Servers und Protokoll (ldap://)
  URI     ldap://fai-sarge.blb-intranet.de
  Hostname des LDAP-Server
  HOST    fai-sarge.blb-intranet.de

libnss-ldap.conf

Diese Datei wird für den LDAP-Nameservice benötigt Folgende Einstellungen habe ich hier vorgenommen:

Hostname des LDAP-Servers
HOST    fai-sarge.blb-intranet.de
Root-Verzeichnis des LDAP-Servers
base    dc=blb-intranet,dc=de
URI des LDDAP-Serves
uri     ldap://127.0.0.1/
Version des LDAP-Protokolls
ldap_   version 3

pam_ldap.conf

Diese Datei wird für die PAM-Module benötigt, sofern eine Authentifizierung mittels LDAP geschehen soll. Folgende einträge habe ich vorgenommen:

  Da die  Einträge oben schon öfters erklärt sind, diesmal ohne Kommentar ;-)
  HOST    fai-sarge.blb-intranet.de
  base    dc=blb-intranet,dc=de
  uri     ldap://fai-sarge.blb-intranet.de/
  ldap_version 3
  
  rootbinddn cn=admin,dc=blb-intranet,dc=de
  pam_password crypt


LDAP-Inhalte

Wie kommen die Inhalte in das LDAP-Verzeichnis. Hierfür gibt es mehrere Möglichkeiten.
Dabei kommt es meiner Ansicht nach auf die Menge der Daten an, die angelegt werden sollen.

  • Einzelne Einträge

Diese können mit dem ldapadd-Befehl eingefügt werden.
Todo: Beispiel

  • Aufbau eine komplexen Strucktur

Um eine komplexe Strucktur anzulegen, bietet sich an, diese in Textdateien zu schreiben. Diese können dann vom LDAP-Server eingelesen werden.
Todo: Beispiel

  • phpLDAPadmin

Wenn beide LDAP-Server über den gleiche phpLdapadmin verwaltet werden, können die Daten einfach von einem zum anderen Server kopiert werden Projekt-Homepage
phpLDAPadmin installieren

Doku von OpenLdap.org
Linux LDAP HOWTO

LDAP-Backup und Recovery

Achtung: Für diese Befehle MUSS der SLAPD angehalten werden

slapcat > sicherung.ldif

Jetz können die SLAPD-Daten gelöscht werden. Per default liegen diese unter
/var/lib/ldap. Hier kann mit rm * alles gelöscht werden.

slapadd < sicherung.ldif

Dieser Befehl liest die LDIF-Daten (Txtfile) ein und schreibt diese in den Ldap-Server zurück.

LDAP-Abfragen

ldapsearch -H ldap://localhost -b dc=linuxhotel,dc=de -D cn=admin,dc=linuxhotel,dc=de -x -W

Vereinfachen kann man die Suchabfragen, in dem man entweder in seinem Home Directory ein Datei
mit dem Namen .ldaprc anlegt, oder die /etc/ldap/ldap.conf editier. Folgende Einträge müssen eingetragen werden:

BASE dc=linuxhotel,dc=de
BINDDN cn=admin,dc=linuxhotel,dc=de
HOST localhost

Danach kann die Suchabfrage auf folgendes reduziert werden:

ldapsearch -x -W

LDAP Benutzer und Gruppen anlegen

Gruppe

ldapadd -x -W <<LDIF
> dn: ou=people,$DOMAIN
> objectClass: top
> objectClass: organizationalUnit
> ou: people
>
> dn: ou=groups,$DOMAIN
> objectclass: top
> objectclass: organizationalUnit
> ou: groups
> LDIF

Benutzer

LDAP-Benutzer können sehr einfach mit dem Tool CPU angelegt werden. Zu beachten ist, dass dabei das Passwort leer bleibt und noch geändert werden.

# aptitude install cpu

Nach der Einrichtung wird mit folgendem Befehl der Benutzer angelegt

# cpu useradd [USERNAME]

Mit einem Script script kann die /etc/passwd ausgelesen werden um die LDAP-User anzulegen.

# cat /etc/passwd | perl -n -a -F: -e 'print $F[0], $/ if $F[2] > 10000 and $F[2] < 20000' | xargs -n 1 cpu useradd

LDAP-Client Software zur Abfrage des LDAP-Servers

  • gq
    GT basiertes Tool
  • luma
  • phpldapadmin
    Webbasiertes Frontend zur verwaltung der LDAP-Einträge