OpenLDAP-2.6.4

Introduction à OpenLDAP

Le paquet OpenLDAP fournit une implémentation libre de Lightweight Directory Access Protocol (protocole d'accès au répertoire).

This package is known to build and work properly using an LFS 11.3 platform.

Informations sur le paquet

Téléchargements supplémentaires

Dépendances de OpenLDAP

Recommandées

Facultatives

GnuTLS-3.8.0, Pth-2.0.7, unixODBC-2.3.11, MariaDB-10.6.12 ou PostgreSQL-15.2 ou MySQL, OpenSLP, WiredTiger et Berkeley DB-5.3.28 (pour slapd, mais il est obsolète)

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/openldap

Installation de OpenLDAP

[Note]

Note

Si vous souhaitez installer seulement le client ldap*, les pages de manuel correspondantes, les bibliothèques et fichiers d'en-têtes (soit une installation comme « client-seul »), tapez ces commandes au lieu des autres suivantes (pas de suite de test disponible) :

patch -Np1 -i ../openldap-2.6.4-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static  \
            --enable-dynamic  \
            --enable-versioning=yes  \
            --disable-debug   \
            --disable-slapd &&

make depend &&
make

Ensuite, en tant qu'utilisateur root :

make install

Il doit y avoir un utilisateur et un groupe dédié pour prendre le contrôle du démon slapd après qu'il est démarré. Tapez les commandes suivantes en tant qu'utilisateur root :

groupadd -g 83 ldap &&
useradd  -c "OpenLDAP Daemon Owner" \
         -d /var/lib/openldap -u 83 \
         -g ldap -s /bin/false ldap

Installez OpenLDAP en exécutant les commandes suivantes :

patch -Np1 -i ../openldap-2.6.4-consolidated-1.patch &&
autoconf &&

./configure --prefix=/usr         \
            --sysconfdir=/etc     \
            --localstatedir=/var  \
            --libexecdir=/usr/lib \
            --disable-static      \
            --enable-versioning=yes \
            --disable-debug       \
            --with-tls=openssl    \
            --with-cyrus-sasl     \
            --without-systemd     \
            --enable-dynamic      \
            --enable-crypt        \
            --enable-spasswd      \
            --enable-slapd        \
            --enable-modules      \
            --enable-rlookups     \
            --enable-backends=mod \
            --disable-sql         \
            --disable-wt          \
            --enable-overlays=mod &&

make depend &&
make

Les tests semblent fragiles. Des erreurs peuvent faire que les tests s'arrêtent avant la fin, a priori à cause de problèmes de temps. Les tests prennent environ 65 minutes indépendamment du processeur. Pour tester les résultats, lancez : make test.

Maintenant, en tant qu'utilisateur root :

make install &&

sed -e "s/\.la/.so/" -i /etc/openldap/slapd.{conf,ldif}{,.default} &&

install -v -dm700 -o ldap -g ldap /var/lib/openldap     &&

install -v -dm700 -o ldap -g ldap /etc/openldap/slapd.d &&
chmod   -v    640     /etc/openldap/slapd.{conf,ldif}   &&
chown   -v  root:ldap /etc/openldap/slapd.{conf,ldif}   &&

install -v -dm755 /usr/share/doc/openldap-2.6.4 &&
cp      -vfr      doc/{drafts,rfc,guide} \
                  /usr/share/doc/openldap-2.6.4

Explication des commandes

--disable-static : Ce paramètre empêche l'installation des versions statiques des bibliothèques.

--disable-debug : Ce paramètre désactive le code de déboguage dans OpenLDAP.

--enable-dynamic : Ce paramètre oblige les bibliothèques OpenLDAP à se lier dynamiquement aux programmes de l'exécutable.

--enable-versionning : ce paramètre active le versionnage des symboles dans les bibliothèque d'OpenLDAP. Sans cela, certaines applications peuvent générer un avertissement à propos de symboles de versions manquants.

--enable-crypt : Ce paramètre active les mots de passe crypt(3).

--enable-spasswd : Ce paramètre active la vérification de mot de passe avec SASL.

--enable-modules : Ce paramètre active le support des modules dynamiques.

--enable-rlookups : Ce paramètre active les recherches inversées des noms d'hôte du client.

--enable-backends : Ce paramètre active toutes les back-end disponibles.

--enable-overlays : Ce paramètre active toutes les couches disponibles.

--disable-sql : Ce paramètre désactive explicitement le terminal sql. Ne mettez pas ce paramètre si un serveur SQL est installé et que vous l'utilisez.

--disable-wt : ce paramètre désactive explicitement le moteur Wiredtiger. Retirez ce paramètre si WiredTiger est installé et que vous allez utiliser un moteur WiredTiger.

--libexecdir=/usr/lib : Ce paramètre contrôle où le répertoire /usr/lib/openldap est installé. Ce répertoire ne contient que des bibliothèques, donc il est mieux dans /usr/lib au lieu de /usr/libexec.

--enable-slp : Ce paramètre active le support SLPv2. Utilisez ce paramètre si vous avez installé OpenSLP.

[Note]

Note

Vous pouvez lancer ./configure --help pour voir s'il y a d'autres paramètres que vous pouvez passer à la commande configure pour activer d'autres options ou d'autres paquets de dépendance.

install ..., chown ... et chmod ... : Avoir les fichiers de configuration slapd et les bases de données ldap dans /var/lib/openldap lisibles par tous est un PROBLÈME DE SÉCURITÉ, en particulier depuis qu'un fichier stocke les mots de passe admin en TEXTE BRUT. C'est pour cela que le mode 640 et le propriétaire root:ldap sont utilisés. Le propriétaire est root, donc seul root peut modifier le fichier, et le groupe est ldap, pour que le groupe à qui appartient le démon slapd puisse lire mais pas modifier le fichier dans le cas d'une faille de sécurité.

Configuration de OpenLDAP

Fichiers de configuration

  • Pour le client LDAP : /etc/openldap/ldap.conf et ~/.ldaprc

  • Pour le serveur LDAP, il y a deux mécanismes de configuration : un vieux fichier de configuration, /etc/openldap/slapd.conf et le système slapd-config recommandé qui utilise une base de données LDIF stockée dans /etc/openldap/slapd.d.

Informations sur la configuration

Configurer des serveurs slapd peut être complexe. Sécuriser le répertoire LDAP, en particulier si vous stocker des données privées comme une base de données de mots de passe, peut être également une tâche compliquée. Pour configurer OpenLDAP vous devrez modifier soit le fichier /etc/openldap/slapd.conf (l'ancienne méthode) soit le fichier /etc/openldap/slapd.ldif puis utiliser ldapadd pour créer la base de configuration LDAP dans /etc/openldap/slapd.d (méthode recommandée par la documentation d'OpenLDAP).

[Avertissement]

Avertissement

Les instructions précédentes installent une structure LDAP vide et un fichier /etc/openldap/slapd.conf par défaut, qui sont suffisants pour tester la construction et d'autres paquets utilisant LDAP. Ne les utilisez pas sur un serveur en production.

Parmi les ressources pour vous aider sur des sujets tels que le choix de configuration d'un répertoire, les définitions de la fondation et de la base de données, les paramètres du contrôle d'accès, l'exécution en tant qu'utilisateur différent de root et le paramétrage d'un environnement chroot, il y a :

Script de démarrage

Pour automatiser le démarrage du serveur LDAP au lancement du système, installez le script de démarrage /etc/rc.d/init.d/slapd inclus dans le paquet blfs-bootscripts-20230101 en utilisant la commande suivante :

make install-slapd
[Note]

Note

Vous devrez modifier le fichier /etc/sysconfig/slapd pour inclure les paramètres nécessaires à votre configuration spécifique. Voir les pages de man de slapd pour des informations de paramètre.

Tester la configuration

Démarrez le serveur LDAP en utilisant le script d'initialisation :

/etc/rc.d/init.d/slapd start

Vérifiez l'accès au serveur LDAP avec la commande suivante :

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

Le résultat attendu est :

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
#

#
dn:
namingContexts: dc=my-domain,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Contenu

Programmes installés: ldapadd, ldapcompare, ldapdelete, ldapexop, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch, ldapurl, ldapvc, ldapwhoami, slapacl, slapadd, slapauth, slapcat, slapd, slapdn, slapindex, slapmodify, slappasswd, slapschema et slaptest
Bibliothèques installées: liblber.so, libldap.so, et plusieurs dans /usr/lib/openldap
Répertoires installés: /etc/openldap, /{usr,var}/lib/openldap et /usr/share/doc/openldap-2.6.4

Descriptions courtes

ldapadd

ouvre une connexion sur un serveur LDAP, s'authentifie (bind) et ajoute les entrées

ldapcompare

ouvre une connexion sur un serveur LDAP, s'authentifie et effectue une comparaison en utilisant des paramètres spécifiés

ldapdelete

ouvre une connexion sur un serveur LDAP, s'authentifie et supprime une ou plusieurs entrées

ldapexop

exécute les opérations étendues de LDAP spécifiées par oid ou l'un des mots-clés spéciaux whoami, cancel, or refresh

ldapmodify

ouvre une connexion sur un serveur LDAP, s'authentifie et modifie des entrées

ldapmodrdn

ouvre une connexion sur un serveur LDAP, s'authentifie et modifie le RDN des entrées

ldappasswd

est un outil utilisé pour paramétrer le mot de passe d'un utilisateur LDAP

ldapsearch

ouvre une connexion sur un serveur LDAP, s'authentifie et effectue une recherche en utilisant des paramètres spécifiés

ldapurl

est une commande qui permet soit de composer soit de décomposer des URI LDAP

ldapvc

vérifie les identités LDAP

ldapwhoami

ouvre une connexion sur un serveur LDAP, s'authentifie et affiche des informations sur qui on est

slapacl

est utilisé pour vérifier le comportement de slapd en vérifiant l'accès aux répertoires de données par rapport aux directives de la liste des contrôles d'accès définies dans sa configuration

slapadd

est utilisé pour ajouter des entrées spécifiées au format d'échange de répertoire LDAP (LDIF) dans une base de données LDAP

slapauth

est utilisé pour vérifier le comportement de slapd dans le mappage des identités pour l'authentification et l'usage des autorisations, tel que spécifié dans in slapd.conf

slapcat

est utilisé pour justifier une sortie LDAP LDIF basée sur le contenu d'une base de données slapd

slapd

est le serveur LDAP autonome

slapdn

vérifie la liste des DNS représentée sous forme de chaîne basée sur une syntaxe de schéma

slapindex

est utilisé pour régénérer des index slapd basés sur le contenu actuel d'une base de données

slapmodify

modifie les entrées dans une base slapd

slappasswd

est un outil de mot de passe de OpenLDAP

slapschema

est utilisé pour vérifier le respect des schémas dans le contenu de la base de données slapd

slaptest

garde-fou du fichier slapd.conf

liblber.so

est un ensemble de routines de règles d'encodage de base légères. Ces routines sont utilisées par les routines de la bibliothèque LDAP pour encoder et décoder des éléments du protocole LDAP en utilisant les règles de l'encodage de base (légèrement simplifiées) définies par LDAP. Elles ne sont en général pas utilisées en principe par une application LDAP sauf dans la gestion des contrôles et des opérations étendues

libldap.so

supporte les programmes LDAP et offre des fonctionnalités pour d'autres programmes qui interagissent avec LDAP