mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
CENTRE AFPA MEUDON Centre Yves Bodiguel - 12/14 av du Marchal
Juin Z.I de Vlizy 92366 MEUDON-LA-FORET CEDEX Tl : 01 45 37 78 00
Tlecopie : 01 46 30 90 62
MINIPROJET : Interoprabilit Linux-Microsoft Partage de fichiers
et authentification SAMBA 3 / LDAP
Ralis par :
Alex FALZON [email protected] Michal VILLAR
[email protected]
Appuyer sur diter pour accder lditeur dinterface
Retour la page de garde
SOMMAIRE*(Les phrases en italique verte sont des indicateurs de
l'tat d'avancement du projet).
INTRODUCTION:
CAHIER DES CHARGES: STRUCTURE DE LA PLATE-FORME DE TEST: METHODE
ADOPTE:
PRSENTATION ET FONCTIONNEMENT DE LANNUAIRE LDAP : Schmas
fonctionnels d'authentification:
1 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
FORMAT DE LA BASE ET DFINITIONS : Le Directory Information Tree
Les attributs Les classes d'objet Les schmas
INSTALLATION DE LINUX FDORA 3 : Linstallation de Linux Fdora
core 3 est termine.
INSTALLATION D'OPENLDAP : CONFIGURATION D'OPENLDAP:
-Personnaliser la configuration du fichier slapd.conf: DMARRAGE DU
SERVEUR LDAP : -Vrification des processus actifs : -Identification
du port dcoute : CRATION DE LA STRUCTURE DIT PRTE RECEVOIR LES
DONNES SAMBA - Cration d'un fichier /etc/openldap/base.ldiff : -
Insertion de ce fichier l'annuaire LDAP : -Confirmation des
insertions : -Gnration des indexes: L'annuaire est dsormais prt
recevoir nos comptes Samba.
TEST DE CONNEXION AU SERVEUR LDAP : INSTALLATION DE LOUTIL
DADMINISTRATION WEBMIN : INSTALLATION DE LOUTIL DADMINISTRATION
PHPLDAPADMIN:
CONFIGURATION DE SAMBA : - Edition du fichier
/etc/samba/smb.conf : -Initialisation du mot de passe LDAP :
-Dmarrage de Samba : Le serveur samba est prt contrler le
domaine.
GRER LES COMPTES: -Ajout d'un compte machine pour se connecter :
-Ajout dun compte administrateur notre domaine : -Ajout des groupes
d'utilisateurs : -Ajout des utilisateurs dans ces groupes :
-Modification de ses proprits (Samba) : -Vrification des
utilisateurs prsents dans la base : CRATION DES ENVIRONNEMENTS
UTILISATEURS: -Cration du rpertoire
/export/samba-test/homes/directeur et gestion des droits : -Gestion
des droits et Cration des rpertoire userdir1, usercom1, usertec1
dans /export/samba-test/profiles/: -Cration du fichier
/export/samba-test/netlogon/directeur.cmd et gestion des droits :
CONFIGURATION DES POSTES CLIENTS : Postes Windows : Postes Linux :
On peut dsormais joindre la machine POSTELDAP au domaine MICALEX
avec les utilisateurs smbadmin, userdir1, usercom1 et usertec1.
MISE EN PLACE D'UNE AUTHENTIFICATION CRYPTE AVEC TLS:
L'authentification est maintenant crypte.
CONCLUSION:
ANNEXE 1 : FICHIER SLAPD.CONF FOURNI PAR DFAUT ANNEXE 2 :
FICHIER SLAPD.CONF DFINITIF. ANNEXE 3 : FICHIER CONFIG.PHP ANNEXE 4
: FICHIER SMB.CONF ANNEXE 5 : GLOSSAIRE ANNEXE 6 : COMMANDES
IMPORTANTES
2 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
ANNEXE 7 : BIBLIOGRAPHIE
Introduction:Ce projet et ralis dans le cadre d'une formation
AFPA au centre Yves Bodiguel Meudon la fort. Les outils et
techniques utiliss sont ceux trouv en Mars 2005. Tout au long de ce
mini projet vous trouverez: une prsentation de la technologie LDAP
les diffrentes tapes pour la mettre en place: installation de l'OS
(Fedora),de samba, des outils d'administrations et de l'annuaire
lui-mme. Les procdures de paramtrage et les fichiers de
configuration
Pour retourner au sommaire cliquez ici
Cahier des charges:Une entreprise ayant un parc informatique
htrogne (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 donne (annuaire) soit rapide d'accs, que les clients
Windows/Linux puissent s'authentifier sur n'importe quelle station
du rseau, et que les communications client/serveur
d'authentification soit scurises et cryptes. Les produits choisis
sont libres pour l'OS Linux Fdora, 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
connectes un rseau 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 3me : (en multiboot) - station
Windows XP pro - station Fedora core3
le nom de domaine choisi pour le projet est micalex.
3 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
Pour retourner au sommaire cliquez ici
Mthode adopte:Le 1er serveur permet de faire les tests
post-recherche. Le 2nd permet la mise en place "propre" du systme
dfinitif et des captures pour le rapport. Le 3me sert de station
test Microsoft et Linux.
Pour retourner au sommaire cliquez ici
Prsentation et fonctionnement de lannuaire LDAP :
Le LDAP (Lightweight Directory Access Protocol) est la version
TCP/IP du protocole DAP, ce dernier tant le protocole pour accder
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 grer compltement les bases (standalone
LDAP).
4 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
Schmas fonctionnels d'authentification: - Pour Linux:
- Pour Windows:
5 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
Pour retourner au sommaire cliquez ici
Format de la base et dfinitions :
Le Directory Information Tree Les LDAP standalone utilisent le
format de base de donnes LDBM. Chaque entre est connue de manire
unique dans l'arborescence grce son dn (Distinguished Name). Le dn
indique le chemin parcourir pour en partant du sommet arriver
l'entre correspondante (exemple: dn = Isabelle
Bourdais.technique.boulogne.micalex.fr ).
Les attributs Chaque entre DSE peut tre considre comme un objet
possdant donc certains attributs, par exemple si une personne est
une entre, les attributs peuvent tre, le nom, le prnom, l'ge, ....
On peut aussi dfinir des attributs obligatoires (MUST) et d'autres
optionnels (MAY).
Les classes d'objet On regroupe les objets qui sont du mme
domaine dans une classe d'objet, celle-ci est caractrise par des
attributs obligatoires ou optionnels et un type.
Les types de classe d'objet sont: - type structurel classes
dobjets concrets de l'annuaire (personnes, groupes de personnes,
...) - type auxiliaire classes d'objets qu'on peut crer, pour
rajouter des attributs supplmentaires des classes d'objet de type
structurel dj existantes. En C++ on dira que la classe auxiliaire
drive d'une classe structurelle. - type abstraite classes d'objet (
par dfaut) qui n'ont pas de signification concrte par exemple la
classe top est la classe d'objet gnrique. toutes les autres classes
drivent de cette classe.
Toutes les autres classes d'objet drivent de la classe top (la
racine). Chaque classe hrite des proprits d'une classe pre et
possde des attributs supplmentaires par rapport ce dernier.
6 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
Les schmas Un schma dcrit toutes les rgles qu'utilisent le
serveur LDAP pour dcrire les classes d'objets (attributs, syntaxe,
...).
Pour retourner au sommaire cliquez ici
Installation de LINUX Fdora 3 :-Aprs avoir "boot" sur le DVD
d'installation taper entrer pour dmarrer. -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 systme" et
confirmer. -Taper sur suivant la fentre "configuration du disque".
-Slectionner "configuration des options avances du chargeur de
dmarrage"dans la page "configuration du chargeur de dmarrage".
-Slectionner "forcer l'utilisation de LBA32" dans la page
"configuration avance du chargeur de dmarrage". -Entrer vos
paramtres rseau:
-activer le firewall dans la page "configuration du pare-feu".
-Slectionner french dans la page "autre langue" et votre fuseau
horaire (Europe/Paris) dans la -page "slection du fuseau horaire".
-Entrer votre mot de passe. -Choisir les paquetages suivants:
7 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
8 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
-Attendre quelques minutes puis redmarrer. -Accepter le contrat
de licence.
9 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
-Dfinir lheure, la, rsolution daffichage, les donnes
dutilisateur du systme.
Linstallation de Linux Fdora core 3 est termine.
Pour retourner au sommaire cliquez ici
Installation d'OpenLDAP :Nous avons install OpenLDAP grce aux
paquetages prsent lors de l'installation de Linux Fedora core 3:
openldap-3.2.13-2.i386.rpm
Remarque: Si la distribution utilise ne contient pas le
paquetage d'origine, il faut alors le tlcharger partir du site:
http://www.openldap.org. Une fois tlcharg, il faut installer le
paquetage: root#rpm -i openldap-3.2.13-2.i386.rpm
Rcuprer le fichier samba.schema en tlchargeant ladresse suivante
(http://web.vcs.u52.k12.me.us/linux/smbldap) le smbldap-installer
de Matt Oquist (Software Engineering Consultant). Mettre ce schma
dans /etc/openldap/schema/
Pour retourner au sommaire cliquez ici
Configuration d'OpenLDAP:Le dossier /etc/openldap contient : un
rpertoire contenant les schmas. 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 dfini 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:
10 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
rootdn
"cn=manager,dc=micalex,dc=fr"
Dfinir un mot de passe crypt pour l'administration de l'annuaire
: [root@srvldapv]#slappasswd v s micalex h {CRYPT} On obtient la
valeur crypte du mot de passe: {CRYPT}avMFINMraPfxQ. Dautres
mthodes de cryptage son applicables (voir : man slappasswd).
Exemple :[root@srvldapv]#slappasswd
New password:******* Re-enter password:******* On obtient la
valeur crypte du mot de passe: {SSHA}RcsffR/524CVgfAERg/dY5247
Dcommenter la ligne 75 et remplacer la valeur:{crypt}ijFYNcSNctBYg
par la valeur: {CRYPT}avMFINMraPfxQ.
le fichier slapd.conf dfinitif est reprsent sur lannexe 2.
Pour retourner au sommaire cliquez ici
Dmarrage du serveur LDAP :[root@srvldapv]#Service ldap start
-Vrification 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 dcoute :[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
Cration de la structure DIT prte recevoir les donnes Samba-
Cration 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
11 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
# 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 adding adding adding adding
new new new new new entry entry entry entry entry
"dc=micalex,dc=fr" "cn=Manager,dc=micalex,dc=fr"
"ou=Users,dc=micalex,dc=fr" "ou=Machines,dc=micalex,dc=fr"
"cn=admin,ou=Users,dc=micalex,dc=fr"
-Gnration des index : [root@srvldapv]#slapindex f
/etc/openldap/slapd.conf L'annuaire est dsormais prt 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 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
12 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
result: 0 Success # numResponses: 6 # numEntries: 5
Pour retourner au sommaire cliquez ici
Installation de loutil dadministration webmin :-Tlcharger
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 scurise (HTTPS): 1) Ouvrer Webmin,
cliquer sur Webmin Configuration, puis SSL Encryption . 2) Crer une
nouvelle cl SSL en cliquant sur Create now. Pour utiliser Webmin,
taper dornavant dans firefox https://127.0.0.1:10000/ .
Pour retourner au sommaire cliquez ici
Installation de loutil dadministration phpldapadmin:-Tlcharger
phpldapadmin 0.9.5 depuis: http://phpldapadmin.sourceforge.net/
-Dsarchiver vers /var/www/html/ avec : [root@srvldapv]#tar xvzf
/root/phpldapadmin-0.9.5.tar.gz C /var/www/html/
13 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
-Veriffier avec: [root@srvldapv]#ls /var/www/html/ -Dmarrer le
serveur web avec: [root@srvldapv]#service httpd start -Vrifier son
bon fonctionnement, vous devriez tomber sur la page test dapache
avec: http://192.168.1.207/
___________________________________________________
-Editer le fichier config.php.example comme sur lannexe 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 scurise (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 dornavant dans firefox
https://srvldapv/phpldapadmin-0.9.5/ .
Pour retourner au sommaire cliquez ici
14 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
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 stratgies [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 -Dmarrage de Samba : [root@srvldapv]#service samba
start Le serveur samba est prt contrler le domaine.
Pour retourner au sommaire cliquez ici
Grer les comptes:-Ajout d'un compte machine pour se connecter
:
15 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
[root@srvldapv]#useradd POSTELDAP$ (sous Unix)
[root@srvldapv]#smbpasswd -a -m POSTELDAP (pour Samba)
-Ajout dun 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 oprations effectues 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
proprits (Samba) : Dfinition des rpertoires profiles et homedir
ainsi que la mise en place des scripts et d'une lettre de lecteur
rseau pour l'utilisateur: userdir1 [root@srvldapv]#pdbedit -r
--profile=\\\\ SRVLDAPV \\profiles\\userdir1 --homedir
=\\\\SRVLDAPV\\userdir1--script=userdir1.cmd --drive=U: userdir1
usercom1 [root@srvldapv]#pdbedit -r --profile=\\\\ SRVLDAPV
\\profiles\\usercom1 --homedir
=\\\\SRVLDAPV\\usercom1--script=usercom1.cmd --drive=U: usercom1
usertec1 [root@srvldapv]#pdbedit -r --profile=\\\\ SRVLDAPV
\\profiles\\usertec1 --homedir
=\\\\SRVLDAPV\\usertec1--script=usertec1.cmd --drive=U: usertec1
-Vrification des utilisateurs prsents dans la base :
16 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
[root@srvldapv]#pdbedit -vL
Ou via phpldapadmin:
Pour retourner au sommaire cliquez ici
Cration des environnements utilisateurs:-Cration du rpertoire
/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 Cration des rpertoire 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
-Cration 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 dsormais joindre la machine POSTELDAP au domaine MICALEX
avec les utilisateurs smbadmin, userdir1, usercom1 et usertec1.
17 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
18 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
Pour retourner au sommaire cliquez ici
Configuration des postes clients : Postes Windows :
Remarque: Pour que les postes Windows soient authentifis il faut
les faire appartenir au Domaine NT (MICALEX) que nous avons crer.
-Il faut au pralable crer un compte machine sur le PDC du Domaine :
[root@srvldapv]#useradd POSTE07$ [root@srvldapv]#smbpasswd a m
POSTE07
-Procdure sur le poste client:
1) Cliquez droit sur le poste de travail 2) Slectionnez proprits
3) Slectionnez longlet nom de lordinateur 4) Slectionnez
Modifier
5) Slectionner "Domaine" dans "membre de:" et rentrer le nom du
Domaine NT que vous voulez
6) Utilisez le compte smbadmin pour rejoindre le Domaine.
19 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
7) Redmarrez 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 sauthentifient sur lannuaire
LDAP on utilise PAM (Pluggable Authentication Modules) qui nous
permettra de dfinir les niveaux et les mthodes dauthentification.
PAM est un service dauthentification qui ncessite que les comptes
qui doivent sauthentifier sur lannuaire LDAP existent en local.
Pour la configuration du service PAM sur les postes clients nous
utilisons le GUI : Webmin. -Procdure : 1) Connexion a Webmin en
mode scuris (https). On utilise le compte root du poste clients.
https://127.0.0.1:10000/ Pour utiliser cet outil, taper dans
firefox: 2) Slectionnez le module PAM situ sous l'onglet System
3) Slectionnez le service login
20 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
Pour retourner au sommaire cliquez ici
Mise en place d'une authentification crypte avec TLS:Les
captures suivantes attestent d'une faille de scurit.
En effet le mot de passe est bien crypt (mme chiffrs, ceux-ci
sont prcieux... On trouve de nombreux outils pour les "casser"...),
mais pas le SID, le GID et l' UID passent en clair sur le rseau.
Pour respecter le cahier des charges nous avons retenu la solution
d'authentification crypte avec TLS.
21 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
Une manire simple de scuriser 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
donnes Remarque: Pour que lauthentification soit crypte il faut
utiliser le protocole de dialogue scuris TLS. Il utilise un
certificat pour l'authentification entre le poste client et le
serveur LDAP.
1) Dans le rpertoire /etc/openldap, crer un rpertoire 'cert' qui
contiendra les clefs et le certificat : [root@srvldapv]#mkdir
/etc/openldap/cert 2) Dans ce rpertoire, gnrez la clef prive 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 Compltez correctement les informations qui vous sont
demandes. 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
ajoutes 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 diffrentes
clefs et le certificat :# TLS # Chemin vers le certificat du
serveur LDAP TLSCertificateFile /etc/openldap/cert/servercert.pem #
Chemin vers la clef prive 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 :
22 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
#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 prsent
sur le disque de la station. Il convient de le copier au bon
endroit (ici /etc/openldap/cert/) depuis notre serveur LDAP.
Grce cette mthode le sniffe du message n'apporte plus aucune
information critique:
L'authentification est maintenant crypte.
Pour retourner au sommaire cliquez ici
Conclusion:Ce projet dinteroprabilit de Windows et de Linux nous
a permis de nous rendre compte des difficults dauthentifications
pour des systmes htrognes. Il a fallut mettre en place une stratgie
nous permettant dunifi la gestion des comptes utilisateurs tout en
assurant un niveau de scurit acceptable pour lauthentification.
Nous avons donc choisi deux stratgies dauthentifications diffrentes
mais sappuyant sur une base unique de comptes : Pour Windows nous
avons opt pour un domaine NT avec pour contrleur 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 scuris pour lauthentification,
de base entre Windows et Samba 3 et un dialogue crypte par TLS pour
Linux et LDAP. Nous avons remarque une faille de scurit si lon
utilise les profils errants car le passage des fichiers du serveur
la station seffectue en clair. Pour une administration en graphique
nous avons opt pour des interfaces permettant ladministration
distante. Cette administration est scuris par lemploi de connexions
scuris : protocole HTTPS. OpenLDAP Samba 3 : : PhpLDAPadmin
Webmin
Linterface Webmin permet de plus une administration systme de
nimporte quel poste sous Linux, on pourras grer le niveau
dauthentification de nimporte quel processus par le biais de PAM.
Certain logicels nous offres la possibilit daffiner encore plus la
scurit. Par exemple le firewall NuFW est capable de grer des rgles
de filtrages en fonction des utilisateurs. Pour chaque paquet de
demande de connexion il peut utiliser l'annuaire LDAP pour
authentifier l'utilisateur. Les
23 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
tests de performance dmontrent l'efficacit et la rapidit de
cette mthode. Nombre d'autres logiciels offres des solutions
s'appuyant sur cette technique stable et gratuite. Grce a ce projet
nous avons pu voir que linteroprabilit dans un milieu htrogne est
possible mais reste une solution lourde la mise en place et rclame
une finesse extrme la configuration pour fournir un niveau de
scurit acceptable. Pour retourner au sommaire cliquez ici
Annexe 1 : fichier slapd.conf fourni par dfaut# # 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.
allow bind_v2 This is NOT the default.
# Do not enable referrals until AFTER you have a working
directory # service AND an understanding of referrals. #referral
ldap://root.openldap.org pidfile argsfile # # # # # # # # # # # # #
# # /var/run/slapd.pid /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
24 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
# Indices to maintain for this database index objectClass index
ou,cn,mail,surname,givenname index uidNumber,gidNumber,loginShell
index uid,memberUid index nisMapName,nisMapEntry
eq,pres eq,pres,sub eq,pres eq,pres,sub 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/[email protected]
Pour retourner au sommaire cliquez ici
Annexe 2 : fichier slapd.conf dfinitif.# # 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.
allow bind_v2 This is NOT the default.
# Do not enable referrals until AFTER you have a working
directory # service AND an understanding of referrals. #referral
ldap://root.openldap.org pidfile argsfile # # # # # # # # # # # # #
# # /var/run/slapd.pid /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
25 sur 30
23/05/2012 15:09
mise en place d' un serveur samba LDAP
http://villar.m.free.fr/mp.htm#sommaire
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 index
ou,cn,mail,surname,givenname index uidNumber,gidNumber,loginShell
index uid,memberUid index nisMapName,nisMapEntry eq,pres
eq,pres,sub eq,pres eq,pres,sub 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/[email protected]
Par la suite sur le serveur LDAP modifier
/etc/openldap/slapd.conf et ajouter les chemins vers les diffrentes
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 prive 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