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.