Configure OpenLDAP: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
Lightweight Directory Access Protocol (LDAP) is often employed as an authentication mechanism, providing a common username and password across many different applications. This tutorial shows how to install and configure the OpenLDAP package on Alpine Linux. | Lightweight Directory Access Protocol (LDAP) is often employed as an authentication mechanism, providing a common username and password across many different applications. This tutorial shows how to install and configure the OpenLDAP package on Alpine Linux. | ||
Revision as of 21:05, 4 May 2022
Lightweight Directory Access Protocol (LDAP) is often employed as an authentication mechanism, providing a common username and password across many different applications. This tutorial shows how to install and configure the OpenLDAP package on Alpine Linux.
Installing Packages
There is an Alpine package for OpenLDAP. However, simply adding the openldap apk is not enough to get you up and running. You'll also need to install a backend database and some LDAP command-line tools.
Here's how:
apk add openldap openldap-back-mdb openldap-clients
But, before you start up the slapd service and go, there's a bit of configuration to do.
Customizing Configuration for OpenLDAP 2.3+
The Alpine OpenLDAP package can use either a configuration directory (slapd.d) or a configuration file (slapd.conf). Since OpenLDAP version 2.3, the preferred method is to use the slapd.d configuration directory. Any official OpenLDAP documentation, including their quickstart guide, will use this configuration method.
First, create the slapd.d directory with the proper ownership and permissions.
install -m 755 -o ldap -g ldap -d /etc/openldap/slapd.d
Next, edit the slapd startup configuration to use the directory instead of the file.
- Open up /etc/conf.d/slapd in your favorite editor
- Comment out cfgfile="/etc/openldap/slapd.conf"
- Uncomment cfgdir="/etc/openldap/slapd.d"
Finally, get rid of the included slapd.conf file.
rm /etc/openldap/slapd.conf
Open up /etc/openldap/slapd.ldif in your favorite editor. Search for the file names ending with .la
and change the extension to .so
Or, you can do...
sed -i s/\.la$/.so/g slapd.ldif
Customizing Configuration for Your Domain
Your LDAP domain can be the same as your DNS domain or it can be completely different. Whatever you choose, be sure to use the LDAP naming convention of dc=domain,dc=tld
rather than the dot separated DNS style of domain.tld
- Edit slapd.ldif again.
- Find the
olcSuffix:
keyword. - Change the value to match your domain
- Find
olcRootDN:
- Change the value to match your domain
Or, assuming your domain is 'contoso.com' you can do...
sed -i s/dc=my-domain,dc=com/dc=contoso,dc=com/g /etc/openldap/slapd.ldif
Import the Configuration
Before starting the slapd service, import the configuration into the backend database.
Use the slapadd
command like this:
slapadd -n 0 -F /etc/openldap/slapd.d -l /etc/openldap/slapd.ldif
There should be no errors, only a "Closing DB..." message.
Change ownership on the files or the slapd service will refuse to start.
chown -R ldap:ldap /etc/openldap/slapd.d/*
Configuring the slapd Service
The pid directory is missing. We'll need to create it or the service won't start.
install -m 755 -o ldap -g ldap -d /var/lib/openldap/run
Testing
The OpenLDAP quickstart guide uses the ldapsearch
utility to test the configuration.
ldapsearch -x -b -s base '(objectclass=*)' namingContexts
You should see your domain.
You can also test with slapcat
slapcat -n 0
This will dump the entire config database in LDIF format. You can also pipe to grep and specify your domain name to verify everything looks correct. When using grep, remember LDAP uses the format dc=domain,dc=com and not the more familiar domain.com.
Later, when you begin populating your LDAP database, you can use slapcat -n 1
to see your information. (Zero is the config database. Numbers above zero are user-defined databases.)
Finally, you can run netstat -tln
and look for LDAP port 389 in the output.
Next Steps
Before you can use LDAP for authentication, you'll need to populate the database with user information. You may also want to enable secure communications with TLSSTART or LDAPS. Refer to the OpenLDAP project documentation to learn how to do this.