OpenLDAP Dynamic Configuration

Written by  on Februar 28, 2016 

Aktuelle LDAP Pakete z.B. für Ubuntu finden sich beim LDAP Tool Box project. Aber ein Problem gibt es mit den Paketen – per Default ist nur die statische Konfiguration über die slapd.conf unterstützt. Das lässt sich aber theoretisch ganz leicht ändern, man legt ein zusätzliches Verzeichnis an, wo die dynamische Konfiguration gespeichert werden kann, und trägt es in /etc/default/slapd in der Zeile „SLAPD_CONF_DIR“ ein. Was passiert dann?

slapd: [ALERT] OpenLDAP configuration test failed

Wie kann das sein? Wieso kann die Konfiguration fehlerhaft sein, wenn es doch noch gar keine gibt? Und sollte die nicht per Default angelegt werden?
Dann teste ich eben, ob ich den Dienst händisch starten kann! Wie sieht die Befehlszeile aus den slapd zu starten?

ps aux | grep slap
ldap     32099  0.0  0.3 1085388 3480 ?        Ssl  18:31   0:00 /usr/local/openldap/libexec/slapd -h ldap://*:389 ldaps://*:636 -f /usr/local/openldap/etc/openldap/slapd.conf -u ldap -g ldap -l local4

Also muss ich den Dienst doch mit -F statt -f starten können?

# /usr/local/openldap/libexec/slapd -h ldap://*:389 ldaps://*:636 -F /usr/local/openldap/etc/openldap/slapd.d -u ldap -g ldap -l local4
usage: /usr/local/openldap/libexec/slapd options
        -4              IPv4 only
        -6              IPv6 only
        -T {acl|add|auth|cat|dn|index|passwd|test}
                        Run in Tool mode
        -c cookie       Sync cookie of consumer
        -d level        Debug level
        -f filename     Configuration file
        -F dir  Configuration directory
        -g group        Group (id or name) to run as
        -h URLs         List of URLs to serve
        -l facility     Syslog facility (default: LOCAL4)
        -n serverName   Service name
        -o <opt>[=val] generic means to specify options; supported options:
                slp[={on|off|(attrs)}] enable/disable SLP using (attrs)
        -r directory    Sandbox directory to chroot to
        -s level        Syslog level
        -u user         User (id or name) to run as
        -V              print version info (-VV exit afterwards, -VVV print
                        info about static overlays and backends)

Wie konnte das passieren?
Die Bash versucht den „*“ bei der IP Konfiguration aufzulösen. Also schützen wir die Sterne vor der Shell:

# /usr/local/openldap/libexec/slapd -h "ldap://*:389 ldaps://*:636" -F /usr/local/openldap/etc/openldap/slapd.d -u ldap -g ldap -l local4
# ps aux | grep slap
ldap     32589  0.1  0.2 1068476 2700 ?        Ssl  18:49   0:00 /usr/local/openldap/libexec/slapd -h ldap://*:389 ldaps://*:636 -F /usr/local/openldap/etc/openldap/slapd.d -u ldap -g ldap -l local4

Und wir haben das Configverzeichnis mit einer ersten Konfiguration befüllt.
Ab jetzt klappt der Start des Dienstes auch mit dem Start/Stop Script bzw. mit dem service-Befehl.

Category : Allgemein

Tags :

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.