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 :
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
*(Les phrases en italique verte sont des indicateurs de l'état d'avancement du projet).
Structure de la plate-forme de test:
Présentation et fonctionnement de l’annuaire LDAP :
Schémas fonctionnels
d'authentification:
Format de la base et définitions :
Installation de LINUX Fédora 3 :
L’installation de Linux Fédora
core 3 est terminée.
-Personnaliser la configuration du fichier slapd.conf:
-Vérification des processus
actifs :
-Identification du port
d’écoute :
Création de la structure DIT prête à recevoir les données
Samba
- Création d'un fichier
/etc/openldap/base.ldiff :
- Insertion de ce fichier à
l'annuaire LDAP :
-Confirmation des insertions :
L'annuaire est désormais prêt à recevoir nos comptes Samba.
Test de connexion au serveur LDAP :
Installation de l’outil d’administration ‘webmin’ :
Installation
de l’outil d’administration
‘phpldapadmin’:
- Edition du fichier
/etc/samba/smb.conf :
-Initialisation du mot de passe LDAP
:
Le serveur samba est prêt à contrôler le domaine.
-Ajout d'un compte machine pour se
connecter :
-Ajout d’un compte administrateur à
notre domaine :
-Ajout des groupes d'utilisateurs :
-Ajout des utilisateurs dans ces
groupes :
-Modification de ses propriétés
(Samba) :
-Vérification des utilisateurs
présents dans la base :
Création des environnements utilisateurs:
-Création du répertoire
/export/samba-test/homes/directeur et gestion des droits :
-Création du fichier
/export/samba-test/netlogon/directeur.cmd et gestion des droits :
Configuration des postes clients :
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:
L'authentification est maintenant cryptée.
Annexe 1 : fichier slapd.conf fourni par défaut
Annexe 2 : fichier slapd.conf définitif.
Annexe 6 : commandes importantes
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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).
- Pour Linux:
- Pour Windows:
Pour retourner au sommaire
cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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 ).
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).
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.
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
-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:
-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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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.
·
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 l’annexe 2.
Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
[root@srvldapv]#Service
ldap start
[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
[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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
[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
[root@srvldapv
~]# ldapadd -W -D 'cn=Manager,dc=micalex,dc=fr' -xh
localhost -f /etc/openldap/base.ldiff
Enter
LDAP Password:*******
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"
[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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
[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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
-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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
-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:
___________________________________________________
-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/ .
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
[root@srvldapv]#smbpasswd
–w micalex
Setting stored password for
“cn=Manager,dc=micalex,dc=fr” in secrets.tdb
[root@srvldapv]#service
samba start
Le serveur samba est prêt à contrôler le domaine.
Pour retourner au sommaire
cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
[root@srvldapv]#useradd POSTELDAP$ (sous Unix)
[root@srvldapv]#smbpasswd -a -m POSTELDAP (pour Samba)
-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.
[root@srvldapv]#groupadd direction (Unix)
[root@srvldapv]#groupadd commercial (Unix)
[root@srvldapv]#groupadd technique (Unix)
[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)
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
[root@srvldapv]#pdbedit -vL
Ou
via phpldapadmin:
Pour retourner au sommaire cliquez ici
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
[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
[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
[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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
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.
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
#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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
#
# 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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
#
# 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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
<?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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
[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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Général :
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
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°