Heterogeneserveurldapgroupe1

Serveur OpenLdap

Introduction

Nous allons aborder la configuration d’un serveur en tant que contrôleur principale de domaine (P.D.C) avec LDAP.

Le protocole LDAP définit comment s'établit la communication client-serveur. Il fournit à l'utilisateur des commandes pour se connecter ou se déconnecter, pour rechercher, comparer, créer, modifier ou effacer des entrées.
Le serveur peut utiliser diverses bases de données pour stocker un répertoire, chacune d'elles étant optimisée de façon à permettre des opérations de consultation rapides et en grande quantité. Lorsqu'un client LDAP se connecte à un serveur LDAP, il peut soit consulter un répertoire, soit y apporter des modifications. Si l'application cliente tente de changer des informations dans un répertoire LDAP, le serveur vérifie d'abord que l'utilisateur est bien autorisé à effectuer des changements et ensuite ajoute ou met à jour les informations.
Le protocole LDAP fonctionne sur un modèle Requête-Réponse(s) : tant qu'un client ne sollicite pas le serveur, il ne lui transmet pas de réponse. En revanche, depuis l'ajout de l'extension IntermediateResponse à LDAP, une requête peut correspondre à plusieurs réponses.
En revanche, il existe dans LDAP des évènements asynchrones, appelés "alertes". Une alerte est souvent attachée à un évènement, par exemple la fin du support de TLS lors d'une session protégée par StartTLS. Ces alertes peuvent émaner du client comme du serveur, indifféremment.

Le Directory Information Tree

LDAP présente les informations sous forme d'une arborescence d'informations hiérarchique appelée DIT (Directory Information Tree), dans laquelle les informations, appelées entrées (ou encore DSE, Directory Service Entry), sont représentées sous forme de branches. Une branche située à la racine d'une ramification est appelée racine ou suffixe (en anglais root entry).

Chaque entrée de l'annuaire LDAP correspond à un objet abstrait ou réel (par exemple une personne, un objet matériel, des paramètres, …).

Chaque entrée est constituée d'un ensemble de paires clés/valeurs appelées attributs.

adStructureDetailed.jpg

Les attributs des entrées

Une entrée de l'annuaire contient une suite de couples types d'attributs - valeurs d'attributs. Les attributs sont caractérisés par :
• Un nom qui l'identifie
• Un Object Identifier (OID) qui l'identifie également
• S'il est mono ou multi-valué
• Une syntaxe et des règles de comparaison
• Un indicateur d'usage
• Un format ou une limite de taille de valeur qui lui est associée
Les attributs décrivent généralement des caractéristiques de l'objet.

Architecture d'OpenLDAP

OpenLDAP comprend un certain nombre de caractéristiques importantes parmi lesquelles figurent :
• Prise en charge de LDAPv3 — OpenLDAP prend en charge SASL (Simple Authentication and Security Layer), TLS (Transport Layer Security) et SSL (Secure Sockets Layer) entre autres améliorations. De nombreux changements apportés au protocole depuis LDAPv2 visent à augmenter la sécurité de LDAP.
• Prise en charge de IPv6 — OpenLDAP prend en charge le protocole de la prochaine génération, Internet Protocol version 6.
• LDAP sur IPC — OpenLDAP peut communiquer au sein d'un système en utilisant IPC (de l'anglais interprocess communication). Il en résulte une sécurité améliorée car il n'est plus nécessaire de communiquer à travers un réseau.
• Mise à jour de C API — Améliore la manière dont les programmeurs se connectent aux serveurs de répertoires LDAP et les utilisent.
• Prise en charge de LDIFv1 — Grâce à cette prise en charge, OpenLDAP 2.0 est pleinement compatible avec la version 1 du format LDIF (ou LDAP Data Interchange Format).
• Amélioration du serveur autonome LDAP — À présent le serveur inclut entre autres un système de contrôle d'accès mis à jour, un pool de conversation et des outils plus performants.

Installation et configuration

Au niveau du serveur LDAP

Nous disposons d'un pc qui possède une distribution Centos
Installations des paquets.
Tout d'abord nous allons installer les paquets samba.
=> yum install openldap-servers openldap-clients samba
Nous allons ensuite Configuré notre serveur Ldap pour qu’il ait comme suffixe le domaine « info » et comme dompte administrateur : admin /password
Dans /etc/openldap/slapd.conf, tapez
suffix "dc=info,dc=com"
rootdn "cn=admin,dc=info,dc=com"
rootpw password

Ensuite nous allons crypter le mot de passe

=> slappasswd -s password

Lancement du service LDAP

=> service ldap start

Création d'un fichier de base

Nous allons ensuite crée un fichier ldif de base qui nous permet de demander au serveur ldap de crée la base de l’arborescence.

=> [root@localhost ~]# nano ~/base.ldif

Fichier base.ldif

dn: dc=info,dc=com
dc: info
objectClass: domain

Importez le fichier base.ldif :

[root@localhost ~]# ldapadd -x -D "cn=admin,dc=info,dc=com" -w password -f ~/base.ldif
Resultat
adding new entry "dc=info,dc=com "

Création d’une Unité Organisationnel

Nous allons crée une OU que nous nommerons “user”

=> [root@localhost ~]# nano ~/user.ldif

Fichier « user.ldif »

dn: ou=User,dc=info,dc=com
ou: User
objectClass: organizationalUnit

dn: uid=user1,ou=User,dc=info,dc=com
uid: user1
cn: user1
displayName: User 1
givenName: User
sn: user1
objectClass: inetOrgPerson
userPassword: password

Importer le fichier user.ldif

[root@localhost ~]# ldapadd -x -D "cn=admin,dc=info,dc=com" -w password -f ~/user.ldif
Resultat:
adding new entry "ou=User ,dc=info, dc=com"
adding new entry "uid=user1,ou=Contact,dc=info,dc=com"

Contrôleur de domaine principal (PDC) utilisant openLDAP

Configuration de smb.conf

Nous allons apporter les modifications suivantes :

passdb backend = ldapsam:ldap://info.com

ldap suffix = dc=info,dc=com
ldap machine suffix = ou=User
ldap user suffix = ou=User
ldap group suffix = ou= User
ldap idmap suffix = ou= User
ldap admin dn = cn=admin
ldap ssl = no
ldap passwd sync = yes
idmap uid = 15000-20000
idmap gid = 15000-20000

Ensuite exécuter

=> smbpasswd –W

Fichier smb.conf

#============================ Option Général =====================

[global]

#identificarion :
workgroup = INFO
server string = Samba Server Version %v
netbios name = SMBSERVER

#Gestion du réseau :
interfaces = lo eth0
hosts allow = 127. 192.168.2.
; bind interfaces only = yes

#Gestion des logs :
log file = /var/log/samba/%m.log
max log size = 50

#Mode d'authentification sur le domaine (demande d'un login et d'un password)
security = user
passdb backend = ldapsam:ldap://192.168.1.1
; map to guest = Bad User
; guest account = smbguest

#Gestion du cryptage des mots de passe
; encrypte passwords = yes
; smb passwd file = /etc/samba/smbpasswd
; username map = /etc/samba/smbusers

  1. Controleur de domaine

domain master = yes
domain logons = yes

  1. Gestion ldap

ldap suffix = dc=info,dc=com
ldap machine suffix = ou=info
ldap user suffix = ou= info
ldap group suffix = ou= info
ldap idmap suffix = ou= info
ldap admin dn = cn=admin
ldap ssl = no
ldap passwd sync = yes
idmap uid = 15000-20000
idmap gid = 15000-20000

  1. Gestion des paramètres de connections utilisateur

logon script = %m.bat
# the login script name depends on the unix user used
; logon script = %u.bat
logon path = \\%L\Profiles\%u
logon home = \\%L\Profiles\%u
; logon drive = P:

  1. Explorateur d'ordinateur :

local master = yes
os level = 33
preferred master = yes

  1. Résolution de nom :

wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
dns proxy = no
name resolve order = lmhosts wins bcast

  1. Casse des fichiers :

preserve case = yes
#Les noms au format 8.3 (type DOS) sont convertis en majuscule
short preserve case = no

#================== Définitions des partages ===================

;[homes]
#Partage par defaut des fichiers personnel de chaque utlisateur (sauf guest)
#nous allons utiliser un partage pour gérer les fichiers personnel des utilisateurs
; comment = Repertoire personnel de %U
; preexec = /home/samba/smbuser.pl %U %m %I
; browseable = no
; #taille max
; max disk size = 100
; writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

;[printers]
#Partage d'imprimante
#pas d 'imprimantes
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = no
; printable = yes

[commun]
#Partage commun accessible a tous
comment = répertoire commun
path = /home/samba/commun
read only = no
guest ok = yes

[%U]
#Notre version du partage par defaut des fichiers personnel de chaque utilisateur
comment = Repertoire personnel de %U
path = /home/samba/users/%U
valid users = %U
public = no
writable = yes
printable = no

[netlogon]
#Partage NETLOGON indispensable au fonction de contrôleur de domaine Samba
comment = Network Logon Service
browseable = no
path = /home/samba/netlogon
guest ok = yes
writable = no
share modes = no

;[profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes

;[public]
#Partage principal contenant les logiciels réseaux
; comment = Public Stuff
; path = /home/samba/SoftEtDonneesDivers
; public = yes
; writable = yes
; printable = no
; write list = +staff

Bibliographie

http://www-sop.inria.fr/members/Laurent.Mirtain/ldap-livre.html
http://www.netid.washington.edu/documentation/images/adStructureDetailed.jpg
http://damstux.free.fr/wiki/index.php?title=PDC_Samba_LDAP
http://doc.ubuntu-fr.org/slapd
http://www.croc-informatique.fr/2009/11/installation-et-configuration-openldap-sur-centos-5/

Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License