Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:ldap

Dies ist eine alte Version des Dokuments!


OpenLDAP Server

Benötigte Pakete

Debian:

slapd

SuSE:

openldap2

Bug in openSuSE 12.3 und 13.1 1)

Fedora, CentOS 6:

openldap-servers

Minimal-Konfiguration

Bei Debian wird das Paket mit folgenden Werten vorkonfiguriert 2):

debconf-set-selections <<DEBCONF
# Name of your organization:
slapd shared/organization string linuxhotel
# Allow LDAPv2 protocol?
slapd slapd/allow_ldap_v2 boolean false
# DNS domain name:
slapd slapd/domain string linuxhotel.de
# Admin password:
slapd slapd/password1 password villa
# Confirm password:
slapd slapd/password2 password villa
DEBCONF

Ab Debian 6.0 ( squeeze ) liegt die Konfiguration per default in einem LDAP-Baum. Wir empfehlen LDAP-Einsteigern, slapd über eine Konfigurationsdatei zu konfigurieren:

cat /usr/share/doc/slapd/examples/slapd.conf > /etc/ldap/slapd.conf

/etc/default/slapd : ( Debian 6.0 )

SLAPD_CONF=/etc/ldap/slapd.conf

Die wichtigsten Einstellungen für slapd:

/etc/ldap/slapd.conf : (Debian)

/etc/openldap/slapd.conf (SuSE, Fedora)

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

Je nach Version der Distribution bzw. von OpenLDAP wird ein anderes Backend empfohlen.

Debian 6.0 :

moduleload      back_hdb
backend hdb
database hdb
suffix          "dc=linuxhotel,dc=de"

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

access to *
        by dn="cn=admin,dc=linuxhotel,dc=de" write
        by self read
        by * read

centos 5 :

cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

centos 6 :

include		/etc/openldap/schema/core.schema
include		/etc/openldap/schema/cosine.schema
include		/etc/openldap/schema/inetorgperson.schema
include		/etc/openldap/schema/nis.schema
include		/etc/openldap/schema/openldap.schema

# modulepath /usr/lib/openldap
modulepath /usr/lib64/openldap


access to dn.base="" by * read

database	bdb
suffix		"dc=example,dc=com"
rootdn		"cn=admin,dc=example,dc=com"
rootpw		villa
directory	/var/lib/ldap

slapd.conf prüfen

slapd -t 
slaptest

erste LDAP Einträge

Unter Debian werden bereits bei der Installation die ersten Werte, wie z.B. der Administrator-Benutzer in das Verzeichnis eingefügt. Unter SuSE und Fedora kann man das mit dem Befehl slapadd tun, das Administrator-Passwort wird mit dem Befehl slappasswd erzeugt:

DOMAIN="dc=linuxhotel,dc=de"
DC=${DOMAIN%%,*}
PASSWORD=`slappasswd -s villa`
slapadd <<LDIF
dn: $DOMAIN
objectClass: top
objectClass: dcObject
objectClass: organization
o: linuxhotel
dc: ${DC#dc=}

dn: cn=admin,$DOMAIN
objectClass: top
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: $PASSWORD
LDIF

slapd starten

SuSE, Centos, Fedora:

/etc/init.d/ldap restart
chkconfig ldap on

Debian:

/etc/init.d/slapd restart

Fehler beim Starten finden

(unter SuSE /usr/lib/openldap/slapd)

slapd -d -1

Client ldapsearch

Benötigte Pakete

Debian:

ldap-utils

SuSE:

openldap2-client

Fedora, CentOS 6:

openldap-clients

Testen

Der OpenLDAP Server sollte nun z.B. mit ldapsearch die oben eingegebenen Werte zurückliefern:

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

Die Benutzung der ldap-utils können sie mit Hilfe einer Konfigurationsdatei $HOME/.ldaprc 3) vereinfachen:

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

Der obige Aufruf verkürzt sich dadurch zu:

ldapsearch -x -W

Eigenschaften des LDAP-Server abfragen

ldapsearch -x -W -b '' -s base '+'

Schemata des LDAP-Server abfragen

ldapsearch -x -W -b 'cn=Subschema' -s base '+'

Tips & Tricks

Backup und Restore

/etc/init.d/slapd stop
slapcat -b dc=linuxhotel,dc=de > sicherung.ldif
less sicherung.ldif
grep directory /etc/ldap/slapd.conf
# DB_CONFIG nicht löschen ...
rm /var/lib/ldap/*.bdb
rm /var/lib/ldap/__db.*
vi sicherung.ldif
slapadd < sicherung.ldif
slapindex
chown -R openldap:openldap /var/lib/ldap/*
/etc/init.d/slapd start

vim

Nützliche Optionen beim Editieren von LDIF Dateien:

  • :set list
  • :syntax on
  • :set number

Oder eine Datei ~/.vimrc anlegen

set list
set number
syntax on

ldapadd

LDIF-Dateien vor dem Einfügen testen:

ldapadd -x -W -n < irgendwas.ldif

und erst dann wirklich einfügen:

ldapadd -x -W < irgendwas.ldif

weitere LDAP Clients

2)
Die Werte kann man natürlich auch interaktiv beim apt-get install eingeben
3)
das geht auch benutzerübergreifend, je nach Distribution /etc/ldap.conf, /etc/ldap/ldap.conf, /etc/openldap/ldap.conf
4)
Installation unter debian 6.0:
apt-get install libio-socket-ssl-perl shelldap
lpi2/ldap.1403864926.txt.gz · Zuletzt geändert: 2015/07/19 08:01 (Externe Bearbeitung)