Installer un serveur openldap

Introduction

Aujourd’hui nous allons installer un serveur openldap sur un serveur debian.

Cette procédure a été testée sur les distributions suivantes :

  • squeeze (arm)
  • wheezy (arm)
  • jessie (arm)

Les sources sont accessibles ici :

Setting up an LDAP server with OpenLDAP
Configuring OpenLDAP with SSL/TLS on Debian

Installation et configuration de base

On installe le paquet debian correspondant au serveur openldap :

aptitude install slapd

Il est toujours possible de reconfigurer le serveur en éxecutant la commande suivante :

dpkg-reconfigure slapd

Mot de passe administrateur

étape n°1 de l'assistant d'installation OpenLdap étape n°1 de l’assistant d’installation OpenLdap

Stockage des données

Par défaut la base de données correspondant à l’arbre LDAP est créée dans :

/var/lib/ldap

Installation des utilitaires LDAP

On installe le paquet debian correspondant aux utilitaires de configuration du serveur OpenLdap :

aptitude install ldap-utils

Modification de l’index

Dans un premier temps, il convient de modifier les index par défaut. Pour ce faire, nous allons créer le fichier ldif suivant :

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: cn pres,sub,eq
-
add: olcDbIndex
olcDbIndex: sn pres,sub,eq
-
add: olcDbIndex
olcDbIndex: uid pres,sub,eq
-
add: olcDbIndex
olcDbIndex: displayName pres,sub,eq
-
add: olcDbIndex
olcDbIndex: default sub
-
add: olcDbIndex
olcDbIndex: uidNumber eq
-
add: olcDbIndex
olcDbIndex: gidNumber eq
-
add: olcDbIndex
olcDbIndex: mail,givenName eq,subinitial
-
add: olcDbIndex
olcDbIndex: dc eq

que nous chargerons à l’aide de la commande suivante :

ldapmodify -Y EXTERNAL -H ldapi:/// -f ./fichier.ldif

Droits d’accès

Ensuite nous souhaitons autoriser les utilisateurs à modifier la valeur des attributs loginshell et gecos de leur propre compte. Pour ce faire, nous allons créer le fichier ldif suivant :

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {1}to attrs=loginShell,gecos
by dn="cn=admin,dc=example,dc=com" write
by self write
by * read

que nous chargerons à l’aide de la commande suivante :

ldapmodify -Y EXTERNAL -H ldapi:/// -f ./fichier.ldif

Configurer LDAPS

Il faut d’abord activer le support du port ldaps dans le fichier /etc/default/slapd :

SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///"

ll faut ensuite configurer les certificats (et l’autorité de certification) dans la configuration du service slapd.Pour ce faire, nous allons créer le fichier ldif suivant :

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-

nadd: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/server-key.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/server-cert.pem

On redémarre ensuite le service slapd :

/etc/init.d/slapd restart

Puis on vérifie que le service slapd écoute bien sur les deux ports :

netstat -tunlp | grep slapd
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 2462/slapd
tcp 0 0 127.0.0.1:389 0.0.0.0:* LISTEN 2462/slapd
Proudly powered by Pelican, which takes great advantage of Python.