Installation d'un serveur OpenLDAP

L'installation d'un serveur LDAP est désormais abordable sur des systèmes Linux relativement récent. Je décris, dans cet article, les différentes étapes afin de monter un premier serveur d'annuaire LDAP avec OpenLDAP 2.4.

Installation des paquets deb

Sous Ubuntu 10.10, l'installation est effectuée à l'aide de deux commandes:

$ sudo apt-get update
$ sudo apt-get install slapd ldap-utils

La dernière version supportée d'OpenLDAP sur Ubuntu est OpenLDAP 2.4.23. Le répertoire de configuration est /etc/ldap. A noter que sur les dernières version de Debian et Ubuntu, le serveur OpenLDAP est proposé par défaut avec une configuration au format LDIF.

Première configuration

La configuration d'OpenLDAP par l'intermédiaire du backend de configuration (au format LDIF) n'est pas aisé. Par ailleurs, les outils permettant de facilement manipuler cette base ne sont pas encore assez mature. Personnellement, j'utilise toujours le fichier de configuration texte, que je convertis ensuite vers le format de stockage du backend.

Voici un exemple de fichier de configuration /etc/ldap/slapd.conf:

#######################################################################
# Global Directives:

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

# Where the pid file is put. The init.d script will not stop the server if you change this.
pidfile         /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile        /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values
loglevel        none

# Where the dynamically loaded modules are stored
modulepath      /usr/lib/ldap
moduleload      back_hdb

# The maximum number of entries that is returned for a search operation
sizelimit 500

# The tool-threads parameter sets the actual amount of cpu's that is used for indexing.
tool-threads 1

#######################################################################
# Specific Backend Directives for hdb:
backend         hdb

#######################################################################
# Specific Directives for database #1, of type hdb:
database        hdb
suffix          "dc=example,dc=com"
directory       "/var/lib/ldap/dc=example,dc=com"

# The dbconfig settings are used to generate a DB_CONFIG file the first time slapd starts. They do NOT
# override existing an existing DB_CONFIG file.  You should therefore change these settings in DB_CONFIG
# directly or remove DB_CONFIG and restart slapd for changes to take effect.

# For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0

# Sven Hartge reported that he had to set this value incredibly high to get slapd running at all.
# See http://bugs.debian.org/303057 for more information.

# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500

# Indexing options for database #1
index           objectClass eq
index           uid,mail,cn,sn,givenName eq,pres,sub

# Save the time that the entry gets modified, for database #1
lastmod         on

# Checkpoint the BerkeleyDB database periodically in case of system failure and to speed slapd shutdown.
checkpoint      512 30

# The userPassword by default can be changed by the entry owning it if they are authenticated.
# Others should not be able to see it, except the admin entry below. These access lines apply
# to database #1 only
access to attrs=userPassword,shadowLastChange
        by dn="cn=admin,ou=system,dc=example,dc=com" write
        by anonymous auth
        by self write
        by * none

# Ensure read access to the base for things like supportedSASLMechanisms. Without this you may
# have problems with SASL not knowing what mechanisms are available and the like.
# Note that this is covered by the 'access to *' ACL below too but if you change that as people
# are wont to do you'll still need this if you want SASL (and possible other things) to work happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else can read everything.
access to *
        by dn="cn=admin,ou=system,dc=example,dc=com" write
        by * read

Ce fichier possède des permissions système restreintes:

$ sudo chmod 640 /etc/ldap/slapd.conf
$ sudo chown openldap:openldap /etc/ldap/slapd.conf

Le répertoire qui va contenir les données est /var/lib/ldap/dc=example,dc=com. Il n'existe pas encore, donc il faut le créer:

$ sudo mkdir -p /var/lib/ldap/dc=example,dc=com
$ sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=com
$ sudo chmod -R 750 /var/lib/ldap/dc=example,dc=com

Une fois la configuration paramétrée, éditez le fichier /etc/default/slapd pour y spécifier le paramètre de configuration suivant:

SLAPD_CONF=/etc/ldap/slapd.conf

Pour terminer, le service LDAP doit être redémarré:

$ sudo service slapd restart

Premières entrées LDAP

Le service LDAP est opérationnel, mais il ne contient aucune données. Le DIT - Directory Information Tree - est le nom donné à la structure initiale d'un annuaire LDAP. Il faut donc le créer.

Création du DIT

Pour commencer, je crées un fichier dans le répertoire /etc/ldap/init/initial-dit.ldif (si le répertoire n'existe pas, créez le), qui va contenir la définition du DIT de mon annuaire au format LDIF.

dn: dc=example,dc=com
objectClass: top
objectClass: organization
objectClass: dcObject
dc: example
o: example

dn: ou=applications,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: applications
description: applications accounts

dn: ou=groups,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: groups
description: groups

dn: ou=people,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: people
description: users account

dn: ou=system,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: system
description: system informations

dn: cn=admin,ou=system,dc=example,dc=com
objectClass: top
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: Administrator account
userPassword: {SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=

Pour générer le mot de passe du compte administrateur, j'ai utilisé la commande htpasswd (cf: outils du service Apache) comme indiqué ci-dessous. J'ai ensuite simplement copier/coller le résultat dans le fichier LDIF.

$ htpasswd -ns admin
New password: 
Re-type new password: 
admin:{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=

Mais encore mieux, OpenLDAP fournit un outil pour ça en considèrant par défaut l'algorithme SSHA (SHA + Seed):

$ slappasswd 
New password: 
Re-enter new password: 
{SSHA}UGIYlTRRaKWypiLYtVNQCFqy7j5uv7TB

Insertion des données

Une fois le fichier créé, il ne reste plus qu'à les insérer dans la base LDAP (avec au passage une petite ré-indexation rapide):

$ sudo service slapd stop
$ sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif
_#################### 100.00% eta   none elapsed            none fast!         
Closing DB...
$ sudo slapindex -f /etc/ldap/slapd.conf -b dc=example,dc=com
$ sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=com/*
$ sudo service slapd start

Une simple recherche LDAP permet de vérifier que le DIT a bien été initialisé:

$ ldapsearch -x -h ldap://localhost/ -b dc=example,dc=com

Conversion vers cn=config

OpenLDAP est packagé dans le système pour utiliser le backend de configuration cn=config. Pour faciliter l'installation, j'ai utilisé temporairement ici le traditionnel fichier de configuration slapd.conf. Mais, il est possible de migrer la configuration fichier vers le backend de configuration.

Il faut utiliser la commande slaptest, qui permet de convertir une configuration au format fichier vers une configuration au format cn=config:

$ sudo mv /etc/ldap/slapd.d /etc/ldap/slapd.d-default
$ sudo mkdir /etc/ldap/slapd.d
$ sudo chmod 750 /etc/ldap/slapd.d
$ sudo slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d
config file testing succeeded
$ sudo chown -R openldap:openldap /etc/ldap/slapd.d

Si tout se passe bien, il suffit à présent d'éditez de nouveau le fichier /etc/default/slapd pour laisser à vide le paramètre de configuration suivant:

SLAPD_CONF=

Le service LDAP doit être redémarré pour utiliser à présent le backend de configuration:

$ sudo service slapd restart

Articles et livres conseillés

Discussion

, 06/07/2011, 00:43

Bonsoir,

J'ai suivi votre tuto à la lettre (enfin je pense!) et au redémarrage de slapd il me met : sed: impossible de lire /etc/ldap/slapd.d/cn=config.ldif: Aucun fichier ou dossier de ce type. Ma config Ubuntu 11.04 Openldap dernière version

, 06/07/2011, 11:08

Bonjour,

Est-ce que la configuration au format texte a fonctionné ? Si oui, il s'agit d'un problème de conversion vers cn=config, car le fichier slapd.d/cn=config.ldif semble ne pas exister. Et dans ce cas, peut être pouvez-vous m'indiquer précisément l'erreur lors de la conversion ?

Merci pour votre retour, il va contribuer à actualiser cet article pour Ubuntu 11.04 :)

, 07/07/2011, 01:04

Après l'installation des paquets sudo apt-get update sudo apt-get install slapd ldap-utils je vérifie l'existence du fichier /etc/ldap/slapd.conf, manuellement raccourcis/Poste de travail/Système de fichier/etc/ldap/ Le fichier slapd.conf n'y est pas

Je créé le fichier Je lance dans la console Alt + F2  = gksu gedit /etc/ldap/slapd.conf Je copie l'exemple de fichier de configuration /etc/ldap/slapd.conf de votre procédure Je le colle dans slapd.conf, j'enregistre et je le ferme.

- Ce fichier possède des permissions système restreintes:

j'ouvre un terminal et je lance les commandes :

sudo chmod 640 /etc/ldap/slapd.conf


hossec@ubuntu:~$ sudo chmod 640 /etc/ldap/slapd.conf

[sudo] password for hossec:

hossec@ubuntu:~$


sudo chown openldap:openldap /etc/ldap/slapd.conf


hossec@ubuntu:~$ sudo chmod 640 /etc/ldap/slapd.conf

[sudo] password for hossec:

hossec@ubuntu:~$ sudo chown openldap:openldap /etc/ldap/slapd.conf

hossec@ubuntu:~$


- Le répertoire qui va contenir les données est /var/lib/ldap/dc=example,dc=com. Il n'existe pas encore, donc il faut le créer:

sudo mkdir -p /var/lib/ldap/dc=example,dc=com sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=com sudo chmod -R 750 /var/lib/ldap/dc=example,dc=com


hossec@ubuntu:~$ sudo chmod 640 /etc/ldap/slapd.conf

[sudo] password for hossec:

hossec@ubuntu:~$ sudo chown openldap:openldap /etc/ldap/slapd.conf

hossec@ubuntu:~$ sudo mkdir -p /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$ sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=comhossec@ubuntu:~$ sudo chmod -R 750 /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$


Une fois la configuration paramétrée, éditez le fichier /etc/default/slapd pour y spécifier le paramètre de configuration suivant:

SLAPD_CONF=/etc/ldap/slapd.conf Je lance dans la console Alt + F2  = gksu gedit /etc/default/slapd

J'ajoute à SLAPD_CONF= ”/etc/ldap/slapd.conf ” (j'y met des guillemets, toutes les lignes ont des guillemets comme SLAPD_USER=“openldap” etc.)

j'enregistre et je ferme

Pour terminer, le service LDAP doit être redémarré:

sudo service slapd restart


hossec@ubuntu:~$ sudo chmod 640 /etc/ldap/slapd.conf

[sudo] password for hossec:

hossec@ubuntu:~$ sudo chown openldap:openldap /etc/ldap/slapd.conf

hossec@ubuntu:~$ sudo mkdir -p /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$ sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=comhossec@ubuntu:~$ sudo chmod -R 750 /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$ sudo service slapd restart

* Stopping OpenLDAP slapd [ OK ]

* Starting OpenLDAP slapd [ OK ]

hossec@ubuntu:~$


Premières entrées LDAP Le service LDAP est opérationnel, mais il ne contient aucune données. Le DIT - Directory Information Tree - est le nom donné à la structure initiale d'un annuaire LDAP. Il faut donc le créer. Création du DIT Pour commencer, je crées un fichier dans le répertoire /etc/ldap/init/initial-dit.ldif (si le répertoire n'existe pas, créez le), qui va contenir la définition du DIT de mon annuaire au format LDIF.

Je créé un répertoire init (qui n'existe pas encore, j'ai vérifié)

sudo mkdir /etc/ldap/init/


hossec@ubuntu:~$ sudo chmod 640 /etc/ldap/slapd.conf

[sudo] password for hossec:

hossec@ubuntu:~$ sudo chown openldap:openldap /etc/ldap/slapd.conf

hossec@ubuntu:~$ sudo mkdir -p /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$ sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=comhossec@ubuntu:~$ sudo chmod -R 750 /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$ sudo service slapd restart

* Stopping OpenLDAP slapd [ OK ]

* Starting OpenLDAP slapd [ OK ]

hossec@ubuntu:~$ sudo mkdir /etc/ldap/init/

hossec@ubuntu:~$


Je lance dans la console Alt + F2  = gksu gedit /etc/ldap/init/initial-dit.ldif

Je copie le contenu du fichier LDIF et je le colle dans mon fichier LDIF (je changerai le mot de passe dans le fichier plus bas)

Pour générer le mot de passe du compte administrateur, j'ai utilisé la commande htpasswd (cf: outils du service Apache) comme indiqué ci-dessous. J'ai ensuite simplement copier/coller le résultat dans le fichier LDIF.

htpasswd -ns admin New password: Re-type new password: admin:{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc= mon mot de passe que je n'oublie pas de changer dans mon fichier LDIF


hossec@ubuntu:~$ sudo chmod 640 /etc/ldap/slapd.conf

[sudo] password for hossec:

hossec@ubuntu:~$ sudo chown openldap:openldap /etc/ldap/slapd.conf

hossec@ubuntu:~$ sudo mkdir -p /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$ sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=comhossec@ubuntu:~$ sudo chmod -R 750 /var/lib/ldap/dc=example,dc=com

hossec@ubuntu:~$ sudo service slapd restart

* Stopping OpenLDAP slapd [ OK ]

* Starting OpenLDAP slapd [ OK ]

hossec@ubuntu:~$ sudo mkdir /etc/ldap/init/

hossec@ubuntu:~$ htpasswd -ns admin

Le programme 'htpasswd' peut être trouvé dans les paquets suivants :

* apache2-utils

* mini-httpd

Essayez : sudo apt-get install <paquet sélectionné>

hossec@ubuntu:~$


J'installe les paquets apache2-utils

sudo apt-get install apache2-utils


je relance la modification du mot de passe

hossec@ubuntu:~$ htpasswd -ns admin

New password:

Re-type new password:

admin:{SHA}Od+lUoMxjTGv5aP/Sg4yU+IEXkM= je remet mon mot de passe dans mon fichier LDIF, j'enregistre et je ferme

hossec@ubuntu:~$


Insertion des données Une fois le fichier créé, il ne reste plus qu'à les insérer dans la base LDAP (avec au passage une petite ré-indexation rapide): sudo service slapd stop


hossec@ubuntu:~$ sudo service slapd stop

* Stopping OpenLDAP slapd [ OK ]

hossec@ubuntu:~$


Je dois réaligner cette ligne de code (peut être à cause du copier/coller)car en copier coller ça ne passe pas

sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif _#################### 100.00% eta none elapsed none fast! Closing DB…


hossec@ubuntu:~$ sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif

_#################### 100.00% eta none elapsed none fast!

Closing DB…

hossec@ubuntu:~$ _#################### 100.00% eta none elapsed none fast!

_#################### : commande introuvable

hossec@ubuntu:~$ Closing DB…


sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif_#################### 100.00% eta none elapsed none fast!Closing DB…


hossec@ubuntu:~$ sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif_#################### 100.00% eta none elapsed none fast!Closing DB…

sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif_#################### 100.00% eta none elapsed none fastClosing DB… DB…

usage: slapadd [-v] [-d debuglevel] [-f configfile] [-F configdir] [-o <name>[=<value>]] [-c]

[-g] [-n databasenumber | -b suffix]
[-l ldiffile] [-j linenumber] [-q] [-u] [-s] [-w]

hossec@ubuntu:~$


Je lance les autres ligne dans le terminal

sudo slapindex -f /etc/ldap/slapd.conf -b dc=example,dc=com


hossec@ubuntu:~$ sudo slapindex -f /etc/ldap/slapd.conf -b dc=example,dc=com

WARNING!

Runnig as root!

There's a fair chance slapd will fail to start.

Check file permissions!

hossec@ubuntu:~$


sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=com/*(je retire * de cette ligne)


hossec@ubuntu:~$ sudo chown -R openldap:openldap /var/lib/ldap/dc=example,dc=com/

hossec@ubuntu:~$


sudo service slapd start


hossec@ubuntu:~$ sudo service slapd start

* Starting OpenLDAP slapd [ OK ]

hossec@ubuntu:~$

———————————————————————————————————————— Une simple recherche LDAP permet de vérifier que le DIT a bien été initialisé: ldapsearch -x -h ldap://localhost/ -b dc=example,dc=com


hossec@ubuntu:~$ ldapsearch -x -h ldap://localhost/ -b dc=example,dc=com

Could not create LDAP session handle for URI=ldap://ldap:%2F%2Flocalhost%2F (-9): Bad parameter to an ldap routine

hossec@ubuntu:~$


Conversion vers cn=config OpenLDAP est packagé dans le système pour utiliser le backend de configuration cn=config. Pour faciliter l'installation, j'ai utilisé temporairement ici le traditionnel fichier de configuration slapd.conf. Mais, il est possible de migrer la configuration fichier vers le backend de configuration. Il faut utiliser la commande slaptest, qui permet de convertir une configuration au format fichier vers une configuration au format cn=config:

je lance les commandes dans le terminal

sudo mv /etc/ldap/slapd.d /etc/ldap/slapd.d-default sudo mkdir /etc/ldap/slapd.d sudo chmod 750 /etc/ldap/slapd.d sudo slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d config file testing succeeded sudo chown -R openldap:openldap /etc/ldap/slapd.d


hossec@ubuntu:~$ sudo mv /etc/ldap/slapd.d /etc/ldap/slapd.d-default

hossec@ubuntu:~$ sudo mkdir /etc/ldap/slapd.d

hossec@ubuntu:~$ sudo chmod 750 /etc/ldap/slapd.d

hossec@ubuntu:~$ sudo slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d config file testing succeeded

usage: slaptest [-v] [-d debuglevel] [-f configfile] [-F configdir] [-o <name>[=<value>]] [-n databasenumber] [-u]

hossec@ubuntu:~$ sudo chown -R openldap:openldap /etc/ldap/slapd.d

hossec@ubuntu:~$


Si tout se passe bien, il suffit à présent d'éditez de nouveau le fichier /etc/default/slapd pour laisser à vide le paramètre de configuration suivant: SLAPD_CONF= Je lance dans la console Alt + F2  = gksu gedit /etc/default/slapd et je vide la ligne SLAPD_CONF=/etc/ldap/slapd.conf en SLAPD_CONF=, j'enregistre et je ferme

Le service LDAP doit être redémarré pour utiliser à présent le backend de configuration:

je lance dans le terminal la commande sudo service slapd restart


hossec@ubuntu:~$ sudo service slapd restart

sed: impossible de lire /etc/ldap/slapd.d/cn=config.ldif: Aucun fichier ou dossier de ce type

hossec@ubuntu:~$


Si je ne vide pas la ligne SLAPD_CONF=/etc/ldap/slapd.conf


hossec@ubuntu:~$ sudo service slapd restart

* Stopping OpenLDAP slapd [ OK ]

* Starting OpenLDAP slapd [ OK ]

hossec@ubuntu:~$


Désolé pour la longeur, mais étant néophyte sous linux j'ai préféré vous donner l'ensemble des éléments que j'ai suivie si ça peut aider. Bonne nuit hossec

PS: dans quel repertoire je dois trouver slapd.d/cn=config.ldif?

, 07/07/2011, 10:54

Plusieurs remarques:

1/ Pourquoi ne pas avoir utilisé la commande slappasswd pour générer le mot de passe ?

2/ Il y a une erreur sur une commande slapadd, mais je n'arrive pas à la discerner dans le message: elle retourne l'aide de la commande.

3/ Il y a une erreur ici:

hossec@ubuntu:~$ ldapsearch -x -h ldap://localhost/ -b dc=example,dc=com
Could not create LDAP session handle for URI=ldap://ldap:%2F%2Flocalhost%2F (-9): Bad parameter to an ldap routine

L'URI n'est pas bonne, mauvais copier/coller.

4/ Idem que 2 sur une commande slaptest qui convertit le fichier slapd.conf en répertoire slapd.d: l'aide de la commande est retournée. Il semblerait donc qu'elle n'ait pas fonctionné, et que le répertoire slapd.d ne soit donc pas créé. Selon moi (mais je peux me tromper), il s'agit probablement d'un mauvais copier/coller ici aussi.

, 07/07/2011, 11:11

1/ effectivement la première fois j'avais utilisé slappasswd pour générer le mot de passe, j'ai du oublié hier soir… 2/ vous indiquer une erreur sur slapadd, je suppose que c'est à la ligne de Je dois réaligner cette ligne de code (peut être à cause du copier/coller)car en copier coller ça ne passe pas , le copier/coller est délicat et un seul espace en trop implique certainement une erreur. Pourriez vous m'envoyer par mail cette commande. 3/l'erreur sur l'URL, est ce que je dois paramétrer le serveur mandataire en localhost? ou est ce autre chose…

Merci

J'essaierai ce soir

hossec

, 07/07/2011, 14:39

2/ Non non, je discerne bien dans votre billet qqch comme ceci:

usage: slapadd [-v] [-d debuglevel] [-f configfile] [-F configdir] [-o <name>[=<value>]] [-c]
[-g] [-n databasenumber | -b suffix]
[-l ldiffile] [-j linenumber] [-q] [-u] [-s] [-w]

Cela signifie que la commande slapadd n'est pas correct. Peut être l'utilisation de mauvais paramètres ? Une confusion minuscule/majuscule ? Un mauvais copier/coller (et dans ce cas, retaper la commande à la main serait sûrement plus rapide que de vous l'envoyer par mail) ?

3/ Oui, en localhost, mais sans les %20 que je vois (ce qui signifie qu'il y a un espace en trop). Encore une fois, je pense que le copier/coller ne fonctionne pas, et vous conseillerez plutôt de retaper les commandes directement.

Après tout ceci, il est possible que j'ai laissé une erreur par inattention dans cet article.

, 08/07/2011, 00:45

Bonsoir,

Pour commencer j'ai préalablement créer le fichier /etc/ldap/slapd.d/cn=config.ldif avec la commande Alt F2 gksu gedit /etc/ldap/slapd.d/cn=config.ldif

J'ai tenté de stopper slap avec la commande sudo service slapd stop dans un terminal pour reprendre la procédure.


hossec@ubuntu:~$ sudo service slapd stop

[sudo] password for hossec:

* The pidfile for slapd has not been specified

hossec@ubuntu:~$


Echec, Je relance donc dans la console Alt + F2  = gksu gedit /etc/default/slapd J'ajoute à SLAPD_CONF= ”/etc/ldap/slapd.conf ” (j'y met des guillemets, toutes les lignes ont des guillemets comme SLAPD_USER=“openldap” etc.) j'enregistre et je ferme. Je stoppe slap avec la commande sudo service slapd stop dans un terminal pour reprendre la procédure. C'est ok, ça marche je retape maintenant manuellement les commandes suivantes (en espérant avoir respecter les espaces…)

sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif _#################### 100.00% etanone elapsed none fast! Closing DB…


hossec@ubuntu:~$ sudo slapadd -f /etc/ldap/slapd.conf -b dc=example,dc=com -l /etc/ldap/init/initial-dit.ldif _#################### 100.00% etanone elapsed none fast! Closing DB…

[sudo] password for hossec:

usage: slapadd [-v] [-d debuglevel] [-f configfile] [-F configdir] [-o <name>[=<value>]] [-c]

[-g] [-n databasenumber | -b suffix]
[-l ldiffile] [-j linenumber] [-q] [-u] [-s] [-w]

hossec@ubuntu:~$


je pense qu'il y a une difficulté sur cette ligne, j'ai un message usage :……………. je ne sais pas l'interpréter. Je ne pense pas que je doive aller plus loin, normalement il ne devrait y avoir aucun message après avoir mis cette ligne dans le terminal, comme pour les autres ?

Par ailleurs il me vient à l'esprit que maintenant que le fichier /etc/ldap/slapd.d/cn=config.ldif est créer si vous pouviez me donner le résultat du votre je pourrais le compléter, actuellement il existe vide ?

Voilà ma reflexion pour ce soir.

Merci d'avance

hossec.

PS :mon objectif est de créer un serveur d'annuaire LDAP pour authentifier les utilisateurs via un proxy transparent squid avec les Iptables. Squid ne permet pas l'authentification en mode transparent ce qui oblige de paramétrer l'adresse du proxy dans le navigateur. Je gère un petit EPN pour une petite association.

, 08/07/2011, 12:02

Il ne faut pas créer le fichier cn=config.ldif, uniquement le répertoire slapd.d. Ensuite, il n'y a pas que ce fichier qui est généré lors du passage de slapd.conf à cn=config, il y a aussi les schémas, les descriptions de databases LDAP, et les paramètres OpenLDAP, etc. Tous ces fichiers sont très volumineux, et peu lisibles pour un novice.

Pour l'erreur au chargement du service LDAP, je pense que ça peut venir d'un espace qui s'est glissé dans le fichier de configuration. Le plus simple est que vous m'envoyez tout vos fichiers de conf (ceux concernés dans cet article: /etc/ldap/slapd.conf, /etc/default/slapd, le fichier init, etc.) par mail, j'y jetterais un coup d'oeil. Je ferais un résumé en commentaire de cet article.

Et puis effectivement, si l'aide (l'usage) est affiché, alors la commande n'est pas correcte. Mais je ne vois pas d'où ça peut provenir, les options étant correctes.

Entrer votre commentaire
Si vous ne pouvez déchiffrer le code, téléchargez ce fichier .wav pour l'entendre.