Sunteți pe pagina 1din 20

Tutorial : LDAP avec

l'utilisation de NFS

INTRODUCTION
I-Installation de lannuaire LDAP
1. Serveur LDAP
A. Installation du serveur
B. Ajout d'une arborescence
C. Ajout d'un groupe utilisateur et d'un utilisateur
D. Automontage
E. Installation du package libnss-ldap

2. Client LDAP
A. Installation et configuration du package libnss-ldap
B. Configuration de l'authentification distance
C. Installation et configuration du package libpam
D. configuration de l'automontage pour le client
E. Exemple d'authentification

II-Installation dun serveur de partage de fichiers


1. Serveur NFS
A. Installation du package nfs-kernel-server
B. Configuration

2. Client NFS
A. Installation du package nfs-common
B. Utilisation de nfs par le client (en manuel)

III-Configurations complmentaires
1. changes scuriss par TLS
2. Grer la base de donnes ldap avec Luma

CONCLUSION
BIBLIOGRAPHIE

INTRODUCTION
LDAP est un protocole permettant l'interrogation et la modification des services d'annuaire. Dans
ce tutoriel, nous allons utiliser OpenLDAP, une implmentation libre de LDAP et NFS qui est un
systme de fichier en rseau qui permet de partager des donnes entre ordinateurs.
L'objectif de ce tutoriel est de mettre en place un serveur d'authentification bas sur OpenLDAP,
ainsi qu'un serveur de fichier NFS. NFS servira exporter les rpertoires personnels des
utilisateurs. L'outil automount permettra d'automatiser l'export des rpertoires personnels. Ce
tutorial ncessite l'utilisation de deux ordinateurs, un client et un serveur, tournant tous deux sous
Debian.

I. Installation et configuration de l'annuaire LDAP


1. Serveur LDAP
A. Installation du packages
Dans un premier temps, il faut installer le serveur OpenLDAP ainsi que ses
utilitaires associs.
Pour cela, utilisez la commande :
apt-get install slapd ldap-utils
Lors de l'installation, plusieurs questions seront poses :
Nom de domaine

root.fr

Mot de passe administrateur

root

Supprimer la base de donnes la purge du paquet :

OUI

Dplacer ancienne base

OUI

Omettre configuration par dfaut

NON

Nom de l'organisation
Format de la base

Autoriser LDAPv2

:
:

firm
BDB

OUI

Si certaines questions ne vous sont pas poses, il faut lancer la commande :


dpkg-reconfigure slapd
En ce qui concerne le choix du format de la base, BDB, le format actuel, stable et
compatible avec l'ancien format LDB, a t choisi.

Le protocole LDAPv2 a t choisi pour garder la compatibilit avec les vielles


applications.
Il faut maintenant lancer le serveur LDAP comme suit :
/etc/init.d/slapd start

Pour tester le serveur LDAP, lancez la commande suivante :


ldapsearch -x -b dc=root,dc=fr

# extended LDIF
#

# LDAPv3

# base <dc=root,dc=fr> with scope sub


# filter: (objectclass=*)
# requesting: ALL
#
# root.fr
dn: dc=root,dc=fr
objectClass: top

objectClass: dcObject
objectClass: organization
o: firm

dc: root
# admin, root.fr
dn: cn=admin,dc=root,dc=fr
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2

result: 0 Success
# numResponses: 3

# numEntries: 2

Vous devez obtenir un message de ce type en retour.

B. Ajout d'une arborescence


Une fois le serveur install et mis en place, il faut organiser l'annuaire.
Voici un arbre possible pour notre serveur d'authentification et de montage de
rpertoires personnels :

root.fr

utilisateurs

nfs

services

groupes

Voici un fichier ldif, arbre.ldif, permettant de crer cette arborescence :


dn: ou=utilisateurs, dc=root, dc=fr
objectclass: top

objectclass: organizationalUnit
ou: utilisateurs
description: Branche utilisateurs
dn: ou=services, dc=root, dc=fr
objectclass: top

objectclass: organizationalUnit
ou: services
description: Branche services

dn: ou=groupes, ou=services, dc=root, dc=fr


objectclass: top

objectclass: organizationalUnit
ou: groupes

description: Branche groupes


dn: ou=nfs, ou=services, dc=root, dc=fr
objectclass: top
objectclass: organizationalUnit
ou: nfs

description: Branche nfs

Pour construire l'arborescence dans OpenLDAP, on utilisera la commande ldapadd en


mettant en paramtre le fichier ldif :
ldapadd -x -f arbre.ldif -W -D cn=admin,dc=root,dc=fr
Si la requte russi, vous devriez avoir une rponse de ce type :
adding new entry "ou=utilisateurs, dc=root, dc=fr"
adding new entry "ou=services, dc=root, dc=fr"

adding new entry "ou=groupes, ou=services, dc=root, dc=fr"


adding new entry "ou=nfs, ou=services, dc=root, dc=fr"

C. Ajout d'un groupe d'utilisateur et d'u utilisateur


Pour crer un groupe d'utilisateurs, et de la mme manire que prcdemment, il nous
faudra implmenter et utiliser un fichier ldif, on le nommera gr.ldif :
dn: cn=mongroupe, ou=groupes, ou=services, dc=root, dc=fr
objectClass: top

objectClass: posixGroup
cn: mongroupe

gidNumber: 1111
description: groupe de test mongroupe

On utilise comme prcdemment la commande ldapadd pour ajouter


ce sous-arbre l'arborescence construite avant.
ldapadd -x -f gr.ldif -W -D cn=admin,dc=root,dc=fr
Le rsultat doit tre semblable au suivant :
adding new entry "cn=mongroupe, ou=groupes, ou=services, dc=root, dc=fr"

Nous allons maintenant ajouter un utilisateur la base LDAP.


Voici le fichier ldif ajouter. Ici on voit que l'on spcifie des choses semblables la
composition du fichier /etc/passwd, notemment le login, le password, le shell,...
dn: uid=dupont, ou=utilisateurs, dc=root, dc=fr
objectClass: top

objectClass: posixAccount
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: dupont
cn: Dupont Jean
sn: Dupont

givenName: Jean

uidNumber: 1100
gidNumber: 1111
homeDirectory: /home/dupont
loginShell: /bin/bash

userPassword: dupont
mail: dupont@root.fr
l: France

ou: mongroupe
On ajoute ce fichier ldif.
ldapadd -x -f users.ldif -W -D cn=admin,dc=root,dc=fr

adding new entry "uid=dupont, ou=utilisateurs, dc=root, dc=fr"

Chaque utilisateur doit avoir un uid unique. Par contre, le GID peut
tre le mme pour
plusieurs utilisateurs. Ils pourront ainsi
changer des fichiers entre eux.

D. Automontage

Pour utiliser automount avec OpenLDAP et NFS, il faut crer


des nouveaux
objets dans le schma LDAP. Ces objets pourront
tre utiliss dans les fichiers ldif pour
permettre
de
dclarer
l'automontage dans l'arbre LDAP.
Voici la dclaration de deux objets et de leurs attributs, c'est le
fichier nis.schema :
attributetype

1.3.6.1.1.1.1.25

NAME

'automountInformation'
DESC 'Information used by the autofs automounter'
EQUALITY caseExactIA5Match
SYNTAX

1.3.6.1.4.1.1466.115.121.1.26

SINGLE-

VALUE )
objectclass ( 1.3.6.1.1.1.1.13 NAME 'automount' SUP top
STRUCTURAL
DESC 'An entry in an automounter map'
MUST ( cn $ automountInformation )
MAY ( description ) )
objectclass ( 1.3.6.1.4.1.2312.4.2.2 NAME 'automountMap'
SUP top

STRUCTURAL

DESC 'An group of related automount objects'


MUST ( ou ) )
Le contenu de ce fichier est rajouter au contenu du fichier de
dclaration de schma
ldap, /etc/ldap/schema/nis.schema :
cat fin_nis.schema >> /etc/ldap/schema/nis.schema
Ensuite, il faut redmarrer le serveur OpenLDAP pour prendre en
compte les nouveaux
objets :
/etc/init.d/slapd restart
Maintenant, il faut mettre, dans l'arborescence LDAP, les
informations concernant
l'automontage :
Pour cela, on construit un nouveau fichier ldif que l'on nommera
automount.ldif.
dn: ou=auto.home, ou=nfs, ou=services, dc=root, dc=fr
objectClass: top
objectClass: automountMap
ou: auto.home
dn: cn=dupont, ou=auto.home, ou=nfs, ou=services, dc=root, dc=fr
objectClass: automount
cn: dupont
automountInformation:

-fstype=nfs,hard,intr,nodev,nosuid

192.168.1.13:/home/dupont
On lance ensuite la requte suivante qui permettra d'ajouter les options d'automontage
pour l'utilisateur dupont.
ldapadd -x -f automount.ldif -W -D cn=admin,dc=root,dc=fr

La rponse de votre serveur ldap doit tre semblable a suivante.

adding new entry "ou=auto.home, ou=nfs, ou=services, dc=root,


dc=fr"
adding

new

entry

"cn=dupont, ou=auto.home, ou=nfs,

ou=services, dc=root, dc=fr"

Nous avons ajouter les options d'automontage pour l'utilisateur


dupont. Afin d'viter de
refaire la mme manipulation pour
chaque nouvel utilisateur, nous allons simplement
gnraliser
l'automontage tous les utilisateurs, le fichier ci-dessous que l'on appelera
auto-general.ldif permettra de le faire.
dn: cn=/, ou=auto.home, ou=nfs, ou=services, dc=root, dc=fr
objectClass: automount
cn: /
automountInformation:

-fstype=nfs,hard,intr,nodev,nosuid

192.168.1.13:/home/&
et on ajoute les informtations au serveur.
ldapadd -x -f auto-general.ldif -W -D cn=admin,dc=root,dc=fr
On devra obtenir une rponse comme celle-ci

adding new entry "cn=/, ou=auto.home, ou=nfs, ou=services,


dc=root, dc=fr"
E. Installation du package libnss-ldap
Notre annuaire contient maintenant toutes les informations ncessaires pour les
utilisateurs et pour l'automontage nfs.
Il faut maintenant installer le package libnss-ldap. Il permet, pour l'authentification, de
choisir entre l'annuaire OpenLdap et les fichiers locaux /etc/passwd, /etc/group ...
Pour ce faire : apt-get install libnss-ldap

Adresse Serveur LDAP : 127.0.0.1

DN Base Annuaire : dc=root,dc=fr


Version Protocole LDAP : 3
Compte Admin : cn=admin,dc=root,dc=fr
Mot de Passe Admin : root

2. Client LDAP
A. Installation et configuration du package libnss-ldap
Le package installer sur le client ldap est le suivant :
apt-get install libnss-ldap
Ce package permet, chez le client, d'utiliser le service d'authentification du serveur
OpenLDAP ainsi que le service d'automontage automount NFS.
Lors de l'installation libnss-ldap, il y a des questions :
Adresse IP du serveur LDAP :
DN

192.168.1.13

Version LDAP

Pass Admin

root

LDAP Admin account

dc=root,dc=fr

cn=admin,dc=root,dc=fr

B. Configuration de l'authentification distance


Maintenant que nous avons installer libnss-ldap, nous allons pouvoir nous
authentifier. Cependant, il faut dire au systme qu'il utilise ldap pour s'authentifier
distance dans le cas ou le login n'existe pas sur la machine locale. Pour cela, nous allons
simplement modifier le fichier /etc/nsswitch.conf de la manire suivante :
passwd:

compat ldap

shadow:

compat ldap

group:

compat ldap

C. Installation et configuration du package libpam


L'installation de ce package est indispensable car il permet l'authentification des
utilisateurs dans les programmes qui utilisent PAM (Pluggable Authentication Module).
Pour l'installer :
apt-get install libpam-ldap

Pendant l'installation, il vous faudra renseigner les champs suivant :


Adresse serveur OpenLDAP

Authentification ncessaire la base :

Non

Cration d'une BD locale pour l'admin

192.168.1.13
Oui

Compte privilgi de l'annuaire

cn=admin,dc=root,dc=fr

Password

root

Chiffrement des passwords

Crypt

Une fois cette configuration termine, il faut diter les fichiers


/etc/pam.d/common-auth et /etc/pam.d/common-account.
# Fichier /etc/pam.d/common-account
account sufficient
pam_ldap.so
account sufficient
pam_unix.so use_first_pass

Le fichier /etc/pam.d/common-account permet de vrifier si un utilisateur dispose d'un


compte valide.
# Fichier /etc/pam.d/common-auth
auth
sufficient
pam_ldap.so
auth
sufficient
pam_unix.so nullok_secure use_first_pass
auth
required
pam_deny.so

Le fichier /etc/pam.d/common-auth permet d'authentifier un utilisateur.

D. configuration de l'automontage pour le client


Nous avons configur l'automontage NFS ct serveur. Il faut maintenant le configurer
ct client.
Commenons par installer les packages suivant :
apt-get install autofs autofs-ldap

Ensuite, il faut diter le fichier /etc/auto.master, et y insrer ceci :


/home
ldap://192.168.1.13/ou=auto.home,ou=nfs,ou=services,dc=root,dc=fr

II.

Installation dun serveur de partage de fichiers

NFS est un protocole permettant le partage de fichier entre plusieurs machines. Le client utilise
ce protocole et monte le rpertoire partag par le serveur. Il peut ainsi lire, crire dans le rpertoire. Ici,
nous allons utiliser ce protocole pour permettre l'utilisateur client de monter son propre home directory.

1. Serveur NFS
A. Installation du package
Installons le package d'installation du serveur NFS :

apt-get-install nfs-kernel-server
B. Configuration
La configuration de NFS se fait dans le fichier /etc/exports :
#Rpertoire partag
IP_client(options)
/home/dupont

192.168.1.10(rw,insecure)

Ici, on a configur le serveur de tel manire que le rpertoire /home/dupont puisse tre
mont par le client dont l'ip est : 192.168.1.10
Il ne faut pas oublier de mettre des bons droits d'accs au rpertoire /home/dupont.
Il faut autoriser le client dans /etc/hosts.allow afin de l'autoriser dialoguer avec le
serveur.
portmap
:
192.168.1.10
ALL

192.168.1.10

2. Client NFS
A. Installation du package nfs-common
Commenons par installer le package d'installation du client NFS :

apt-get-install nfs-common
B. Utilisation de nfs par le client (en manuel)
Une fois connect en tant qu'utilisateur, le montage se fera automatiquement. Cependant,
voici la commande permettant de raliser ce montage manuellement. Ici on monte le
rpertoire /home/dupont situ sur le server nfs ayant pour ip 192.168.1.13, dans le
rpertoire /home/dupont du client.
mount -t nfs 192.168.1.13:/home/dupont /home/dupont

III.

Configurations complmentaires

1. changes scuriss par TLS


Les changes avec le serveur LDAP se font en clair. C'est un gros problme de scurit. Pour scuriser
les transactions, il existe une manire simple : TLS (Transport Layer Security, anciennement nomm
SSLv3.0). TLS permettra le chiffrement des donnes transmises.

A. La thorie
Dans un premier temps, il faut gnrer une paire de clefs, une clef publique et une clef prive, ainsi qu'un
certificat. En ce qui concerne la paire de clefs, le principe est simple. Tout ce qui est chiffr avec une clef
ne peut tre dchiffr qu'avec l'autre clef. Ce que la clef prive chiffre, la cl publique dchiffre et
inversement. Le serveur utilisera sa clef prive et le client utilisera la clef publique correspondante. Le
certificat, lui, permet de vrifier qu'une clef est bien authentique. Le certificat permet de certifier qu'une
clef publique est bien la personne attendue. Souvent le certificat est mis par une socit tierce, sr et
reconnue.
La mise en place de TLS, dans notre cas, se traduit en trois tapes. Dans un premier temps, on gnre,
grce au logiciel libre OpenSSL, la paire de clefs ainsi que le certificat. Ensuite, on configure le serveur
OpenLDAP pour prendre en compte TLS. Enfin, il faut configurer le client.

B. Gnration de la paire de clefs et du certificat


Si vous ne l'avez pas, vous devez installer OpenSSL :
apt-get install openssl
Ensuite, grce OpenSSL, on va pouvoir crer la paire de clefs ainsi que le certificat.
Sur le serveur, dans le rpertoire, /etc/ldap, crer le rpertoire certificat.
Ce rpertoire contiendra les clefs et le certificat.
mkdir
cd

/etc/ldap/certificat
/etc/ldap/certificat

Il faut ensuite gnrer la clef prive du serveur.


openssl genrsa -out privateServerKey.pem 1024

Ensuite, il faut gnrer la clef publique ainsi que le certificat.


openssl req -new -key privateServerKey.pem -out serverCertificate.req

Une srie de questions vous seront poses. Seul le CN (Common Name) est important,
vous devez y mettre le nom dns complet du serveur OpenLDAP ou, dfaut, l'adresse
IP.
Ensuite, vous pouvez demander, des socits spcialises, de vous envoyer un
certificat.
Vous pouvez aussi certifier vous-mme votre clef publique.
Il faut se mettre la place d'une socit de certification. Commenons par gnrer la clef
Prive de notre propre socit de certification .
openssl genrsa -out societeCertificationKey.pem 1024
On gnre ensuite le certification d'authentification autocertifi de notre socit de
certification .
openssl req -new -x509
-key
societeCertification.pem -days 365

societeCertificationKey.pem

-out

Vous devrez rpondre quelques questions. Le CN (Common Name) est le nom dns de
votre ordinateur ou, dfaut, son adresse IP. En effet, vous tre votre propre socit de
certification.
Enfin, il reste certifier la cl publique du serveur.
openssl x509 -req -in serverCertificate.req -out serverCertificate.pem
-CA societeCertification.pem -CAkey societeCertificationKey.pem -days
365 -CAcreateserial
Ensuite, vous pouvez dtruire tous les fichiers *.req ainsi que
societeCertificationKey.pem. Ces fichiers ne servent plus rien.
La clef prive du serveur LDAP ne doit tre lisible que par root.
chown root:root privateServerKey.pem
chmod 400 privateServerKey.pem
Nous avons, sur le serveur, tous les fichiers ncessaires pour pouvoir utiliser TLS. Il
reste configurer SLAPD.

C. Configuration du serveur
Il suffit de modifier /etc/ldap/slapd.conf et d'ajouter les chemins vers les clefs et le
certificat.

# TLS
# Chemin vers le certificat du serveur LDAP

TLSCertificateFile /etc/ldap/certificat/serverCertificate.pem
# Chemin vers la clef prive du serveur LDAP
TLSCertificateKeyFile /etc/ldap/certificat/privateServerKey.pem
# Chemin vers le certificat de la CA

TLSCACertificateFile /etc/ldap/certificat/societeCertification.pem
Faites bien attention mettre ces paramtres de configuration dans la section global de
/etc/ldap/slapd.conf.
Ensuite, il faut redmarrer le serveur.
/etc/init.d/slapd restart

D. Configuration du client
Dans un premier temps, il faut copier le fichier SocieteCertification.pem, cre sur le
serveur OpenLdap, sur le client dans le dossier /etc/ldap/certificat/ .
Ensuite, il faut diter le fichier /etc/ldap/ldap.conf et rajouter les paramtres de
configuration ci-dessous.
#Directive SSL OpenSSL

TLS_CACERT /etc/ldap/certificat/societeCertification.pem
#Directives SSL libnss et libpam

# Activation SSL brute (port 636)


# ssl yes
# Activation SSL via commande starttls (port standard 389)
ssl start_tls

#Vrifie certificat serveur


tls_checkpeer yes

# Emplacement certificat Certificat Socit Certification


tls_cacertfile /etc/ldap/certificat/societeCertification.pem

2. Gestion de la base de donnes avec luma


Une fois la structure de l'arbre ldap cre, les oprations de recherche, modification,
ajout, suppression sont difficiles mettre en oeuvre avec les fichiers ldif et les
diffrentes commandes ldapadd, ldapsearch, etc.

Pour simplifier, nous avons utilis l'excellent outil Luma.


apt-get install luma

Une fois install et lanc, la configuration est trs simple : allez dans le menu Settings,
puis Edit server list. Ensuite Add. Enfin, remplissez les paramtres serveur et
indiquer l'authentification.
Name

un nom de serveur quelconque

Changer l'authentification

cn=admin,dc=root,dc=fr et pass root

Changer la configuration
Mode browser

:
:

adresse ip du serveur

accs et dition de l'arbre possible

CONCLUSION
Dans ce tutorial, nous avons pu voir que l'on peut utiliser le protocole LDAP pour
authentifier les utilisateurs d'un rseau. Pour cela, on utilisera une base de donne LDAP qui
stoquera les paramtres de chaque utilisateur et des services associs (NFS,...). On pourra raliser
des scripts ldif qui ajouteront, modifierons ou supprimerons des entres dans la base. Mais pour
nous simplifier la tche, il est noter que vous pouvez utiliser des programmes tel que LUMA
qui vous donnerons un aperu graphique de l'arborescence et vous permettra de raliser ces
oprations en toute simplicit.
Il ne faut cependant pas oublier de scuriser les accs. Pour cela, plusieurs options sont possibles
: on peut utiliser le protocole SSL pour crypter les changes, la librairie libpam permet de chiffrer
les mots de passe. Enfin, on pourra restreindre les accs au serveur en filtrant les ip.

BIBLIOGRAPHIE
http://damstux.free.fr/ : site d'aide ldap
http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/ldap-livre.html : site expliquant le
fonctionnement de LDAP.
http://fr.wikipedia.org/wiki/LDAP : site expliquant le fonctionnement de LDAP.

S-ar putea să vă placă și