Linux:Installation Configuration OpenLDAP

De Djjnet.

EN COURS DE REDACTION

Cette documentation présente le cas d'utilisation d'OpenLDAP pour un annuaire servant de carnet d'adresse. Il n'y a pas de points sur l'authentification.

Sommaire

Présentation

  • Le dn ou distinguishedName est le nom distinctif d'une entité dans un annuaire LDAP. Pour un utilisateur par exemple, le dn est du type cn=IdentifiantUtilisateur,dc=dj-j,dc=net. cn est le common name et dc est un domain component.
  • Les ports utilisés par LDAP sont 389 et 636 pour LDAPs. Attention le port utilisé par LDAP avec le cryptage TLS est 389 et non pas 636. Le protocole est quant à lui TCP.

Installation

apt-get install ldap-utils ldapscripts slapd

L'installation va configurer le serveur LDAP en vous posant des questions. Les paramètres seront modifiés ensuite et la base recréée.

Configuration

Fichier de configuration principal /etc/ldap/slapd.conf

Pour autoriser la connexion en version 2 pour d'ancien client, dé-commenter :

#allow bind_v2

Inclure les schema de définition, suffisant pour un carnet d'adresses :

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

Toutes les options avant la première occurence de database sont globales au server.

Configuration de la base :

database bdb

Indiquer la base de l'annuaire, généralement le nom de domaine (dj-j.net dans mon cas) :

suffix          "dc=dj-j,dc=net"

Indiquer le nom du super utilisateur de l'annuaire, généralement nommé root, il faut indiquer le "dn" :

rootdn          "cn=root,dc=dj-j,dc=net"

Puis le mot de passe généré avec la commande : slappasswd -h SSHA

rootpw {SSHA}...................

Où se situe les fichiers de la base, (les droits doivent être positionné pour l'utilisateur du daemon slapd)

directory       "/var/lib/ldap"

Droits d'accès à l'ou des contacts dans l'annuaire :

access to dn.subtree="ou=contacts,dc=dj-j,dc=net"
       by dn="cn=contactadmin,dc=dj-j,dc=net" write
       by * read

Générer une base vide

Partons sur une base vide :

  • /etc/init.d/slapd stop
  • rm -fR /var/lib/ldap/*
  • /etc/init.d/slapd start

La base vide est reconstruite au démarrage.

Importer des premières données

A partir d'un fichier contenant des données au format LDIF, nous allons créer l'organisation de base, l'ou pour les contacts, l'admin des contacts (voir droits d'accès) et un premier contact :

dn: dc=dj-j,dc=net
dc: dj-j
objectClass: dcObject
objectClass: top
objectClass: organization
o: Dj-j.net

dn: ou=contacts,dc=dj-j,dc=net
ou: contacts
objectClass: organizationalUnit

dn: cn=contactadmin,dc=dj-j,dc=net
objectClass: top
objectClass: person
cn: contactadmin
sn: contactadmin
userPassword: {SSHA}....................
description: Admin des contacts

dn: cn=Jerome Lemaire,ou=contacts,dc=dj-j,dc=net
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
o: dj-j.net
sn: Lemaire
givenName: Jerome
mail: adresse@domaine
cn: Jerome Lemaire
labeledURI: http://www.dj-j.net

Importer le fichier :

ldapadd -x -D "cn=root,dc=dj-j,dc=net" -W -f fichier.ldif

Sauvegarde

slapcat -l /var/backups/ldap-djjnet.ldif -b "dc=dj-j,dc=net"
Outils personnels
Google AdSense