Introduction
Ce document va expliquer la configuration d’un serveur OpenLDAP slapd pour pouvoir s’en servir comme source d’authentification pour des utilisateurs sous Linux.
Cela s’applique aussi bien à une distribution Linux, testé sur Debian Sarge & Etch, que sur FreeBSD, testé en 6.2.
Pour les aspects client, nous utiliserons PAM LDAP et libnss LDAP, mais nous verrons cela dans le document suivant: Configuration client.
Prérequis
Il faudra biensûr avoir un serveur LDAP fonctionnel. Pour cela, vous pouvez suivre le document suivant: Configuration SLAPD standard.
Le fichier slapd.conf
Il n’y aura que très peu de modifications par rapport au document cité ci-dessus. Il faudra s’assurer que les schémas sont bien chargés avec quelque chose de la forme suivante:
[...] include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema [...]
Si on souhaite créer un utilisateur spécial pour manager les utilisateurs et les groupes dans l’arbre, il faudra créer des ACLs de la forme suivante:
# On ajoute un utilisateur spécial pour parcourir ces branches de l'arbre # admin pour les utilisateurs et les groupes access to dn.subtree="ou=utilisateurs,o=free-4ever,dc=net" by dn.regex="cn=admin,o=free-4ever,dc=net" write by * auth access to dn.subtree="ou=groupes,o=free-4ever,dc=net" by dn.regex="cn=admin,o=free-4ever,dc=net" write by * auth
Ne pas oublier les lignes pour les éventuels utilisateurs en lecture seule sur tout l’arbre !
Il ne faut pas oublier de redémarrer son daemon slapd pour que cela soit pris en compte.
Les ajouts dans l’annuaire LDAP
Maintenant nous allons voir quoi ajouter dans notre annuaire LDAP pour que nos utilisateurs puissent s’authentifier.
Pour toutes les manipulations avec les commandes LDAP client, vous pouvez vous reporter au document suivant: Utilisation des outils client. Tous les fichiers LDIF sont à ajouter avec la commande ldapadd.
L’utilisateur admin
Dans le fichier de configuration de slapd, nous avons ajouté un utilisateur admin.
Voici son fichier ldif:
dn: cn=admin,o=free-4ever,dc=net objectClass: top objectClass: person userPassword: {SSHA}J8+mJREWzYkFDmXnZCTalBbQhq17xUzj cn: admin sn: admin utilisateurs/groupes
Un container pour tous les utilisateurs
Nous allons créer une branche dans l’arbre pour mettre toutes les utilisateurs.
Le LDIF sera de la forme suivante:
dn: ou=utilisateurs,o=free-4ever,dc=net objectClass: top objectClass: organizationalUnit ou: utilisateurs description: Tous les comptes utilisateurs
Un container pour tous les groupes
Nous allons créer une branche dans l’arbre pour mettre toutes les groupes.
Le LDIF sera de la forme suivante:
dn: ou=groupes,o=free-4ever,dc=net objectClass: top objectClass: organizationalUnit ou: groupes description: Tous les groupes
Un premier compte utilisateur: guillaume
Nous allons maintenant pouvoir ajouter notre premier compte utilisateur, son login sera guillaume.
Le LDIF sera de la forme suivante:
# DN de l'utilisateur dn: uid=guillaume,ou=utilisateurs,o=free-4ever,dc=net # Les classes dont cette entrée hérite # On trouve bien posixAccount et shadowAccount pour PAM objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: guillaume cn: glohez sn: lohez givenName: guillaume mail: guillaume@free-4ever.net shadowLastChange: 12716 shadowMax: 99999 shadowWarning: 7 # Le shell de notre utilisateur loginShell: /bin/bash # L'UID de notre utilisateur. Attention de ne pas le dupliquer ! uidNumber: 10000 # Le GID de son groupe principal gidNumber: 10000 # Le répertoire home homeDirectory: /home/guillaume gecos: guillaume lohez # Le password hashé # Il n'est pas obligatoire de le mettre de suite # On peut le paramétrer après avec la commande ldappasswd userPassword: {SSHA}ato0Llo2GTK13m8jvvwPt48JzcI=
Voilà une entrée LDAP typique pour un utilisateur qui souhaite s’authentifier sur un système Linux avec PAM LDAP.
Un premier groupe: utilisateurs
Nous allons maintenant pouvoir ajouter notre premier groupe, son nom sera utilisateurs.
Le LDIF sera de la forme suivante:
# DN du groupe dn: cn=utilisateurs,ou=groupes,o=free-4ever,dc=net # Les classes dont cette entrée hérite # On trouve bien posixGroup pour PAM objectClass: posixGroup objectClass: top cn: utilisateurs # Le GID du groupe. Attention de ne pas le dupliquer ! gidNumber: 10000 # Le ou les membres du groupe # Un seul membre par ligne. Il peut donc y avoir plusieurs lignes. memberUid: guillaume
Mot de la fin
La configuration du serveur est très simple comme vous avez pu le voir. il n’y a que peu de choses à faire, c’est surtout l’ajout des entrées pour les utilisateurs et les groupes dans l’arbre LDAP.
Pour la configuration côté client, vous pouvez maintenant passer au document suivant: Configuration client