OpenLDAP Installation and Configuration
In this guide, we will attempt to show you how to install and configure OpenLDAP ready for use as an authentication method for both Apache and PAM.
There are some pre-requisites that should be also considered and these are listed in the table below (Items 1 -3).
You should really read through this guide in it's entirety before proceeding to complete any of these steps below.
Required Software :
| 
										 Install Order  | 
									
										 Product  | 
									
										 
  | 
									
										 Version Used  | 
									
										 
  | 
									
										 Download URL  | 
									
										 
  | 
									
										 Description  | 
								
| 
										 1.  | 
									
										 Libtool  | 
									
										 
  | 
									
										 1.5.22  | 
									
										 
  | 
									
										 http://www.gnu.org/software/libtool/libtool.html  | 
									
										 
  | 
									
										 Library tool extensions  | 
								
| 
										 2.  | 
									
										 Berkeley DB  | 
									
										 
  | 
									
										 4.4.20  | 
									
										 
  | 
									
										 http://www.sleepycat.com/  | 
									
										 
  | 
									
										 Berkeley Database v4  | 
								
| 
										 3.  | 
									
										 OpenSSL  | 
									
										 
  | 
									
										 0.9.8b  | 
									
										 
  | 
									
										 http://www.openssl.org  | 
									
										 
  | 
									
										 SSL Extensions  | 
								
| 
										 4.  | 
									
										 OpenLDAP  | 
									
										 
  | 
									
										 2.3.24  | 
									
										 
  | 
									
										 http://www.openldap.org/software/download/  | 
									
										 
  | 
									
										 LDAP Server  | 
								
N.B. First download and extract these packages. In this document we will use /home/downloads/ as our central location (you can use whatever you like)
Package Building
Each package needs a little configuration before building. We will guide you through each of these as we go on. Remember, when running 'make install', you must be root to run that command.
LibTool :
cd libtool-version       (Where version is the version that you downloaded)
./configure              (There is no need to specify anything here, unless you want to deviate from the defaults)
make  
make install             ('make install' will install all the files in '/usr/local/bin', '/usr/local/lib') 
						Berkeley DB :
cd db-version/build_unix (Where db-version is the version that you downloaded) ../dist/configure (We run the build script from this location so that the script knows what platform we are on) make (This can take 5 - 10 mins) make install (This will install the files in the local default directory of /usr/local/BerkeleyDB.4.4)
OpenSSL :
cd openssl-version (Where OpenSSL-version is the version you downloaded) ./config --prefix=/usr/local/openssl/ (This tells the config script to install in the specified directory) make make test make install (This will install the files in the directory specified in the ./config script)
OpenLDAP :
cd openldap-version (Where openldap-version is the version you downloaded) ./configure --enable-syslog --enable-slapd --enable-cleartext --enable-crypt --disable-sql --enable-ldap --with-tls make depend make make test (This step can take as long as 1hr, depending on system performance.) make install
Configuring Applications
Now you need to edit the slapd.conf file in /usr/local/etc/openldap/ making sure that the following entries are present.
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/nis.schema
include         /usr/local/etc/openldap/inetorgperson.schema
schemacheck     on
pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd.args
loglevel        0
modulepath      /usr/local/lib
moduleload      back_bdb
backend         bdb
checkpoint 512 30
database        bdb
suffix          "dc=mydomain,dc=com"
directory       "/var/lib/ldap"
index           objectClass eq
lastmod         on
access to attrs=userPassword
        by dn="cn=admin,dc=mydomain,dc=com" write
        by anonymous auth
        by self write
        by * none
access to dn.base="" by * read
        by dn="cn=admin,dc=mydomain,dc=com" write
        by * read
						You now have a very basic configuration for LDAP to work from. You obviously should set the paths to whatever you need, remembering to substitute the ones in this guide accordingly.