Problem: LDAP Service Does Not Start

Problem

The LDAP service does not start on a server causing multiple issues.

Solution

Step 1 Identify the reason

An attempt to start the service manually through systemctl restart slapd does not succeed and journalctl -xe shows the following lines:

Mär 10 15:32:46 ucs slapd[30026]: @(#) $OpenLDAP: slapd  (Nov 26 2019 12:59:58) $
                                                    Debian OpenLDAP Maintainers <pkg-openldap-devel@lists.alioth.debian.org>
Mär 10 15:32:46 ucs slapd[30026]: Loaded metadata from "/usr/share/univention-management-console/saml/idp/ucs-sso.multi.ucs.xml
Mär 10 15:32:46 ucs1-backup3 slapd[30026]: /etc/ldap/slapd.conf: line 354: unknown style "16.100.96" in by clause
Mär 10 15:32:46 ucs1-backup3 slapd[30026]: <access clause> ::= access to <what> [ by <who> [ <access> ] [ <control> ] ]+

The later two lines indicate a syntax error in the configuration file of the service.

Step 2 rewrite configuration file

If the file has been modified manually, a rewrite through ucr commit /etc/ldap/slapd.conf should fix it.

Step 3

Check the configuration file manually.
Look for the mentioned line from step 1 and compare to a valid one in the same file:

   by peername.ip=ldap/acl/read/ips: 172.16.100.96 read
   by peername.ip=172.16.100.53 read

Note the additonal string "ldap/acl/read/ips: " in the above line which causes the service to fail.

Step 4 fix the ucr variable

Check the variables

ucr get ldap/acl/read/ips
ldap/acl/read/ips: ldap/acl/read/ips: 172.16.100.96,172.16.100.53,,172.16.100.212

The variable contains its own string where it should have only IP ranges.
ucr set ldap/acl/read/ips="172.16.100.96,172.16.100.53,,172.16.100.212"

Step 5 Start the service

Restart the service: systemctl restart slapd

Mastodon