Dans ce tutoriel, nous allons voir comment installer et configurer le serveur OpenLDAP sur Debian 11. Nous installerons également l’outil de gestion en ligne LDAP Account Manager.
Qu’est-ce qu’OpenLDAP
OpenLDAP est un serveur d’annuaire rapide et open-source qui fournit aux clients du réseau des services d’annuaire. Les applications clientes se connectent au serveur OpenLDAP en utilisant le protocole LDAP (Lightweight Directory Access Protocol) pour accéder aux informations organisationnelles stockées sur ce serveur. Avec l’accès approprié, les clients peuvent rechercher dans l’annuaire, modifier et manipuler les enregistrements de l’annuaire. OpenLDAP est efficace à la fois pour lire et modifier les données de l’annuaire.
Les serveurs OpenLDAP sont le plus souvent utilisés pour fournir une gestion centralisée des comptes utilisateurs. Par exemple, vous pouvez créer un compte dans OpenLDAP et s’il est connecté à un serveur de messagerie, un serveur FTP, un serveur Samba ou tout autre serveur, vous pouvez utiliser ce compte pour vous connecter à ces serveurs sans créer un nouveau compte pour chaque serveur.
OpenLDAP est considéré comme léger par rapport au service d’annuaire X.500. LDAP v3 ne comporte que 9 opérations de base et offre un modèle plus simple pour les programmeurs et les administrateurs.
Étape 1 : Installer le serveur OpenLDAP sur Debian 11
Exécutez la commande suivante pour installer le serveur OpenLDAP et les utilitaires de ligne de commande du client à partir du dépôt de paquets de Debian 11. slapd
signifie Stand-Alone LDAP Daemon.
sudo apt install slapd ldap-utils
Il vous sera demandé de définir un mot de passe pour l’entrée admin dans l’annuaire LDAP.
- Nom de domaine DNS: Entrez votre nom de domaine comme
linuxbabe.com
. Vous devrez définir un enregistrement A correct pour votre nom de domaine. Vous pouvez également utiliser un sous-domaine commedirectory.linuxbabe.com
. Ces informations sont utilisées pour créer le DN de base (distinguished name) du répertoire LDAP.
- Nom de l’organisation: Entrez le nom de votre organisation comme LinuxBabe.
- Mot de passe administrateur: Entrez le même mot de passe que celui défini lors de l’installation.
- Base de données à utiliser : MDB.
- BDB (Berkeley Database) est lent et encombrant. Elle est dépréciée et son support sera abandonné dans les futures versions d’OpenLDAP.
- HDB (Hierarchical Database) est une variante du backend BDB et sera également déprécié.
- Les lecturesMDB sont 5-20x plus rapides que BDB. Les écritures sont 2 à 5 fois plus rapides. Et elle consomme 1/4 de la RAM de BDB. Nous choisissons donc MDB comme backend de la base de données.
- Voulez-vous que la base de données soit supprimée lorsque Slapd est purgé ? Non.
- Déplacer l’ancienne base de données ? Oui.
- Autoriser le protocole LDAPv2 ? Non. La dernière version de LDAP est LDAP v.3, développée en 1997. LDAPv2 est obsolète.
Le processus va maintenant reconfigurer le service OpenLDAP en fonction de vos réponses. Votre serveur OpenLDAP est maintenant prêt à être utilisé.
Si vous avez fait une erreur, vous pouvez toujours exécuter à nouveau la commande sudo dpkg-reconfigure slapd
pour reconfigurer OpenLDAP.
Étape 3 : Configuration des clients LDAP
/etc/ldap/ldap.conf
est le fichier de configuration de tous les clients OpenLDAP. Ouvrez ce fichier.
sudo nano /etc/ldap/ldap.conf
Nous devons spécifier deux paramètres : le DN de base et l’URI de notre serveur OpenLDAP. Copiez et collez le texte suivant à la fin du fichier. Remplacez votre-domaine
et com
comme il se doit.
BASE dc=votre-domaine,dc=comURI ldap://localhost
La première ligne définit le DN de base. Elle indique aux programmes clients où commencer leur recherche dans le répertoire. Si vous avez utilisé un sous-domaine lors de la configuration du serveur OpenLDAP, alors vous devez ajouter le sous-domaine ici comme suit
BASE dc=sous-domaine,dc=votre-domaine,dc=com
La deuxième ligne définit l’URI de notre serveur OpenLDAP. Puisque le serveur et le client LDAP sont sur la même machine, nous devons définir l’URI à ldap://localhost
. Vous pouvez ajouter plusieurs URI plus tard si le besoin s’en fait sentir.
Enregistrez et fermez le fichier.
Étape 4 : Test du serveur OpenLDAP
Maintenant que le serveur OpenLDAP fonctionne et que la configuration du client est terminée, exécutez la commande suivante pour effectuer des connexions de test au serveur.
ldapsearch -x
Sortie :
# extended LDIF## LDAPv3# base (default) with scope subtree# filter : (objectclass=*)# requesting : ALL## linuxbabe.comdn : dc=linuxbabe,dc=comobjectClass : topobjectClass : dcObjectClass : organizationo : LinuxBabedc : linuxbabe# admin, linuxbabe.comdn : cn=admin,dc=linuxbabe,dc=comobjectClass : simpleSecurityObjectClass : organizationalRolecn : admindescription : Administrateur LDAP# résultats de la recherchesearch : 2résultat: 0 Succès# numResponses : 3# numEntries : 2
Lerésultat : 0 Success indique que le serveur OpenLDAP fonctionne. Si vous obtenez la ligne suivante, alors il ne fonctionne pas.
résultat : 32 No such object
Étape 5 : Installation de LDAP Account Manager
LDAP Account Manager est un programme basé sur le web pour gérer le serveur OpenLDAP. Les utilitaires de ligne de commande peuvent être utilisés pour gérer notre serveur OpenLDAP, mais pour ceux qui veulent une interface facile à utiliser, vous pouvez installer LDAP Account Manager.
Exécutez la commande suivante pour installer LDAP Account Manager à partir du dépôt de paquets Debian.
sudo apt install ldap-account-manager
Si votre serveur Debian n’a pas de serveur web, la commande ci-dessus installera le serveur web Apache en tant que dépendance. S’il existe déjà un serveur web tel que Nginx, Apache ne sera pas installé.
Étape 6 : Installation des modules PHP requis et recommandés
Exécutez la commande suivante pour installer les modules PHP requis ou recommandés par le gestionnaire de comptes LDAP.
sudo apt install php7.4-fpm php7.4-imap php7.4-mbstring php7.4-mysql php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-bz2 php7.4-intl php7.4-gmp php7.4-redis
Étape 7 : Créer un hôte virtuel pour le gestionnaire de comptes LDAP
Apache
Si vous utilisez le serveur web Apache, créez un hôte virtuel pour LDAP Account Manager.
sudo nano /etc/apache2/sites-available/ldap-account-manager.conf
Mettez le texte suivant dans le fichier. Remplacez openldap.example.com
par votre vrai nom de domaine et n’oubliez pas de définir un enregistrement DNS A pour celui-ci.
ServerName openldap.example.com DocumentRoot /usr/share/ldap-account-manager ErrorLog ${APACHE_LOG_DIR}/ldap-account-manager_error.log CustomLog ${APACHE_LOG_DIR}/ldap-account-manager_access.log combiné Alias /lam /usr/share/ldap-account-manager Options FollowSymLinks AllowOverride All Require all granted DirectoryIndex index.html Options -Indexes Options -Index Requiert tous les refusés Options -Index Requiert tous les refusés Options -Index Require all denied Options -Indexes Require all denied Options -Index Require all denied Options -Index Require all denied
Enregistrez et fermez le fichier. Puis activez cet hôte virtuel avec :
sudo a2ensite ldap-account-manager.conf
Rechargez Apache pour que les modifications soient prises en compte.
sudo systemctl reload apache2
Vous devriez maintenant pouvoir accéder à l’interface web du gestionnaire de comptes LDAP à l’adresse http://openldap.example.com.
Nginx
Si vous utilisez le serveur web Nginx, créez un hôte virtuel pour LDAP Account Manager.
sudo nano /etc/nginx/conf.d/ldap-account-manager.conf
Copiez le texte suivant et collez-le dans le fichier. Remplacez ldap.votre-domaine.com par votre nom de domaine préféré.
server { listen 80 ; server_name openldap.your-domain.com; root /usr/share/ldap-account-manager/ ; index index.php index.html index.htm ; error_log /var/log/nginx/ldap-account-manager.error ; access_log /var/log/nginx/ldap-account-manager.access ; location ~ \N.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock ; fastcgi_index index.php ; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name ; include fastcgi_params ; }}
Sauvegardez et fermez le fichier. Ensuite, configurez Nginx en texte.
sudo nginx -t
Si le test est réussi, rechargez Nginx pour que les changements prennent effet.
sudo systemctl reload nginx
Vous pouvez maintenant accéder à l’interface web du gestionnaire de compte LDAP à l’adresse openldap.example.com
.
Étape 8 : Activation de HTTPS
Pour crypter le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let’s Encrypt. Exécutez la commande suivante pour installer le client Let’s Encrypt (certbot) sur le serveur Debian.
sudo apt install certbot
Si vous utilisez Apache, installez le plugin Apache Certbot.
sudo apt install python3-certbot-apache
Et exécutez cette commande pour obtenir et installer le certificat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [emailsudo apt install python3-certbot-nginxEnsuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email
--nginx
: Utiliser le plugin nginx.--apache
: Utilise le plugin Apache.--agree-tos
: Accepter les conditions de service.--redirect
: Force HTTPS par redirection 301.--hsts
: Ajouter l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Se défend contre le dépouillement SSL/TLS.--staple-ocsp
: Active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur offre pendant TLS.
Le certificat devrait maintenant être obtenu et installé automatiquement, ce qui est indiqué par le message ci-dessous.
Étape 9 : Accès à l'interface Web de LDAP Account Manager
Nous pouvons maintenant tester l'outil LDAP Account Manager avec notre navigateur Web. Lorsque LDAP Account Manager se charge pour la première fois, il vous redirige vers la page de connexion.
Avant de se connecter, nous devons configurer le profil du serveur. Cliquez sur le lien de configuration de LAM dans le coin supérieur droit, puis sélectionnez Edit server profiles.
Saisissez le mot de passe du profil, qui est lam
par défaut.
Dans l'onglet " Paramètres généraux ", vous trouverez le suffixe de l'arbre, qui est dc=votredomaine,dc=org
par défaut. Vous devez le changer pour votre propre DN de base (nom distingué). Dans mon cas, je dois le changer en dc=linuxbabe,dc=com
.
Faites défiler la page jusqu'à la section Paramètres de sécurité, vous y trouverez la liste des utilisateurs valides. Par défaut, il n'y a qu'un seul utilisateur : cn=Manager,dc=my-domain,dc=com
. Ceci est connu comme le DN de connexion. Changez le nom commun(cn
) en admin
et changez également le DN de base. Dans mon cas, je dois changer le DN de connexion en cn=admin,dc=linuxbabe,dc=com
.
C'est aussi une bonne idée de changer le mot de passe par défaut du profil.
Ensuite, faites défiler vers le haut et sélectionnez l'onglet Types de comptes. Vous trouverez le suffixe LDAP pour les utilisateurs et les groupes. Modifiez-les.
- ou=People,dc=linuxbabe,dc=com
- ou=groupe,dc=linuxbabe,dc=com
Enfin, cliquez sur le bouton Enregistrer et vous serez redirigé vers la page de connexion. Vous pourrez vous connecter en utilisant le compte administrateur.
Le mot de passe est le mot de passe administrateur que vous avez défini lors de la configuration du serveur OpenLDAP à l'étape 2. Une fois que vous vous êtes connecté à LDAP Account Manager, vous pouvez gérer ce serveur d'annuaire.
Il est également très important de changer le mot de passe maître par défaut. Déconnectez-vous du gestionnaire de compte LDAP, puis sélectionnez Configuration LAM -> Modifier les paramètres généraux. Utilisez le mot de passe principal par défaut lam
pour vous connecter, puis faites défiler vers le bas et modifiez le mot de passe principal.
Conclusion
C'est tout ! J'espère que ce tutoriel vous a aidé à installer et à configurer le serveur OpenLDAP et le gestionnaire de comptes LDAP sur Debian 11. Dans le prochain tutoriel, nous verrons comment configurer Debian pour authentifier les connexions des utilisateurs avec OpenLDAP.