Installer LDAP

Dernière mise à jour : 16/08/2004

    Cela faisait un petit moment que je devais documenter ce type d'installation. Nous verrons dans cet article comment installer un serveur LDAP sur une Debian testing/unstable en utilisant pour cela les certificats d'autorité afin d'éviter tout échange non crypté. Les clients sont aussi des Debian, mais tout autre type de Linux devrait marcher sans aucun souci.

    Commencez donc par installer votre serveur Debian puis téléchargez les bon paquets, j'ai nommé : apt-get install slapd ldap-utils openssl. Il devrait vous prendre toutes les dependances nécessaires. Le dernier paquet est celui contenant de quoi générer des certificats, dont vous aurez également besoin. A noter que lors de l'installation de slapd, Debian vous pose quelques questions sur votre arborescence et le domaine que vous possédez, prenons l'exemple du domaine toto.org, dans LDAP, cela donnera : dc=toto, dc=org. Je vous invite à lire la section documentation d'OpenLDAP si vous ne comprenez pas tout ce que je viens d'écrire. On commence donc par générer un petit certificat et des clés pour le serveur, faites donc :

    On modifie à présent la ligne du service slapd dans /etc/default/slapd pour n'écouter que sur des ports spécifiques. J'ai choisi de restreindre le trafique non crypté au serveur local et d'utiliser les échanges cryptés pour le reste du réseau, cela nous donne :

    Nous allons à présent paramétrer le fichier /etc/ldap/ldap.conf qui va contenir la configuration de votre serveur. Les lignes qui suivent renseignent les outils LDAP sur la méthode de connexion ainsi que sur l'utilisation de certificats. Ainsi, on lui indique que notre arborescence est toto.org, qu'il faut se connecter sur le serveur ldap.toto.org par connexion cryptée et qu'il est obligé d'utiliser le certificat disponible dans /etc/ldap/cert/cacert.pem, voici le fichier en entier :

    Editez ensuite le fichier /etc/ldap/slapd.conf. Ce fichier contient les paramètres LDAP du serveur. Vous pouvez y définir tous les droits d'accès et le type de base de données utilisé par le serveur. Il vous permet aussi de définir le type d'accès utilisé par le certificat, allez à la fin de ce fichier puis ajoutez les lignes ci-dessous. Les deux premières lignes indiquent à slapd comment se connecter à votre arborescence. Les 3 dernières spécifient au serveur d'utiliser TLS, et le pointent vers les bons fichiers concernant le certificat d'autorité, le fichier de certificat et la clé. Pour obtenir un mot de passe MD5 crypté comme vous pouvez le voir à la ligne rootpw, il suffit de taper ceci en ligne de commande puis de coller le résultat dans votre fichier : slappasswd -h {MD5}

    Il ne vous reste plus qu'à démarrer le serveur par cette commande : /etc/init.d/slapd restart. Je fais un restart des fois que le serveur serait déjà démarré. Si vous prenez une erreur ici, c'est probablement une erreur de syntaxe. Vérifiez les logs (/var/log/daemon.log) et tentez un démarrage en mode verbose comme l'indique le message. On peut à présent tester le serveur et voir s'il accepte de nous parler. Tapez pour ceci la commande :

    Pour ceux ayant régardés le manuel de ldapsearch, vous noterez que nous n'utilisons pas -ZZ pour crypter le trafique, la raison en est simple. Comme nous obligeons l'utilisation de TLS dans le fichier de configuration, la connexion cryptée est déjà active lors du test. Vous devriez donc obtenir :

    Félicitations ! Vous avez la première partie du serveur installé. Il peut en effet communiquer des informations. Il reste à présent à importer des utilisateurs. Il y a pour se faire deux possibilités. Soit vous créez vos fichiers à l'aide d'un langage/interpréteur quelconque (bash, perl, python, php, etc ...), soit vous utilisez les outils de migration écris en perl disponibles dans le paquet apt-get install migrationtools. Ces outils LDAP ont été développés par une compagnie du nom de PADL Software Pty Ltd qui fait bien évidemment des déployements LDAP sur toutes plateformes y compris Solaris (qui est une bonne prise de tête, croyez-moi sur parole ...). Il vous suffit alors d'importer les comptes utilisateurs, vous aurez donc besoin du fichier des utilisateurs du serveur d'autentification qui sont : /etc/{passwd,shadow}. Pour importer les données vers le serveur, tapez :

    Voilà pour la partie serveur. Vous pouvez installer un gestionnaire web genre LAM. C'est facilement réalisable par : apt-get install ldap-account-manager. Assurez-vous d'avoir également apache-ssl afin de ne passer les données qu'en mode crypté. L'autre outil extrêmement pratique est GQ qui utilise Gnome. Il vous permet d'administrer un serveur LDAP facilement depuis n'importe quelle station.

    La partie cliente est un peu plus facile. On utilise pour ceci trois paquets : apt-get install libnss-ldap libpam-ldap nscd. Ils permettront dans l'ordre de crypter le trafique entre la station et le serveur, le second permet l'autentification d'un utilisateur par pam et LDAP et le dernier limite le nombre de requêtes vers le serveur en gardant en cache les crédentiels. Editez-donc /etc/libnss-ldap.conf pour y entrer les informations ci-dessous. Ces lignes devraient être relativement claires vu l'installation que vous avez faite sur le serveur :

    Il vous faut à présent modifier le fichier /etc/pam_ldap.conf qui va contenir les informations d'autentification.

    Enfin, éditez les fichiers /etc/pam.d/common-* afin d'y inclure la ligne permettant à PAM de savoir qu'il aura besoin de LDAP :

    Il faut ensuite éditer le fichier /etc/nsswitch.conf. Ce fichier est capital car il définit ce que vous utilisez dans l'ordre sur un système. Ce qui nous intéresse dans ce fichier sont les premières lignes, modifiez-les afin que cela ressemble à ceci :

    Recopier ensuite le fichier ldap.conf du serveur et placez-le dans /etc/ldap/ ainsi que les certificats nécessaires. Vous pouvez également démarrer le service nscd /etc/init.d/nscd restart
    Vous devriez à présent être capable d'utiliser l'autentification LDAP sur le client. Si le mot de passe pose problème, il est possible de changer le mot de passe d'un utilisateur soit par l'interface GQ, soit directement sur le serveur LDAP avec la commande ci-dessous. Elle vous demandera d'abord deux fois le nouveau mot de passe de l'utilisateur puis une fois celui de l'administrateur LDAP.

    Eh bien voilà pour le moment. Ce guide devrait vous permettre d'utiliser LDAP dans sa forme la plus simple. Il est possible d'autoriser l'utilisateur à changer son mot de passe directement sur sa station et d'intégrer LDAP avec vos carnets d'adresses et bien plus encore, je couvrirais ceci dans un prochain article.