Il est facile d’installer OpenLDAP sous Ubuntu, en suivant les instructions données par exemple sur openldap-server.html. Le seul soucis est que la version de OpenLDAP proposée est généralement une version stable (ici, il s’agit de la 2.4.23), et vous avez parfois envie de disposer de la toute dernière version. De plus, la version packagée dépend également de versions de composants également anciens (BDB 4.8 au lieu de 5.1.25, OpenSSL 0.9.8o au lieu de 1.0.0d, etc)
Voici un mode d’emploi décrivant la compilation des toutes dernières versions de chacun des composants nécessaires.
1 ) Prérequis
Il faut vérifier de la disponibilité des outils nécessaires à la compilation des composants. En voici la liste :
- Gnu GCC
- ld
- make
- libperl (si vous décidez de lancer les tests)
2 ) Système
On va créer un utilisateur dédié, openldap, appartenant au même groupe :
$ sudo /usr/sbin/groupadd -g 55 openldap $ sudo /usr/sbin/useradd -u 55 -g 55 -d /home/openldap -s /bin/bash openldap
(ici, le numéro du user et du groupe a été arbitrairement fixé à 55, vous sélectionnerez la valeur adaptée, ou demanderez à l’administrateur système de vous créer ce user)
3 ) Chemins d’installation
On installera les composants dans le répertoire /opt/ldap.
Les composants seront stockés et la compilation sera effectuée dans le home directory du user openldap, dans lequel on créera deux sous répertoires :
- /home/openldap/packages
- /home/openldap/install
4 ) Sources
Ensuite, il faut récupérer les sources des composants suivants :
- BerkeleyDB 5.1.25 (il vous faudra un compte chez Oracle pour y accéder)
- OpenSSL 1.0.0d
- CyrusSASL 2.1.23
- OpenLDAP 2.4.24
Ces packages seront téléchargés dans le répertoire /home/openldap/packages.
5 ) Compilation de OpenSSL
Voici les commandes à utiliser :
# su – openldap $ pwd /home/openldap $ cd install $ tar xzpf ../packages/openssl-1.0.0d.tar.gz $ cd openssl-1.0.0d $ ./Configure shared \ --prefix=/opt/ldap/openssl-1.0.0d \ --openssldir=/opt/ldap/openssl-1.0.0d \ threads \ linux-generic32 $ make depend $ make $ make test $ sudo make install $ sudo chown -R openldap.openldap /opt/ldap/openssl-1.0.0d $ cd .. $ rm -rf openssl-1.0.0d
Cette version de OpenSSL sera désormais celle qui sera utilisée dans la compilation des composants suivants.
6 ) Compilation de CysrusSASL
Voici les commandes à utiliser :
<note>On est obligé de lancer la commande make deux fois de suite, un bug dans le build génère une erreur lors du premier lancement</note>
# su – openldap $ pwd /home/openldap $ cd install $ tar xzpf ../packages/cyrus-sasl-2.1.23.tar.gz $ cd cyrus-sasl-2.1.23 $ CFLAGS="-O2" ./configure \ --enable-static \ --without-des \ --without-saslauthd \ --enable-gssapi=/usr/kerberos/ \ --with-openssl=/opt/ldap/openssl-1.0.0d \ --prefix=/opt/ldap/cyrusSASL-2.1.23 $ make all $ make $ sudo make install $ sudo chown -R openldap.openldap /opt/ldap $ cd .. $ rm -rf cyrus-sasl-2.1.23
7 ) Compilation de BerkeleyDB
Voici les commandes à utiliser :
# su – openldap $ pwd /home/openldap $ cd install $ tar xzpf ../packages/db-5.1.25.tar.gz $ cd db-5.1.25 $ cd build_unix $ ../dist/configure \ --prefix=/opt/ldap/db-5.1.25 \ --with-mutex=POSIX/pthreads $ make $ sudo make install $ sudo chown -R openldap.openldap /opt/ldap $ cd ../.. $ rm -rf db-5.1.25
8 ) Compilation de OpenLDAP
Il nous reste à compiler OpenLDAP, en utilisant les composants que l’on vient de construire. Voici les commandes à utiliser :
<note>Les options utilisées peuvent être modifiées en fonction des besoins</note>
# su – openldap $ pwd /home/openldap $ cd install $ tar xzpf ../packages/openldap-2.4.24.tgz $ cd openldap-2.4.24 $ export CPPFLAGS="-I/opt/ldap/db-5.1.25/include -I/opt/ldap/openssl-1.0.0d/include -I/opt/ldap/cyrusSASL-2.1.23/include" $ export LDFLAGS="-L/opt/ldap/db-5.1.25/lib -L/opt/ldap/openssl-1.0.0d/lib -L/opt/ldap/cyrusSASL-2.1.23/lib" $ export LD_LIBRARY_PATH="/opt/ldap/db-5.1.25/lib:/opt/ldap/openssl-1.0.0d/lib:/opt/ldap/cyrusSASL-2.1.23/lib" $ ./configure \ --prefix=/opt/ldap/openldap-2.4.24/ \ --sysconfdir=/opt/ldap/openldap-2.4.24/etc \ --localstatedir=/var/ldap \ --enable-debug=yes \ --enable-syslog=yes \ --enable-proctitle=yes \ --enable-ipv6=yes \ --enable-local=yes \ --enable-slapd=yes \ --enable-dynacl=yes \ --enable-aci=yes \ --enable-cleartext=yes \ --enable-crypt=yes \ --enable-spasswd=yes \ --enable-rewrite=yes \ --enable-bdb=yes \ --enable-hdb=yes \ --enable-monitor=yes \ --enable-overlays=yes \ --with-cyrus-sasl=yes \ --with-tls=openssl \ --with-threads=yes $ make depend $ make $ make test $ sudo make install $ sudo chown -R openldap.openldap /opt/ldap $ cd .. $ rm -rf openldap-2.4.24
Cela clôt la description de la compilation de OpenLDAP, il reste à configurer le serveur pour qu’il puisse être utilisable.