3. Installation et configuration du serveur Openldap (Serveur 1, ldap1.martymac.com)

3.1. Installation

Commençons par l'installation du serveur LDAP et sa configuration. Le serveur LDAP permettra de fournir à Samba les informations concernant les comptes utilisateurs du domaine.

Nous allons avoir besoin de plusieurs composants :
- les librairies LDAP compilées,
- les sources de ces librairies (pour des compilations futures),
- les utilitaires d'interrogation d'annuaire,
- le serveur LDAP (slapd)

L'installation de tout ceci se fait de manière très simple sous Debian, via apt :

- apt-get install libldap2 libldap2-dev ldap-utils slapd

Le serveur est désormais installé, nous allons voir comment le configurer...

3.2. Configuration

- Editer le fichier le fichier /etc/ldap/slapd.conf pour configurer OpenLDAP :

include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/nis.schema

pidfile         /var/run/slapd.pid
argsfile        /var/run/slapd.args

database        ldbm
suffix          "dc=martymac,dc=com"
rootdn          "cn=Manager,dc=martymac,dc=com"
rootpw          secret
directory       /var/lib/ldap

index   cn       eq

Le "rootdn" représente le compte autorisé à modifier la base LDAP. Le "rootpw" représente son mot de passe. Attention, il est stocké en clair dans le fichier...

- Nous disposons maintenant d'une configuration suffisante pour démarrer le serveur : /etc/init.d/ldap start

3.3. Premiers tests

Nous allons essayer d'insérer, depuis l'hôte local, quelques enregistrements dans notre base LDAP, afin de tester notre serveur :

- Créer un fichier test.ldiff source :

dn: dc=martymac,dc=com
objectclass: dcObject
dc: martymac
objectclass: organization
o: martymac

dn: ou=personnes,dc=martymac,dc=com
objectclass: top
objectclass: organizationalUnit
ou: personnes
description: Branche personnes

Il faut ensuite insérer les données du fichier :
- ldapadd -W -D 'cn=Manager,dc=martymac,dc=com' -f test.ldiff
Pour rechercher (dumper la base, a partir de 'dc=martymac,dc=com') :
- ldapsearch -W -D 'cn=Manager,dc=martymac,dc=com' -b 'dc=martymac,dc=com'
- ou : ldapsearch -b 'dc=martymac,dc=com' (car dans notre cas, pas besoin d'authentification pour les recherches)
Pour effacer les données (afin de laisser une base propre pour la suite) :
- ldapdelete -W -D 'cn=Manager,dc=martymac,dc=com' 'ou=personnes,dc=martymac,dc=com'

Maintenant que notre serveur LDAP fonctionne, configurons-le pour qu'il puisse recevoir nos futurs comptes Samba.

3.4. Configuration avancée de LDAP

Nous allons configurer LDAP pour qu'il nous fournisse un accès à des comptes Samba. Il faut tout d'abord spécifier quel schema (structure de comptes) utiliser. La distribution de Samba en fournit un (dans le répertoire examples/ des sources).

- Récupérer les sources de Samba
(http://de.samba.org/samba/ftp/Binary_Packages/Debian/dists/stable/main/source/samba_2.2.8a-0.1.tar.gz)
- Les décompresser : tar xvzf samba_2.2.8a-0.1.tar.gz
- Copier le fichier examples/samba.schema dans /etc/ldap/schema/

Il faut ensuite inclure ce nouveau schéma dans le fichier slapd.conf.

- Edition du fichier /etc/ldap/slapd.conf pour obtenir ceci :

include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/samba.schema

pidfile         /var/run/slapd.pid
argsfile        /var/run/slapd.args

database        ldbm
suffix          "dc=martymac,dc=com"
rootdn          "cn=Manager,dc=martymac,dc=com"
rootpw          secret
directory       /var/lib/ldap

index   objectClass,rid,uid,uidNumber,gidNumber,memberUid eq
index   cn,mail,surname,givenname eq,subinitial

Le serveur est désormais configuré et prêt à stocker les comptes Samba. Il nous reste à configurer les clients LDAP (locaux) : ldapsearch, ldapdelete... Ceci se fait par l'édition du fichier ldap.conf :

- Edition du fichier /etc/ldap/ldap.conf :
base    dc=martymac,dc=com
host    127.0.0.1

On peut désormais redémarrer notre serveur LDAP : /etc/init.d/ldap restart

Il sera prêt à être interrogé par Samba, une fois que nous l'aurons peuplé. Passons désormais au second serveur, le serveur Samba.