Dans ce didacticiel, nous allons examiner l'installation et la configuration du serveur OpenLDAP sur Ubuntu 16.04 LTS. Nous allons également installer le phpLDAPadmin outil de gestion basé sur le Web.
Qu'est-ce qu'OpenLDAP
OpenLDAP est un serveur d'annuaire open-source et rapide qui fournit au client réseau des services d'annuaire. Les applications clientes se connectent au serveur OpenLDAP à l'aide du Lightweight Directory Access Protocol (LDAP) pour accéder aux informations organisationnelles stockées sur ce serveur. Avec l'accès approprié, les clients peuvent effectuer des recherches dans le répertoire, modifier et manipuler des enregistrements dans le répertoire. OpenLDAP est efficace à la fois pour lire et modifier les données dans l'annuaire.
Les serveurs OpenLDAP sont le plus souvent utilisés pour fournir une gestion centralisée des comptes d'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 le compte pour vous connecter à ces serveurs sans créer un nouveau compte pour chaque serveur.
Comment installer le serveur OpenLDAP sur Ubuntu 16.04
Exécutez la commande suivante pour installer le serveur OpenLDAP et les utilitaires de ligne de commande client à partir du référentiel de packages Ubuntu 16.04. slapd
signifie le démon LDAP autonome .
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.
Une fois cela fait, slapd sera automatiquement lancé. Vous pouvez vérifier son statut avec :
systemctl status slapd
Par défaut, il s'exécute en tant que openldap
utilisateur tel que défini dans /etc/default/slapd
fichier.
Configuration de base après l'installation
Le processus d'installation installe le package sans aucune configuration. Pour que notre serveur OpenLDAP fonctionne correctement, nous devons effectuer une configuration de base après l'installation. Exécutez la commande suivante pour démarrer l'assistant de configuration.
sudo dpkg-reconfigure slapd
Vous devrez répondre à une série de questions. Répondez à ces questions comme suit :
Omettre la configuration du serveur LDAP :NON .
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 comme directory.linuxbabe.com
. Ces informations sont utilisées pour créer le DN de base (nom distinctif) de l'annuaire LDAP.
Nom de l'organisation :saisissez le nom de votre organisation, par exemple LinuxBabe.
Mot de passe administrateur :saisissez le même mot de passe que celui défini lors de l'installation.
Base de données principale :MDB .
BDB (Base de données Berkeley) est lente et fastidieuse. Il est obsolète et la prise en charge sera abandonnée dans les futures versions d'OpenLDAP. HDB (Base de données hiérarchique) est une variante du backend BDB et sera également obsolète.
MDB les lectures sont 5 à 20 fois plus rapides que BDB. Les écritures sont 2 à 5 fois plus rapides. Et il consomme 1/4 de RAM en moins que BDB. Nous avons donc choisi MDB comme base de données principale.
Souhaitez-vous que la base de données soit supprimée lors de la purge de slapd ? 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é.
Configuration des clients LDAP
/etc/ldap/ldap.conf
est le fichier de configuration pour 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 your-domain
et com
le cas échéant.
BASE dc=your-domain,dc=com URI ldap://localhost
La première ligne définit le DN de base. Il 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, vous devez ajouter le sous-domaine ici comme ceci
BASE dc=subdomain,dc=your-domain,dc=com
La deuxième ligne définit l'URI de notre serveur OpenLDAP. Étant donné que le serveur LDAP et le client sont sur la même machine, nous devons définir l'URI sur ldap://localhost
.
Tester le serveur OpenLDAP
Maintenant que le serveur OpenLDAP est en cours d'exécution et que la configuration du client est terminée, exécutez la commande suivante pour établir des connexions de test au serveur.
ldapsearch -x
Sortie :
# extended LDIF # # LDAPv3 # base <dc=linuxbabe,dc=com> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # linuxbabe.com dn: dc=linuxbabe,dc=com objectClass: top objectClass: dcObject objectClass: organization o: LinuxBabe # admin, linuxbabe.com dn: cn=admin,dc=linuxbabe,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
Résultat :0 Succès indique que le serveur OpenLDAP fonctionne. Si vous obtenez la ligne suivante, cela ne fonctionne pas.
result: 32 No such object
Installer phpLDAPadmin
phpLDAPadmin est un programme Web pour la gestion du 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 phpLDAPadmin.
Exécutez la commande suivante pour installer phpLDAPadmin à partir du référentiel de packages Ubuntu.
sudo apt install phpldapadmin
Si votre serveur Ubuntu n'a pas de serveur Web en cours d'exécution, 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é.
Si vous utilisez Apache
L'installation mettra un fichier de configuration phpldapadmin.conf
sous /etc/apache2/conf-enabled/
annuaire. Une fois l'installation terminée, vous pouvez accéder à l'interface Web de phpLDAPadmin à l'adresse
your-server-ip/phpldapadmin
ou
your-domain.com/phpldapadmin
Pour activer HTTPS, vous pouvez obtenir et installer un certificat TLS gratuit émis par Let's Encrypt.
Si vous utilisez Nginx
Les utilisateurs de Nginx devront créer manuellement un fichier de blocage de serveur pour phpLDAPadmin.
sudo nano /etc/nginx/conf.d/phpldapadmin.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 ldap.your-domain.com; root /usr/share/phpldapadmin/htdocs; index index.php index.html index.htm; error_log /var/log/nginx/phpldapadmin.error; access_log /var/log/nginx/phpldapadmin.access; location ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; } }
Enregistrez et fermez le fichier. Envoyez ensuite les configurations Nginx par SMS.
sudo nginx -t
Si le test réussit, rechargez Nginx pour que les modifications prennent effet.
sudo systemctl reload nginx
Vous pouvez maintenant accéder à l'interface Web de phpLDAPadmin sur ldap.your-domain.com
. Pour activer HTTPS, vous pouvez obtenir et installer un certificat TLS gratuit émis par Let's Encrypt.
Configuration de phpLDAPadmin
Nous devons effectuer certaines configurations comme nous l'avons fait avec le client en ligne de commande. Le fichier de configuration de phpLDAPadmin se trouve dans /etc/phpldapadmin/config.php
.
sudo nano /etc/phpldapadmin/config.php
Comme OpenLDAP et phpLDAPadmin s'exécutent sur la même machine, nous allons donc configurer phpLDAPadmin pour qu'il se connecte à localhost sur le port LDAP 389 par défaut sans cryptage SSL/TLS.
La ligne 293 spécifie que phpLDAPadmin se connectera à localhost.
$servers->setValue('server','host','127.0.0.1');
La ligne 296 est commentée par défaut, ce qui signifie que le port standard 389 sera utilisé.
// $servers->setValue('server','port',389);
La ligne 335 est commentée par défaut, ce qui signifie que le chiffrement TLS n'est pas activé.
// $servers->setValue('server','tls',false);
Allez ensuite à la ligne 300.
$servers->setValue('server','base',array('dc=example,dc=com'));
Changez-le en :
$servers->setValue('server','base',array());
Cela permettra à phpLDAPadmin de détecter automatiquement le DN de base de votre serveur OpenLDAP. Ensuite, vous pouvez désactiver la connexion anonyme. Allez à la ligne 453.
// $servers->setValue('login','anon_bind',true);
Par défaut, la connexion anonyme est activée. Pour le désactiver, vous devez supprimer le caractère de commentaire (les deux barres obliques) et remplacer true par false.
$servers->setValue('login','anon_bind',false);
Vous souhaiterez probablement désactiver les avertissements de modèle car ces avertissements sont ennuyeux et sans importance. Allez à la ligne 161.
// $config->custom->appearance['hide_template_warning'] = false;
Supprimez le caractère de commentaire et remplacez faux par vrai.
$config->custom->appearance['hide_template_warning'] = true;
Enregistrez et fermez le fichier.
Accéder à l'interface Web de phpLDAPadmin
Nous pouvons maintenant tester l'outil phpLDAPadmin avec notre navigateur Web. Lorsque phpLDAPadmin se charge pour la première fois, il ressemble à ceci.
Pour vous connecter à notre serveur OpenLDAP, cliquez sur le lien de connexion. Vous verrez la boîte de dialogue de connexion. Le DN de connexion par défaut est cn=admin,dc=example,dc=com
. Vous devrez peut-être modifier dc=example
. Dans mon cas, je dois changer le DN de connexion en cn=admin,dc=linuxbabe,dc=com
.
Le mot de passe est le mot de passe administrateur que vous avez défini lors de la configuration du serveur OpenLDAP. Une fois connecté à phpLDAPadmin, vous pouvez gérer ce serveur d'annuaire.
C'est ça! J'espère que ce tutoriel vous a aidé à installer et à configurer à la fois le serveur OpenLDAP et phpLDAPadmin sur Ubuntu 16.04. Dans le prochain tutoriel, nous verrons comment configurer Ubuntu pour authentifier les connexions des utilisateurs avec OpenLDAP.