Authentification centralisée – Configuration LDAP du serveur

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

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s