| ]


 

 

 

 



1.1.             Installer, configurer et Administrer LDAP

Vous allez avoir schématiquement 4 étapes :
1.      Installer les packages nécessaires
2.      configurer les fichiers de configuration
3.      initialiser la base de données
4.      configurer un client et tester le ou les services à partir d'un client
5.      passer à l'administration

1.1.1.                   Installer les packages sur le serveur

Il va falloir installer les packages OpenLDAP. La procédure est standard à partir de paquets (debian ou rpm), sinon à partir des sources.
tar xzvf openldap-x.y.z.tgz
cd openldap.x.y.z
./configure
make
make depend
make test
make install

Installez également les packages perl, php et "dévelop" pour l'administration.
ii  slapd          2.1.30-2       OpenLDAP server (slapd)
ii  ldap-utils     2.1.30-2       OpenLDAP utilities
ii  libldap2       2.1.30-2       OpenLDAP libraries
ii  php4-ldap      4.3.8-1        LDAP module for php4

Il est intéressant de prévoir aussi les bibliothèques de développement.

1.1.2.                   Les fichiers de configuration du serveur

Il faut bien identifier les objets à référencer et les objectifs de l'annuaire. Les fichiers sont dans "/etc/openldap".
Le premier fichier est "sldapd.conf" qui décrit les principaux paramètres de votre annuaire :
# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.6 2001/04/20 23:32:43 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
# Inclusion des schémas nécessaires
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
 
# Options que vous pouvez modifier 
#pidfile        //var/run/slapd.pid
#argsfile       //var/run/slapd.args
 
#######################################################################
# ldbm database definitions
#######################################################################
# Choix du format de base de données pour le stockage des informations.
database        ldbm
 # Configurer le suffixe (racine) de l'annuaire 
# en fonction du domaine  DNS
suffix          "dc=my-domain,dc=com"
# ou d'une autre organisation
#suffix         "o=My Organization Name,c=US"
 
# L'administrateur de l'annuaire
rootdn          "cn=Manager,dc=my-domain,dc=com"
 
# Le mot de passe de l'administrateur, préférer une option cryptée
# La commande htpasswd peut très bien faire l'affaire pour encrypter
 
# rootpw                secret
# rootpw                {crypt}ijFYNcSNctBYg
 
 
# Emplacement de la base de données
directory       /var/lib/ldap
 
# Création des index. 
# Comme pour une base de données, indexer les rubriques
# les plus utilisées.
 
index   objectClass,uid,uidNumber,gidNumber,memberUid   eq
index   cn,mail,surname,givenname                       eq,subinitial
 
# La réplication ne sera  pas utilisée ici
# Vous pouvez répliquer tout ou partie d'un arbre
# activée par le daemon slurpd
 
# Directives de replication
# sinon les mettre dans un fichier à part et utiliser
# replogfile /chemincomplet/du/fichier
 
# Indiquer quels sont les serveurs réplicats
# et la méthode d'authentification
# Ici le serveur local, se répliquera sur ldap1
 
#replica host:ldap-1.example.com:389 
#       bindmethod=simple
#       binddn="cn=replicat_slave1, dc=mydomain, dc=fr"
#       credential=UnMotDePasse
 
# Accés par défaut sur la base
defaultaccess read

Protéger ensuite le fichier avec un "chmod 600 /etc/openldap/slapd.conf".
Les autorisations d'accès nécessitent une remarque.
Ici l'accès par défaut est "read", mais il est possible d'affiner. Par exemple avec des règles d'écriture comme:
 
access to <what> [ by <who> <none | compare | search | read | write>]
# Donne un accés en écriture pour le manager du domaine
access to * by dn="cn=Manager,dc=mydomain,dc=fr" write
# Donne un accés en lecture à tout le monde sur la base
access to * by * read
# Donne un accés en écriture sur un attribut pour le manager
#                en lecture pour les autres.
access to attr=uid 
                  by dn="manager,dc=mydomain,dc=fr" write
                  by * none
Le nombre d'options est très important, utilisez la commande "man slapd.conf".

2.   Authentification système LDAP sur un système GNU/Linux


Faites une sauvegarde de vos fichiers de configuration.
root@uranus:/etc/ldap# cp ldap.conf ldap.conf.orig
root@uranus:/etc/ldap# cp slapd.conf slapd.conf.orig
root@uranus:/etc# cp nsswitch.conf nsswitch.conf.orig
root@uranus:/etc# cp libnss-ldap.conf libnss-ldap.conf.orig
 
Vérifier que votre serveur LDAP fonctionne.
Vérifier que votre serveur Annuaire est opérationnel.


2.1.1.   Configuration de l'environnement pour l'authentification système

Les fichiers /etc/libnss-ldap.conf et /etc/pam_ldap.conf sont normalement configurés. Sinon vous pouvez utiliser les commandes :
dpkg-reconfigure libnss-ldap
dpkg-reconfigure libpam-ldap
Prenez les options par défaut en prenant soin de tenir compte de la structure de votre annuaire. Pour nous :
dc=point-libre,dc=org
Vous devez également modifier le fichier /etc/nssiwtch.conf afin que les applications utilisent aussi bien les fichiers standards (passwd, shadow) que l'annuaire ldap. :
 
passwd:         files ldap

group:          files ldap

shadow:         files ldap

2.1.2.                   Premiers tests de l'annuaire

La commande getent passwd doit vous permettre de récupérer à la fois les comptes du fichier /etc/passwd, mais également les compte de l'annuaire ldap qui n'existent pas dans la base passwd.
# getent passwd

[...]

mlx:2/yajBmqc3tYw:1005:1005:BOURG Jean:/home/mlx:/bin/bash

mly:2/yajBmqc3tYw:1006:1006:BOURG Marine:/home/mly:/bin/bash

Ces deux comptes proviennent bien de l'annuaire ldap.

2.1.3.                   Vérification du fonctionnement de l'annuaire.

L'utilisateur mly n'a pas de compte système. Il n'existe que dans l'annuaire ldap. Créez un répertoire et affectez-le au compte.
# mkdir /home/mly
# chown 1006:100 /home/mly

# ls -al /home/mly

drwxr-sr-x    2 mly      users        4096 2003-06-09 13:50 .

# Ici le serveur fonctionne car il substitue bien l'UID à l'uidNumber
 
# ls -al /home/mly
# Ici le serveur LDAP n'a pas été trouvé ou il ne fonctionne pas.
drwxr-sr-x    2 1006     users        4096 2003-06-09 13:50 .
 

2.1.4.                   Mise en place de l'authentification

On va mettre en place maintenant l'authentification ldap. Il faut modifier les fichiers de configuration qui assurent l'authentification. Mettez en début de fichier :

#/etc/pam.d/login
auth    sufficient pam_ldap.so
account sufficient pam_ldap.so

password        required        pam_ldap.so

 
#/etc/pam.d/passwd
auth    sufficient pam_ldap.so
account sufficient pam_ldap.so
password        sufficient        pam_ldap.so
Vérification de l'authentification :
mlx@uranus:~$ su mly
Password: #ici taper toto
mly@uranus:~$ cd

mly@uranus:~$ pwd

/home/mly