Centre AFPA MEUDON
Centre Yves Bodiguel - 12/14 av du Maréchal Juin
Z.I de Vélizy
92366 MEUDON-LA-FORET CEDEX

Tél : 01 45 37 78 00
Télecopie : 01 46 30 90 62

 

 

 

 

 

 

 

 

MINIPROJET :

 

Interopérabilité Linux-Microsoft

Partage de fichiers et authentification

SAMBA 3 / LDAP

 

 

 

 

 

 

 

 

Réalisé par :

 

 


Alex FALZON

alex.falzon@caramail.com

 

Michaël VILLAR

villar.m@free.fr

 


 

 

 


°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

Retour à la page de garde

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

SOMMAIRE

 

*(Les phrases en italique verte sont des indicateurs de l'état d'avancement du projet).

 

 

Introduction: 4

 

 

Cahier des charges: 4

Structure de la plate-forme de test: 5

Methode adoptée: 7

 

 

Présentation et fonctionnement de l’annuaire LDAP : 9

Schémas fonctionnels d'authentification: 10

 

Format de la base et définitions : 12

Le Directory Information Tree. 12

Les attributs. 12

Les classes d'objet 12

Les schémas. 13

 

 

Installation de LINUX Fédora 3 : 15

 

L’installation de Linux Fédora core 3 est terminée.

 

 

Installation d'OpenLDAP : 4

Configuration d'OpenLDAP: 5

-Personnaliser la configuration du fichier slapd.conf: 6

Démarrage du serveur LDAP : 6

-Vérification des processus actifs : 7

-Identification du port d’écoute : 7

 

Création de la structure DIT prête à recevoir les données Samba.. 9

- Création d'un fichier /etc/openldap/base.ldiff : 9

- Insertion de ce fichier à l'annuaire LDAP : 9

-Confirmation des insertions : 9

-Génération des indexes: 10

 

L'annuaire est désormais prêt à recevoir nos comptes Samba.

 

 

Test de connexion au serveur LDAP : 10

 

Installation de l’outil d’administration ‘webmin’ : 11

Installation de l’outil d’administrationphpldapadmin’: 14

 

 

Configuration de Samba : 15

- Edition du fichier /etc/samba/smb.conf : 15

-Initialisation du mot de passe LDAP : 16

-Démarrage de Samba : 17

 

Le serveur samba est prêt à contrôler le domaine.

 

 

Gérer les comptes: 18

-Ajout d'un compte machine pour se connecter : 18

-Ajout d’un compte administrateur à notre domaine : 18

-Ajout des groupes d'utilisateurs : 18

-Ajout des utilisateurs dans ces groupes : 18

-Modification de ses propriétés (Samba) : 19

-Vérification des utilisateurs présents dans la base : 19

 

Création des environnements utilisateurs: 20

-Création du répertoire /export/samba-test/homes/directeur et gestion des droits : 21

-Gestion des droits et Création des répertoire userdir1, usercom1, usertec1 dans /export/samba-test/profiles/: 21

-Création du fichier /export/samba-test/netlogon/directeur.cmd et gestion des droits : 21

 

Configuration des postes clients : 23

·      Postes Windows : 24

·      Postes Linux : 24

 

On peut désormais joindre la machine POSTELDAP au domaine MICALEX avec les utilisateurs smbadmin, userdir1, usercom1 et usertec1.

 

 

Mise en place d'une authentification cryptée avec TLS: 27

 

L'authentification est maintenant cryptée.

 

 

Conclusion: 32

 

 

Annexe 1 : fichier slapd.conf fourni par défaut. 34

Annexe 2 : fichier slapd.conf définitif. 37

Annexe 3 : fichier config.php. 39

Annexe 4 : fichier smb.conf. 43

Annexe 5 : glossaire. 46

Annexe 6 : commandes importantes. 50

Annexe 7 : Bibliographie. 53

 

 

 

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Introduction:

 

            Ce projet et réalisé dans le cadre d'une formation AFPA au centre Yves Bodiguel à Meudon la forêt.

 

            Les outils et techniques utilisés sont ceux trouvé en Mars 2005.

 

            Tout au long de ce mini projet vous trouverez:

 

·  une présentation de la technologie LDAP

·  les différentes étapes pour la mettre en place: installation de l'OS (Fedora),de samba, des outils d'administrations et de l'annuaire lui-même.

·  Les procédures de paramétrage et les fichiers de configuration

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Cahier des charges:

 

Une entreprise ayant un parc informatique hétérogène (client Linux et Windows) souhaite centraliser la base des utilisateurs, autant pour la recherche d'information sur les utilisateurs que pour les authentifications.

 

Il faudra que cette base de donnée (annuaire) soit rapide d'accès, que les clients Windows/Linux puissent s'authentifier sur n'importe quelle station du réseau, et que les communications client/serveur d'authentification soit sécurisées et cryptées.

 

Les produits choisis sont libres pour l'OS Linux Fédora, et pour le serveur LDAP, OpenLDAP.

 

 

 

Pour retourner au sommaire cliquez ici

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Structure de la plate-forme de test:

 

Pour l'installation de cette plate-forme, nous allons utiliser trois machines identiques connectées à un réseau Ethernet:

 

Structure physique:………   Intel(R) Celeron(R) CPU 2.40GHz

2.39 GHz, 512 Mo de RAM

 

Structure logique:………..    sur le 1er :

                                               - Serveur samba PDC et LDAP sous Fedora core3

                                              

                                               sur le 2nd :

                                               - WindowsXP pro sp2 + VMware

                                               en virtuel:         - Serveur samba PDC et LDAP sous Fedora core3

 

                                               sur le 3ème :       (en multiboot)

                                               - station Windows XP pro

                                               - station Fedora core3

 

 

 

le nom de domaine choisi pour le projet est micalex.

 

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Méthode adoptée:

 

 

Le 1er serveur permet de faire les tests post-recherche.

 

Le 2nd permet la mise en place "propre" du système définitif et des captures pour le rapport.

 

Le 3ème sert de station test Microsoft et Linux.

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 


Présentation et fonctionnement de l’annuaire LDAP :

 

 

 

 

Le LDAP (Lightweight Directory Access Protocol) est la version TCP/IP du protocole DAP, ce dernier étant le protocole pour accéder au protocole OSI du service d'annuaire X500.

 

Dans un premier temps LDAP s'est contenté d'être l'interface à des annuaires X500, mais maintenant LDAP peut gérer complètement les bases (standalone LDAP).

 

 

 

 

 

 


Schémas fonctionnels d'authentification:

 

- Pour Linux:

 

 

            - Pour Windows:

 

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Format de la base et définitions :

 

 

 

Le Directory Information Tree

 

Les LDAP standalone utilisent le format de base de données LDBM. Chaque entrée est connue de manière unique dans l'arborescence grâce à son dn (Distinguished Name).

 

Le dn indique le chemin à parcourir pour en partant du sommet arriver à l'entrée correspondante (exemple: dn = Isabelle Bourdais.technique.boulogne.micalex.fr ).

 

 

 

Les attributs

 

Chaque entrée DSE peut être considérée comme un objet possédant donc certains attributs, par exemple si une personne est une entrée, les attributs peuvent être, le nom, le prénom, l'âge, .... On peut aussi définir des attributs obligatoires (MUST) et d'autres optionnels (MAY).

 

 

 

Les classes d'objet

 

On regroupe les objets qui sont du même domaine dans une classe d'objet, celle-ci est caractérisée par des attributs obligatoires ou optionnels et un type.

 

 

Les types de classe d'objet sont:


- type structurel 

 classes d’objets concrets de l'annuaire (personnes, groupes de personnes, ...)

- type auxiliaire

classes d'objets qu'on peut créer, pour rajouter des attributs supplémentaires à des classes d'objet de type structurel déjà existantes.

En C++ on dira que la classe auxiliaire dérive d'une classe structurelle.

- type abstraite

classes d'objet ( par défaut) qui n'ont pas de signification concrète

par exemple la classe top est la classe d'objet générique.

toutes les autres classes dérivent de cette classe.

 

 

Toutes les autres classes d'objet dérivent de la classe top (la racine). Chaque classe hérite des propriétés d'une classe père et possède des attributs supplémentaires par rapport à ce dernier.

 

 

 

Les schémas

 

Un schéma décrit toutes les règles qu'utilisent le serveur LDAP pour décrire les classes d'objets (attributs, syntaxe, ...).

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Installation de LINUX Fédora 3 :

 

-Après avoir "booté" sur le DVD d'installation taper entrer pour démarrer.

 

-Choisir la langue (french) et le type de clavier (french latin1).

 

-Choisir le type d'installation personnaliser, un partitionnement automatique.

 

-Sectionner "supprimer toutes les partitions Linux du système" et confirmer.

 

-Taper sur suivant à la fenêtre "configuration du disque".

 

-Sélectionner "configuration des options avancées du chargeur de démarrage"dans la page "configuration du chargeur de démarrage".

 

-Sélectionner "forcer l'utilisation de LBA32" dans la page "configuration avancée du chargeur de démarrage".

 

-Entrer vos paramètres réseau:

 

Appuyer sur éditer pour accéder à l’éditeur d’interface

 

 

 

 

-activer le firewall dans la page "configuration du pare-feu".

 

-Sélectionner french dans la page "autre langue" et votre fuseau horaire (Europe/Paris) dans la

 

-page "sélection du fuseau horaire".

-Entrer votre mot de passe.

 

-Choisir les paquetages suivants:


Zone de Texte:

 

 

 

 

 



 

 


 

 

-Attendre quelques minutes puis redémarrer.

 

-Accepter le contrat de licence.

 

-Définir l’heure, la, résolution d’affichage, les données d’utilisateur du système.

 

 

L’installation de Linux Fédora core 3 est terminée.

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 


Installation d'OpenLDAP :

 

 

Nous avons installé OpenLDAP grâce aux paquetages présent lors de l'installation de Linux Fedora core 3:

·        openldap-3.2.13-2.i386.rpm

 

 

Remarque:

Si la distribution utilisée ne contient pas le paquetage d'origine, il faut alors le télécharger à partir du site: http://www.openldap.org.

Une fois téléchargé, il faut installer le paquetage:

 

root#rpm -i openldap-3.2.13-2.i386.rpm

 

 

Récupérer le fichier samba.schema en téléchargeant à l’adresse suivante (http://web.vcs.u52.k12.me.us/linux/smbldap) le smbldap-installer  de Matt Oquist (Software Engineering Consultant).

Mettre ce schéma dans /etc/openldap/schema/

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Configuration d'OpenLDAP:

 

 

            Le dossier /etc/openldap contient :

 

·        un répertoire contenant les schémas.

·        Un fichier ldap.conf.

·        Un fichier slapd.conf.

 

 

Contenu du fichier ldap.conf :

#

# LDAP Defaults

#

 

# See ldap.conf(5) for details

# This file should be world readable but not world writable.

 

#BASE dc=example, dc=com

#URI  ldap://ldap.example.com ldap://ldap-master.example.com:666

 

#SIZELIMIT  12

#TIMELIMIT  15

#DEREF            never

HOST 127.0.0.1

BASE dc=micalex,dc=fr

 



Remarque:

Le fichier le plus important d'openldap est le slapd.conf (voir annexe 1).

Ce fichier défini la configuration de base de l'annuaire ldap.

 

-Personnaliser la configuration du fichier slapd.conf:

 

·        ligne 69: il faut renseigner le suffixe:

suffix                "dc=micalex,dc=fr"

 

·        ligne 70: il faut renseigner le dn de l'administrateur de l'annuaire:

rootdn              "cn=manager,dc=micalex,dc=fr"

 

·        Définir un mot de passe crypté pour l'administration de l'annuaire :

[root@srvldapv]#slappasswd –v –s micalex –h {CRYPT}

 

On obtient la valeur cryptée du mot de passe:

{CRYPT}avMFINMraPfxQ.

 

D’autres méthodes de cryptage son applicables (voir : man slappasswd).

 

Exemple :

[root@srvldapv]#slappasswd

New password:*******

Re-enter password:*******

On obtient la valeur cryptée du mot de passe:

{SSHA}RcsffR/524CVgfAERg/dY5247

 

·        Décommenter la ligne 75 et remplacer la valeur:{crypt}ijFYNcSNctBYg par la valeur:                       {CRYPT}avMFINMraPfxQ.

 

le fichier slapd.conf définitif est représenté sur lannexe 2.

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Démarrage du serveur LDAP :

           

[root@srvldapv]#Service ldap start

 

-Vérification des processus actifs :

 
        [root@srvldapv]#ps -ef | grep slapd
               root 2388 0.0 0.8 40140 4152 ?   Ssl 12:54 0:00 /usr/sbin/slapd –u ldap –h ldap:///
               root 4486 0.0 0.1 3720 740 pts/0 S+ 12:54 0:00 grep slapd
 

-Identification du port d’écoute :

 
        [root@srvldapv]#netstat -natup | grep LISTEN
               tcp 0  0 0.0.0.0:389  0.0.0.0:*  LISTEN 17433/slapd
               tcp 0  0 0.0.0.0:22   0.0.0.0:*  LISTEN   290/sshd
 
 
Le serveur fonctionne bien.

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 


Création de la structure DIT prête à recevoir les données Samba

 

 

- Création d'un fichier /etc/openldap/base.ldiff :

 

[root@srvldapv]#touch /etc/openldap/base.ldiff

# Organization for Samba Base

dn: dc=micalex,dc=fr

objectclass: dcObject

objectclass: organization

dc: micalex

o: Samba 3

description: Samba 3

 

# Manager LDAP

dn: cn=Manager,dc=micalex,dc=fr

objectclass: organizationalRole

cn: Manager

description: LDAP Manager

 

# Conteneur d'utilisateurs

dn: ou=Users,dc=micalex,dc=fr

objectclass: top

objectclass: organizationalUnit

ou: Users

 

# Conteneur de machines

dn: ou=Computers,dc=micalex,dc=fr

objectclass: top

objectclass: organizationalUnit

ou: Computers

 

# Administrateur

dn: cn=admin,ou=Users,dc=micalex,dc=fr

cn: admin

objectclass: top

objectclass: organizationalRole

objectclass: simpleSecurityObject

userPassword: {SSHA}aVF+ESI/rloVCQsmLqYinLlkh/v1krej

 

 

 

- Insertion de ce fichier à l'annuaire LDAP :

 

[root@srvldapv ~]# ldapadd -W -D 'cn=Manager,dc=micalex,dc=fr' -xh localhost -f /etc/openldap/base.ldiff

 

Enter LDAP Password:*******

 

 

-Confirmation des insertions :

 

adding new entry "dc=micalex,dc=fr"

adding new entry "cn=Manager,dc=micalex,dc=fr"

adding new entry "ou=Users,dc=micalex,dc=fr"

adding new entry "ou=Machines,dc=micalex,dc=fr"

adding new entry "cn=admin,ou=Users,dc=micalex,dc=fr"

 

-Génération des index :

 

[root@srvldapv]#slapindex  –f  /etc/openldap/slapd.conf

 

L'annuaire est désormais prêt à recevoir nos comptes Samba.

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Test de connexion au serveur LDAP :

 

[root@srvldapv ~]# ldapsearch -b 'dc=micalex,dc=fr' -xh srvldapv.micalex.fr

# extended LDIF

#

# LDAPv3

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

# filter: (objectclass=*)

# requesting: ALL

 

# micalex.fr

dn: dc=micalex,dc=fr

objectClass: dcObject

objectClass: organization

dc: micalex

o: Samba 3

description: Samba 3

 

# Manager, micalex.fr

dn: cn=Manager,dc=micalex,dc=fr

objectClass: organizationalRole

cn: Manager

description: LDAP Manager

 

# Users, micalex.fr

dn: ou=Users,dc=micalex,dc=fr

objectClass: top

objectClass: organizationalUnit

ou: Users

 

# Machines, micalex.fr

dn: ou=Machines,dc=micalex,dc=fr

objectClass: top

objectClass: organizationalUnit

ou: Machines

 

# admin, Users, micalex.fr

dn: cn=admin,ou=Users,dc=micalex,dc=fr

cn: admin

objectClass: top

objectClass: organizationalRole

objectClass: simpleSecurityObject

userPassword:: e1NTSEF9YVZGK0VTSS9ybG9WQ1FzbUxxWWluTGxraC92MWtyZWo=

 

# search result

search: 2

result: 0 Success

 

# numResponses: 6

# numEntries: 5

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Installation de l’outil d’administration ‘webmin’ :

 

-Télécharger ‘webmin-2.180-1.noarch.rpm’ depuis:

 

http://webmin.com/download.html

 

 

-Installer le paquetage :

 

[root@srvldapv]#rpm –i

 

 

-Pour utiliser cet outil, taper dans firefox http://127.0.0.1:10000/ .

 

-Pour établir une connexion sécurisée (HTTPS):

 

1) Ouvrer Webmin, cliquer sur Webmin Configuration, puis SSL Encryption .

 

2) Créer une nouvelle clé SSL en cliquant sur Create now.

 

Pour utiliser Webmin, taper dorénavant dans firefox https://127.0.0.1:10000/ .

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 


Installation de l’outil d’administrationphpldapadmin’:

 

 

-Télécharger phpldapadmin 0.9.5 depuis:

http://phpldapadmin.sourceforge.net/

 

-Désarchiver vers /var/www/html/ avec :

[root@srvldapv]#tar –xvzf  /root/phpldapadmin-0.9.5.tar.gz –C /var/www/html/

 

-Veriffier avec:

[root@srvldapv]#ls  /var/www/html/

 

-Démarrer le serveur web avec:

[root@srvldapv]#service httpd start

 

-Vérifier son bon fonctionnement, vous devriez tomber sur la page test d’apache avec:

            http://192.168.1.207/

 

            ___________________________________________________

 

 

-Editer le fichier config.php.example comme sur l’annexe 3.

 

-Le renommer avec :

[root@srvldapv]#cp  /var/www/html/phpldapadmin-0.9.5/config.php.example  /var/www/html/phpldapadmin-0.9.5/config.php

 

-Pour utiliser cet outil, taper dans firefox http://srvldapv/phpldapadmin-0.9.5/ .

 

 

 

- Pour établir une connexion sécurisée (HTTPS):

 

 

1) Ouvrer Webmin, cliquer sur Servers, puis Apache, et enfin Per-Directory Options Files.

 

 

            2) Indiquer le chemin de Phpldapadmin:

 

                        /var/www/html/php

 

 

3) Cliquer ensuite sur Create Options file.

 

 

Pour utiliser Phpldapadmin, taper dorénavant dans firefox

 

https://srvldapv/phpldapadmin-0.9.5/ .

 

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Configuration de Samba :

 

- Edition du fichier /etc/samba/smb.conf :


fichier smb.conf

[global]

passdb backend = ldapsam:ldap://srvldapv.micalex.fr, guest

ldap admin dn = cn=Manager,dc=micalex,dc=fr

ldap ssl = off

ldap delete dn = no

ldap user suffix = ou=Users

ldap machine suffix = ou=Computers

ldap group suffix = ou=Groups

ldap suffix = dc=micalex,dc=fr

workgroup = MICALEX

netbios name = SRVLDAPV

server string = SRVLDAPV

encrypt passwords = yes

 

domain logons = yes

os level = 65

domain master = Yes

local master = Yes

security = user

 

log file = /var/log/samba/%m.log

log level = 2

 

[tmp]

comment = Partage des fichiers temporaires

path = /tmp

read only = no

writable = yes

guest ok = yes

 

; Scripts et stratégies

[netlogon]

path = /export/samba-test/netlogon

comment = Network logon service

read only = yes

guest ok = yes

 

; A mapper via \\serveur\utilisateur

[homes]

path = /export/samba-test/homes/%u

comment = Home directories

valid users = %S

writeable = yes

read only = no

create mask = 0664

directory mask = 0775

browsable = no

 

; A mapper via \\serveur\profiles\utilisateur

[profiles]

path = /export/samba-test/profiles

create mask = 0600

directory mask = 0700

browsable = no

writeable = yes

-Initialisation du mot de passe LDAP :

 

[root@srvldapv]#smbpasswd –w micalex

Setting stored password for “cn=Manager,dc=micalex,dc=fr” in secrets.tdb

 

-Démarrage de Samba :

 

[root@srvldapv]#service samba start

 

Le serveur samba est prêt à contrôler le domaine.

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Gérer les comptes:

 

 

-Ajout d'un compte machine pour se connecter :

 

[root@srvldapv]#useradd POSTELDAP$ (sous Unix)

[root@srvldapv]#smbpasswd -a -m POSTELDAP (pour Samba)

 

 

-Ajout d’un compte administrateur à notre domaine :

 

-Ajout d'un administrateur Samba:

[root@srvldapv]#useradd -o -u 0 -g 0 smbadmin (Unix)

[root@srvldapv]#smbpasswd -a smbadmin (Samba)

 

Remarque:

Ce compte sera utilisé pour toutes les opérations effectuées avec la commande net et pour la jonction de la machine Windows au domaine.

 

 

-Ajout des groupes d'utilisateurs :

 

[root@srvldapv]#groupadd direction (Unix)

[root@srvldapv]#groupadd commercial (Unix)

[root@srvldapv]#groupadd technique (Unix)

 

-Ajout des utilisateurs dans ces groupes :

 

[root@srvldapv]#useradd -g direction userdir1 (Unix)

[root@srvldapv]#smbpasswd -a userdir1 (Samba)

 

[root@srvldapv]#useradd -g commercial usercom1 (Unix)

[root@srvldapv]#smbpasswd -a usercom1 (Samba)

 

[root@srvldapv]#useradd -g technique usertec1 (Unix)

[root@srvldapv]#smbpasswd -a usertec1 (Samba)

 

-Modification de ses propriétés (Samba) :

 

Définition des répertoires profiles et homedir ainsi que la mise en place des scripts et d'une lettre de lecteur réseau pour l'utilisateur:

 

[root@srvldapv]#pdbedit -r --profile=\\\\ SRVLDAPV \\profiles\\userdir1 --homedir =\\\\SRVLDAPV\\userdir1--script=userdir1.cmd --drive=U: userdir1

 

[root@srvldapv]#pdbedit -r --profile=\\\\ SRVLDAPV \\profiles\\usercom1 --homedir =\\\\SRVLDAPV\\usercom1--script=usercom1.cmd --drive=U: usercom1

 

[root@srvldapv]#pdbedit -r --profile=\\\\ SRVLDAPV \\profiles\\usertec1 --homedir =\\\\SRVLDAPV\\usertec1--script=usertec1.cmd --drive=U: usertec1

 

-Vérification des utilisateurs présents dans la base :

 
 


[root@srvldapv]#pdbedit -vL

 

 

 

 

 

                                   Ou via phpldapadmin:

 

 

 

 

 

 

 

 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Création des environnements utilisateurs:

 

 

-Création du répertoire /export/samba-test/homes/directeur et gestion des droits :

 

[root@srvldapv]#mkdir -p /export/samba-test/homes/userdir1

[root@srvldapv]#chown userdir1:direction /export/samba-test/homes/userdir1

[root@srvldapv]#chmod 700 /export/samba-test/homes/userdir1

 

[root@srvldapv]#mkdir –p /export/samba-test/homes/usercom1

[root@srvldapv]#chown userdir1:direction /export/samba-test/homes/usercom1

[root@srvldapv]#chmod 700 /export/samba-test/homes/usercom1

 

[root@srvldapv]#mkdir –p /export/samba-test/homes/usertec1

[root@srvldapv]#chown userdir1:direction /export/samba-test/homes/usertec1

[root@srvldapv]#chmod 700 /export/samba-test/homes/usertec1

 

 

 

-Gestion des droits et Création des répertoire userdir1, usercom1, usertec1 dans /export/samba-test/profiles/:

 

[root@srvldapv]#mkdir –p /export/samba-test/profiles/userdir1

[root@srvldapv]#chown userdir1:direction /export/samba-test/profiles/userdir1

[root@srvldapv]#chmod 700 /export/samba-test/profiles/userdir1

 

[root@srvldapv]#mkdir –p /export/samba-test/profiles/usercom1

[root@srvldapv]#chown usercom1:commercial /export/samba-test/profiles/usercom1

[root@srvldapv]#chmod 700 /export/samba-test/profiles/usercom1

 

[root@srvldapv]#mkdir –p /export/samba-test/profiles/usertec1

[root@srvldapv]#chown usertec1:technique /export/samba-test/profiles/usertec1

[root@srvldapv]#chmod 700 /export/samba-test/profiles/usertec1

 

 

 

-Création du fichier /export/samba-test/netlogon/directeur.cmd et gestion des droits :

 

 

[root@srvldapv]#echo -e "echo \"Test\"\npause" > /export/samba-test/netlogon/userdir1.cmd

[root@srvldapv]#chown directeur:direction /export/samba-test/netlogon/userdir1.cmd

[root@srvldapv]#chmod 400 /export/samba-test/netlogon/userdir1.cmd

 

 

 

 

On peut désormais joindre la machine POSTELDAP au domaine MICALEX avec les utilisateurs smbadmin, userdir1, usercom1 et usertec1.

 

 


Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Configuration des postes clients :

 

·        Postes Windows :

 

Remarque:

Pour que les postes Windows soient authentifiés il faut les faire appartenir au Domaine NT (MICALEX) que nous avons créer.

 

-Il faut au préalable créer un compte machine sur le PDC du Domaine :

 

[root@srvldapv]#useradd POSTE07$

[root@srvldapv]#smbpasswd –a –m POSTE07

 


 
-Procédure sur le poste client:

 

 

 

 

 

1) Cliquez droit sur le poste de travail

 

2) Sélectionnez propriétés

 

3) Sélectionnez l’onglet nom de l’ordinateur

 

4) Sélectionnez Modifier


 

 

 

 

 
 

 

 

 

 

 

 

 

 


5) Sélectionner "Domaine" dans "membre de:" et rentrer le nom du Domaine NT que vous voulez

 

 

 

 

 

 
 

 

 

 


6) Utilisez le compte smbadmin pour rejoindre le Domaine.

 

 

 

 

 

 

 


 

 

7) Redémarrez le poste puis utiliser un compte existant sous Samba (userdir1, usercom1,…) pour vous authentifier sur le poste.

 

 


·        Postes Linux :

 

Remarque:

Pour que les postes Linux s’authentifient sur l’annuaire LDAP on utilise PAM (Pluggable Authentication Modules) qui nous permettra de définir les niveaux et les méthodes d’authentification.

PAM est un service d’authentification qui nécessite que les comptes qui doivent s’authentifier sur l’annuaire LDAP existent en local.

Pour la configuration du service PAM sur les postes clients nous utilisons le GUI : Webmin.

 

-Procédure :

 

1) Connexion a Webmin en mode sécurisé (https). On utilise le compte root du poste clients.

Pour utiliser cet outil, taper dans firefox:           https://127.0.0.1:10000/

 

2) Sélectionnez le module PAM situé sous l'onglet System

 

 

3) Sélectionnez le service login

 


 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

 

Mise en place d'une authentification cryptée avec TLS:

 

Les captures suivantes attestent d'une faille de sécurité.

 

 

En effet le mot de passe est bien crypté (même chiffrés, ceux-ci sont précieux... On trouve de nombreux outils pour les "casser"...), mais pas le SID, le GID et l' UID passent en clair sur le réseau. Pour respecter le cahier des charges nous avons retenu la solution d'authentification cryptée avec TLS.

 

 


Une manière simple de sécuriser nos transactions est de passer par TLS (Transport Layer Security, anciennement SSLv3.0, renommé et normalisé par l'IETF, cf. RFC2246), qui assurera le chiffrement des données

 

Remarque:

Pour que l’authentification soit cryptée il faut utiliser le protocole de dialogue sécurisé TLS. Il utilise un certificat pour l'authentification entre le poste client et le serveur LDAP.

 

 

 

1) Dans le répertoire /etc/openldap, créer un répertoire 'cert' qui contiendra les clefs et le certificat :


[root@srvldapv]#mkdir /etc/openldap/cert

 

2) Dans ce répertoire, générez la clef privée du serveur :


[root@srvldapv]#openssl genrsa -out serverkey.pem 1024

 

3) Puis la clef publique et la demande de certificat (dans cert.req) :


[root@srvldapv]#openssl req -new -key serverkey.pem -out servercert.req


            Complétez correctement les informations qui vous sont demandées. Pensez à bien renseigner le CN (Common Name) par le FQDN (nom dns complet) de votre serveur, il sera utilisé lors de l'interrogation de la base LDAP par les clients.

 

 

 

Remarque:

Pour autoriser les communications TLS, il faut modifier le fichier ldap.conf. Deux types de directives existent :

·                    les directives OpenLDAP pures (voir Annexe 6 )

·                    les directives ajoutées par libpam_ldap et libnss_ldap.

 

 

 

4) Sur le serveur LDAP (srvldapv.micalex.fr), modifier /etc/openldap/slapd.conf et ajouter les chemins vers les différentes clefs et le certificat :

 

# TLS
# Chemin vers le certificat du serveur LDAP
TLSCertificateFile      /etc/openldap/cert/servercert.pem
# Chemin vers la clef privée du serveur LDAP
TLSCertificateKeyFile   /etc/openldap/cert/serverkey.pem
# Chemin vers le certificat de la CA
TLSCACertificateFile    /etc/openldap/cert/cacert.pem
 
 

5) Ajoutez ceci au fichier ldap.conf du poste client :

 

#Directive SSL OpenSSL (pour ldapsearch notamment)
TLS_CACERT /etc/openldap/cert/cacert.pem
 
#Directives SSL libnss et libpam
# Activation SSL brute (port 636)
# ssl yes
# Acivation SSL via commande starttls (port standard 389)
ssl start_tls
#Verifie certificat serveur
tls_checkpeer yes
# Emplacement certificat CA
tls_cacertfile /etc/openldap/cert/cacert.pem

 

 

6) Le fichier 'cacert' (Il s'agit du certificat) doit être présent sur le disque de la station. Il convient de le copier au bon endroit (ici /etc/openldap/cert/) depuis notre serveur LDAP.

 

 

 

Grâce à cette méthode le sniffe du message n'apporte plus aucune information critique:

 

 

 

 

L'authentification est maintenant cryptée.


 

Pour retourner au sommaire cliquez ici

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

Conclusion:

 

             

Ce projet d’interopérabilité de Windows et de Linux nous a permis de nous rendre compte des difficultés d’authentifications pour des systèmes hétérogènes. Il a fallut mettre en place une stratégie nous permettant d’unifié la gestion des comptes utilisateurs tout en assurant un niveau de sécurité acceptable pour l’authentification.

           

            Nous avons donc choisi deux stratégies d’authentifications différentes mais s’appuyant sur une base unique de comptes :

 

-         Pour Windows nous avons opté pour un domaine NT avec pour contrôleur Samba 3 avec comme base de comptes un annuaire LDAP.

-         Pour Linux nous avons choisis une authentification directe des comptes utilisateurs sur un annuaire LDAP.

 

Il a fallut assurer un dialogue sécurisé pour l’authentification, de base entre Windows et Samba 3 et un dialogue cryptée par TLS pour Linux et LDAP.

 

            Nous avons remarquée une faille de sécurité si l’on utilise les profils errants car le passage des fichiers du serveur à la station s’effectue en clair.

 

            Pour une administration en graphique nous avons opté pour des interfaces permettant l’administration distante. Cette administration est sécurisé par l’emploi  de connexions sécurisé : protocole HTTPS.

 

 

L’interface Webmin permet de plus une administration système de n’importe quel poste sous Linux, on pourras gérer le niveau d’authentification de n’importe quel processus par le biais de PAM.

 

Certain logicels nous offres la  possibilité d’affiner encore plus la sécurité. Par exemple le firewall NuFW est capable de gérer des règles de filtrages en fonction des utilisateurs. Pour chaque paquet de demande de connexion il peut utiliser l'annuaire LDAP pour authentifier l'utilisateur. Les tests de performance démontrent l'efficacité et la rapidité de cette méthode. Nombre d'autres logiciels offres des solutions s'appuyant sur cette technique stable et gratuite.

 

Grâce a ce projet nous avons pu voir que l’interopérabilité dans un milieu hétérogène est possible mais reste une solution lourde à la mise en place et réclame une finesse extrême à la configuration pour fournir un niveau de sécurité acceptable. 

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°


Annexe 1 : fichier slapd.conf fourni par défaut

 
 

#

# See slapd.conf(5) for details on configuration options.

# This file should NOT be world readable.

#

include           /etc/openldap/schema/core.schema

include           /etc/openldap/schema/cosine.schema

include           /etc/openldap/schema/inetorgperson.schema

include           /etc/openldap/schema/nis.schema

 

# Allow LDAPv2 client connections.  This is NOT the default.

allow bind_v2

 

# Do not enable referrals until AFTER you have a working directory

# service AND an understanding of referrals.

#referral   ldap://root.openldap.org

 

pidfile           /var/run/slapd.pid

argsfile    /var/run/slapd.args

 

# Load dynamic backend modules:

# modulepath      /usr/sbin/openldap

# moduleload      back_bdb.la

# moduleload      back_ldap.la

# moduleload      back_ldbm.la

# moduleload      back_passwd.la

# moduleload      back_shell.la

 

# The next three lines allow use of TLS for encrypting connections using a

# dummy test certificate which you can generate by changing to

# /usr/share/ssl/certs, running "make slapd.pem", and fixing permissions on

# slapd.pem so that the ldap user or group can read it.  Your client software

# may balk at self-signed certificates, however.

# TLSCACertificateFile /usr/share/ssl/certs/ca-bundle.crt

# TLSCertificateFile /usr/share/ssl/certs/slapd.pem

# TLSCertificateKeyFile /usr/share/ssl/certs/slapd.pem

 

# Sample security restrictions

#     Require integrity protection (prevent hijacking)

#     Require 112-bit (3DES or better) encryption for updates

#     Require 63-bit encryption for simple bind

# security ssf=1 update_ssf=112 simple_bind=64

 

# Sample access control policy:

#     Root DSE: allow anyone to read it

#     Subschema (sub)entry DSE: allow anyone to read it

#     Other DSEs:

#           Allow self write access

#           Allow authenticated users read access

#           Allow anonymous users to authenticate

#     Directives needed to implement policy:

# access to dn.base="" by * read

# access to dn.base="cn=Subschema" by * read

# access to *

#     by self write

#     by users read

#     by anonymous auth

#

# if no access controls are present, the default policy

# allows anyone and everyone to read anything but restricts

# updates to rootdn.  (e.g., "access to * by * read")

#

# rootdn can always read and write EVERYTHING!

 

#######################################################################

# ldbm and/or bdb database definitions

#######################################################################

 

database    bdb

suffix            "dc=my-domain,dc=com"

rootdn            "cn=Manager,dc=my-domain,dc=com"

# Cleartext passwords, especially for the rootdn, should

# be avoided.  See slappasswd(8) and slapd.conf(5) for details.

# Use of strong authentication encouraged.

# rootpw          secret

# rootpw          {crypt}ijFYNcSNctBYg

 

# The database directory MUST exist prior to running slapd AND

# should only be accessible by the slapd and slap tools.

# Mode 700 recommended.

directory   /var/lib/ldap

 

# Indices to maintain for this database

index objectClass                       eq,pres

index ou,cn,mail,surname,givenname      eq,pres,sub

index uidNumber,gidNumber,loginShell    eq,pres

index uid,memberUid                     eq,pres,sub

index nisMapName,nisMapEntry            eq,pres,sub

 

# Replicas of this database

#replogfile /var/lib/ldap/openldap-master-replog

#replica host=ldap-1.example.com:389 starttls=critical

#     bindmethod=sasl saslmech=GSSAPI

#     authcId=host/ldap-master.example.com@EXAMPLE.COM

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°


Annexe 2 : fichier slapd.conf définitif.

 
 

#

# See slapd.conf(5) for details on configuration options.

# This file should NOT be world readable.

#

include           /etc/openldap/schema/core.schema

include           /etc/openldap/schema/cosine.schema

include           /etc/openldap/schema/inetorgperson.schema

include           /etc/openldap/schema/nis.schema

#include          /etc/openldap/schema/java.shema

#include          /etc/openldap/schema/openldap.shema

#include          /etc/openldap/schema/misc.shema

#include          /etc/openldap/schema/dyngroup.shema

#include          /etc/openldap/schema/samba.shema

 

# Allow LDAPv2 client connections.  This is NOT the default.

allow bind_v2

 

# Do not enable referrals until AFTER you have a working directory

# service AND an understanding of referrals.

#referral   ldap://root.openldap.org

 

pidfile           /var/run/slapd.pid

argsfile    /var/run/slapd.args

 

# Load dynamic backend modules:

# modulepath      /usr/sbin/openldap

# moduleload      back_bdb.la

# moduleload      back_ldap.la

# moduleload      back_ldbm.la

# moduleload      back_passwd.la

# moduleload      back_shell.la

 

# The next three lines allow use of TLS for encrypting connections using a

# dummy test certificate which you can generate by changing to

# /usr/share/ssl/certs, running "make slapd.pem", and fixing permissions on

# slapd.pem so that the ldap user or group can read it.  Your client software

# may balk at self-signed certificates, however.

# TLSCACertificateFile /usr/share/ssl/certs/ca-bundle.crt

# TLSCertificateFile /usr/share/ssl/certs/slapd.pem

# TLSCertificateKeyFile /usr/share/ssl/certs/slapd.pem

 

# Sample security restrictions

#     Require integrity protection (prevent hijacking)

#     Require 112-bit (3DES or better) encryption for updates

#     Require 63-bit encryption for simple bind

# security ssf=1 update_ssf=112 simple_bind=64

 

# Sample access control policy:

#     Root DSE: allow anyone to read it

#     Subschema (sub)entry DSE: allow anyone to read it

#     Other DSEs:

#           Allow self write access

#           Allow authenticated users read access

#           Allow anonymous users to authenticate

#     Directives needed to implement policy:

# access to dn.base="" by * read

# access to dn.base="cn=Subschema" by * read

# access to *

#     by self write

#     by users read

#     by anonymous auth

#

# if no access controls are present, the default policy

# allows anyone and everyone to read anything but restricts

# updates to rootdn.  (e.g., "access to * by * read")

#

# rootdn can always read and write EVERYTHING!

 

#######################################################################

# ldbm and/or bdb database definitions

#######################################################################

 

database    bdb

suffix            "dc=micalex,dc=fr"

rootdn            "cn=Manager,dc=micalex,dc=fr"

# Cleartext passwords, especially for the rootdn, should

# be avoided.  See slappasswd(8) and slapd.conf(5) for details.

# Use of strong authentication encouraged.

rootpw            {CRYPT}avMFiNMraPfxQ

# rootpw          {crypt}ijFYNcSNctBYg

 

# The database directory MUST exist prior to running slapd AND

# should only be accessible by the slapd and slap tools.

# Mode 700 recommended.

directory   /var/lib/ldap

 

# Indices to maintain for this database

index objectClass                       eq,pres

index ou,cn,mail,surname,givenname      eq,pres,sub

index uidNumber,gidNumber,loginShell    eq,pres

index uid,memberUid                     eq,pres,sub

index nisMapName,nisMapEntry            eq,pres,sub

 

# Replicas of this database

#replogfile /var/lib/ldap/openldap-master-replog

#replica host=ldap-1.example.com:389 starttls=critical

#     bindmethod=sasl saslmech=GSSAPI

#     authcId=host/ldap-master.example.com@EXAMPLE.COM

 

 

Par la suite sur le serveur LDAP modifier /etc/openldap/slapd.conf et ajouter les chemins vers les différentes clefs et le certificat pour l'authentification via TLS:

 

# TLS
# Chemin vers le certificat du serveur LDAP
TLSCertificateFile      /etc/openldap/cert/servercert.pem
# Chemin vers la clef privée du serveur LDAP
TLSCertificateKeyFile   /etc/openldap/cert/serverkey.pem
# Chemin vers le certificat de la CA
TLSCACertificateFile    /etc/openldap/cert/cacert.pem
 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

Annexe 3 : fichier config.php

 

<?php

 

/*

 *                  The phpLDAPadmin config file

 *

 *   This is where you customize phpLDAPadmin. The most important

 *   part is immediately below: The "LDAP Servers" section.

 *   You must specify at least one LDAP server there. You may add

 *   as many as you like. You can also specify your language, and

 *   many other options.

 *

 */

 

/**

 * phpLDAPadmin can encrypt the content of sensitive cookies if you set this

 * to a big random string.

 */

$blowfish_secret = '';

 

// Your LDAP servers

$i=0;

$servers = array();

$servers[$i]['name'] = 'srvldapv.micalex.fr';    /*  A convenient name that will appear in

                                                the tree viewer and throughout phpLDAPadmin to

                                                identify this LDAP server to users. */

$servers[$i]['host'] = 'srvldapv.micalex.fr';  /*  Examples:

                                                   'ldap.example.com',

                                                   'ldaps://ldap.example.com/',

                                                   'ldapi://%2fusr%local%2fvar%2frun%2fldapi'

                                                      (Unix socket at /usr/local/var/run/ldap)

                                                Note: Leave 'host' blank to make phpLDAPadmin

                                                ignore this server. */

$servers[$i]['base'] = 'dc=micalex,dc=fr'; /*  The base DN of your LDAP server. Leave this

                                                blank to have phpLDAPadmin auto-detect it for you. */

$servers[$i]['port'] = 389;                 /*  The port your LDAP server listens on

                                                (no quotes). 389 is standard. */

$servers[$i]['auth_type'] = 'config';       /*  Three options for auth_type:

                                                  1. 'cookie': you will login via a web form,

                                                     and a client-side cookie will store your

                                                     login dn and password.

                                                  2. 'session': same as cookie but your login dn

                                                     and password are stored on the web server in

                                                     a persistent session variable.

                                                  3. 'config': specify your login dn and password

                                                      here in this config file. No login will be

                                                      required to use phpLDAPadmin for this server.

                                                Choose wisely to protect your authentication

                                                information appropriately for your situation. If

                                                you choose 'cookie', your cookie contents will be

                                                encrypted using blowfish and the secret your specify

                                                above as $blowfish_secret. */

$servers[$i]['login_dn'] = 'cn=Manager,dc=micalex,dc=fr';

                                            /*  The DN of the user for phpLDAPadmin to bind with.

                                                For anonymous binds or 'cookie' or 'session' auth_types,

                                                leave the login_dn and login_pass blank. If you specify a

                                                login_attr in conjunction with a cookie or session auth_type,

                                                then you can also specify the login_dn/login_pass here for

                                                searching the directory for users (ie, if your LDAP server

                                                does not allow anonymous binds. */

$servers[$i]['login_pass'] = 'micalex';      /*  Your LDAP password. If you specified an empty login_dn above, this

                                                MUST also be blank. */

$servers[$i]['tls'] = false;                /*  Use TLS (Transport Layer Security) to connect to the LDAP

                                                server. */

$servers[$i]['low_bandwidth'] = false;      /*  If the link between your web server and this LDAP server is

                                                slow, it is recommended that you set 'low_bandwidth' to true.

                                                This will cause phpLDAPadmin to forego some "fancy" features

                                                to conserve bandwidth. */

$servers[$i]['default_hash'] = 'crypt';     /*  Default password hashing algorithm.

                                                One of md5, ssha, sha, md5crpyt, smd5, blowfish, crypt or

                                                leave blank for now default algorithm. */

$servers[$i]['login_attr'] = 'dn';          /*  If you specified 'cookie' or 'session' as the auth_type above,

                                                you can optionally specify here an attribute

                                                to use when logging in. If you enter 'uid'

                                                and login as 'dsmith', phpLDAPadmin will

                                                search for (uid=dsmith) and log in as that user. Leave

                                                blank or specify 'dn' to use full DN for

                                                logging in. Note also that if your LDAP server requires

                                                you to login to perform searches, you can enter

                                                the DN to use when searching in 'login_dn' and

                                                'login_pass' above. You may also specify 'string', in which case

                                                you can provide a string to use for logging users

                                                in. See 'login_string' directly below. */

$servers[$i]['login_string'] = 'uid=<username>,ou=People,dc=micalex,dc=fr';

                                            /* If you specified 'cookie' or 'session' as the auth_type above,

                                               and you specified 'string' for 'login_attr' above, you must provide

                                               a string here for logging users in. If, for example, I

                                               I have a lot of user entries with DNs like

                                               "uid=dsmith,ou=People,dc=example,dc=com", then I can specify a string

                                               "uid=<username>,ou=People,dc=example,dc=com" and my users can login with

                                               their user names alone, i.e., "dsmith" in this case. */

$servers[$i]['login_class'] = '';           /*  If 'login_attr' is used above such that phpLDAPadmin will

                                                search for your DN at login, you may restrict the search to

                                                a specific objectClass.  E.g., set this to 'posixAccount' or

                                                'inetOrgPerson', depending upon your setup. */

$servers[$i]['read_only'] = false;          /*  Specify true If you want phpLDAPadmin to not

                                                display or permit any modification to the

                                                LDAP server. */

$servers[$i]['show_create'] = true;         /*  Specify false if you do not want phpLDAPadmin to

                                                draw the 'Create new' links in the tree viewer. */

$servers[$i]['enable_auto_uid_numbers'] = false; 

                                            /*  This feature allows phpLDAPadmin to

                                                automatically determine the next

                                                available uidNumber for a new entry. */

$servers[$i]['auto_uid_number_mechanism'] = 'search';

                                            /* The mechanism to use when finding the next available uidNumber.

                                               Two possible values: 'uidpool' or 'search'. The 'uidpool'

                                               mechanism uses an existing uidPool entry in your LDAP server

                                               to blindly lookup the next available uidNumber. The 'search'

                                               mechanism searches for entries with a uidNumber value and finds

                                               the first available uidNumber (slower). */

$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=micalex,dc=fr';

                                            /* The DN of the search base when the 'search'

                                               mechanism is used above. */

$servers[$i]['auto_uid_number_min'] = 1000;

                                            /* The minimum number to use when searching for the next

                                               available UID number (only when 'search' is used for

                                               auto_uid_number_mechanism' */

$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=micalex,dc=fr';

                                            /* The DN of the uidPool entry when 'uidpool'

                                               mechanism is used above. */

$servers[$i]['auto_uid_number_search_dn'] = '';

                                            /* If you set this, then phpldapadmin will bind to LDAP with this user

                                               ID when searching for the uidnumber. The idea is, this user id would

                                               have full (readonly) access to uidnumber in your ldap directory (the

                                               logged in user may not), so that you can be guaranteed to get a unique

                                               uidnumber for your directory. */

$servers[$i]['auto_uid_number_search_dn_pass'] = '';

                                            /* The password for the dn above. */

$servers[$i]['disable_anon_bind'] = false;

                                            /* Disable the anonymous login. */

$servers[$i]['custom_pages_prefix'] = 'custom_';

                                            /* Use customized page with prefix when available. */

 

$servers[$i]['unique_attrs_dn'] = '';

                                            /* If you set this, then phpldapadmin will bind to LDAP with this user

                                               when testing for unique attributes (as set in unique_attrs array). If you

                                               want to enforce unique attributes, than this id should have full (readonly)

                                               access to the attributes in question (the logged in user may not have

                                               enough access) */

$servers[$i]['unique_attrs_dn_pass'] = '';

                                            /* The password for the dn above */

 
 
               Le fichier conf.php est très conséquent. Mais la suite ne demandant pas de modification, nous ne l’avons pas présenté dans son intégralité.

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

Annexe 4 : fichier smb.conf

 

[global]

passdb backend = ldapsam:ldap://srvldapv.micalex.fr, guest

ldap admin dn = cn=Manager,dc=micalex,dc=fr

ldap ssl = off

ldap delete dn = no

ldap user suffix = ou=Users

ldap machine suffix = ou=Computers

ldap group suffix = ou=Groups

ldap suffix = dc=micalex,dc=fr

workgroup = MICALEX

netbios name = SRVLDAPV

server string = SRVLDAPV

encrypt passwords = yes

 

domain logons = yes

os level = 65

domain master = Yes

local master = Yes

 

security = user

 

log file = /var/log/samba/%m.log

log level = 2

 

[tmp]

comment = Partage des fichiers temporaires

path = /tmp

read only = no

writable = yes

guest ok = yes

 

; Scripts et stratégies

[netlogon]

path = /export/samba-test/netlogon

comment = Network logon service

read only = yes

guest ok = yes

 

; A mapper via \\serveur\utilisateur

[homes]

path = /export/samba-test/homes/%u

comment = Home directories

valid users = %S

writeable = yes

read only = no

create mask = 0664

directory mask = 0775

browsable = no

 

; A mapper via \\serveur\profiles\utilisateur

[profiles]

path = /export/samba-test/profiles

create mask = 0600

directory mask = 0700

browsable = no

writeable = yes

 

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

Annexe 5 : glossaire

 

ACL (Access Control List) : Liste spécifiant les droits attribués à un ou plusieurs acteurs (ex : un utilisateur) sur une ressource (ex : un fichier).

 

BDC (Backup Domain Controller) : Contrôleur secondaire de domaine, prend le relais du PDC en cas de panne. Appellation propre à un domaine NT.

 

Classe  :  permet de définir les particularités d'une famille d'objets, en spécifiant des attributs obligatoires, et/ou des attributs optionnels possibles. Il y a possiblité d'héritage entre classes, multiple ou non, pour les objets LDAP (Pour une sous-classe, obtention automatique des attributs définis dans les classes supérieure dont elle hérite). Toutes les classes héritent de la classe Top, qui est la classe du sommet de la hiérarchie des classes (un seul attribut : objectClass).

 

DC  (Domain Controller) : Terme générique pour désigner un contrôleur de domaine, qu'il soit PDC, BDC (NT) ou qu'il n'ait pas de niveau d'importance particulier (Active Directory).

 

DIB (Directory Information Base) : Un annuaire LDAP/X.500 est une collection d'information de toutes catégories. Ces informations sont stockées dans la "Directory Information Base" ou DIB. La DIB est composées d'entrées, dont le contenu est régit par les notions d'objet et de classes.

 

DIT  (Directory Information Tree) : Un arbre LDAP/X.500 est organisé de façon arborescente, à partir d'une racine unique nommée 'root'. Cette racine peut être vue comme une entrée nulle (objet vide).

 

DN (Distinguish Name) : Au sein d'un annuaire LDAP, représente le nom et le chemin d'un objet.

Exemple : "cn=Users,ou=Groups,dc=martymac,dc=com".

Entrées LDAP : Les entrées LDAP sont une collection d'attributs. Chaque attribut décrit un type bien particulier d'information, et peut contenir une ou plusieurs valeurs (On dit qu'un attribut peut être multi-valué). A chaque type d'attribut est lié une syntaxe spécifique donnant le format possible de ses valeurs.


GID (Group Identifier) : Identifiant numérique représentant un groupe d'utilisateurs sous Unix.

 

GUI (Graphical User Interface) : Interface graphique

 

LDAP (Lightweight Directory Access Protocol) : Adaptation allégée du protocole X500. Protocole de gestion d'annuaires réseaux.

 

NetBios (Network Basic Input/Output System) : n'est pas un protocole. Méthode de communication sur un protocole existant ; est en fait une couche intermédiaire entre SMB et un protocole sous-jacent tel que TCP (cf. NBT) ou IPX. Il fonctionne à la couche 5 (session) du modèle OSI. Fournit une méthode de résolution de noms et de services aux couches supérieures. Utilise un modèle de noms de machines de 15 caractères + 1 caractère de contrôle spécifiant les services offerts par la machines. NetBios a été développé en 1983 par Sytec Inc. pour IBM.

 

NSS (NSSwitch, Name Service Switch) : Mécanisme qui intercepte les requêtes de noms effectuées par la machine (concernant les noms de machines, d'utilisateurs : cf. getent, ...) et les redirige vers différentes sources d'informations (LDAP, MySQL...). Fonctionne avec différents modules.

 

Objets LDAP : La notion d'objet permet de représenter abstraitement tout type d'information ou d'entité existante. Une classe d'objet est une famille d'objets ayant certaines caractéristiques communes.

 

OIDs (Object Identifiers) : Les Object Identifiers sont des suites uniques de nombres, qui servent à identifier de façon sûre un type de donnée. Des OIDs sont utilisés pour désigner l'identité des classes, des types d'attributs, et des syntaxes possibles de ces attributs. Les OIDs sont formés à partir de la hiérarchie spécifiée par l'OSI, au niveau mondial ( de la même façon que les objets décrits dans les MIBs...)

 

 

PAM (Pluggable Authentication Modules) : Mécanisme d'authentification par modules. Il est ainsi possible d'utiliser toutes sortes de sources de données (fichier passwd, LDAP, biométrie...) pour valider un utilisateur.

 

PDC (Primary Domain Controller) : Contrôleur principal de domaine. Appellation propre à un domaine NT.

 

SAM (Security Account Manager) : Base de données contenant les informations de sécurité  sur un serveur Windows NT, notamment les comptes et mots de passes des utilisateurs.

 

Schéma : Le schéma d'un annuaire est un ensemble de règles, qui doivent être utilisées par le gestionnaire d'arbre (DIB et DIT), pour limiter les possibilités de création et de structuration des entrées.

 

SID (Security Identifier): Un SID est un identifiant unique attribué à chaque acteur d'un domaine Windows. Il est composé d'une partie nommée "SID local", qui identifie le domaine, et d'une seconde que l'on appelle "RID" (Relative Identifier), qui identifie l'acteur (utilisateur/groupe/machine) au sein du domaine : un exemple de SID pourrait-être : S-1-5-21-3493456274-4211610059-1786859526-512 qui identifie le groupe d'Administrateurs du domaine (512) au sein du domaine S-1-5-21-3493456274-4211610059 .

 

TLS (Transport Layer Security) : Anciennement SSLv3.0, renommé et normalisé par l'IETF, cf. RFC2246. Protocole de dialogue sécurisé pour attaquer un serveur LDAP.

 

UID (User Identifier) : Identifiant numérique représentant un utilisateur sous Unix.

 

UNC (Universal Naming Convention) : Convention de nommage universelle (sous Windows) permettant de désigner le chemin d'un répertoire partagé. Ex. : \\Serveur\partage.

 

X500 : Standard conçu par les opérateurs télécoms pour interconnecter leurs annuaires téléphoniques.


Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

Annexe 6 : commandes importantes

 

Contenu du package OpenLDAP :

 

ldapadd                    ouvre une connexion au serveur LDAP et ajoute des entrées.

 

Ldapcompare                     ouvre une connexion au serveur LDAP et compare suivant les paramètres spécifiés.

 

ldapdelete                ouvre une connexion au serveur LDAP et supprime une ou plusieurs entrées.

 

ldapmodify              ouvre une connexion au serveur LDAP et modifie des entrées.

 

ldapmodrdn            ouvre une connexion au serveur LDAP et modifie le RDN des entrées.

 

ldappasswd            est un outil pour configurer le mot de passe d'un utilisateur LDAP.

 

ldapsearch              ouvre une connexion au serveur LDAP et effectue une recherche suivant les paramètres spécifiés.

 

ldapwhoami            ouvre une connexion au serveur LDAP et effectue une opération whoami.

 

slapadd                    est utilisé pour ajouter des entrées spécifiées dans le format LDAP Directory Interchange Format (LDIF) dans une base de données slapd.

 

slapcat                      est utilisé pour générer une sortie LDIF LDAP basé sur le contenu d'une base de données slapd.

 

slapd                                     est un serveur LDAP autonome.

 

slapindex                 est utilisé pour régénérer les index de slapd suivant le contenu actuel d'une base de données.

 

slappasswd            est un outil de mot de passe pour OpenLDAP

 

slurpd                       est un serveur réplicat autoname pour LDAP.

 

liblber et libldap     Ces bibliothèques supportent les programmes LDAP et fournissent des fonctionnalités pour les autres programmes interagissant avec LDAP.

 

ldapsearch objectclass=person                      afficher l'ensemble des utilisateurs

 

ldapsearch objectclass=organization      afficher l'ensemble des établissements

 

ldapsearch 'objectclass=*'                           afficher l'ensemble des enregistrements

Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

Annexe 7 : Bibliographie

 

 

 

 

Général :

 

http://www.samba.org

http://samba.idealx.org

http://www.openldap.org

http://www.linuxfr.org

http://www.sysium.com/fr/offres-ldap/annuaire-ldap/principes-ldap.html

 

 

 

 

Howtos :

 

http://de.samba.org/samba/docs/Samba-HOWTO-Collection.pdf

http://samba.idealx.org/samba-ldap-howto.pdf

http://www.martymac.com/contribs/samba2.2-Ldap/html/index.htm

 

 

 

 

Administration :

 

http://phpldapadmin.sourceforge.net/

 

 

 

 

MIB :

 

http://asn1.elibel.tm.fr/fr/index.htm

 

 

 

 

 

Pour retourner au sommaire cliquez ici

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°