~~SLIDESHOW~~
====== SI5 - SMB/CIFS ======
TP 02 jeudi 28 janvier 2012
rappels :
* **SMB : Server Message Block** - 1985 IBM
* **CIFS : Common Internet File System** - 1998 Microsoft
* **SMB2 : Server Message Block version 2** - 2010 Windows Vista, puis Windows 7
* Rôle : partage de fichier/répertoires et imprimantes en environnement Windows
* Fonctionnement : client/serveur
NB : utilisation intensive de la bande passante réseau (Chaque client reporte sa présence à tout le réseau via des broadcasts)
===== Objectifs =====
* mettre en oeuvre un serveur de fichiers **SMB/CIFS** sur :
* une machine **Windows**
* une machine **Linux** avec **Samba**
* tester l'accès depuis un client Windows et depuis un client Linux
===== Prérequis =====
* une machine Windows XP : **srvXpPN** (serveur - mode bridge, PN sont vos initiales)
* une seconde machine XP : **cltXpPN** (client - mode bridge, PN sont vos initiales)
* une machine Linux Debian : **squeezePN** (serveur et client - mode bridge, PN sont vos initiales)
NB: une machine XP "légère" est disponible sur **STORE**. Pensez à désactiver le pare-feu sur les serveurs !
===== ETAPE 1: Mise en œuvre d'un serveur de fichiers SMB sur une machine Windows XP =====
Le service de partage de fichiers est installé et fonctionne par défaut sur chaque machine Windows (à vérifier)
* sur le **serveur** créer deux comptes utilisateurs : **pierre** et **paul**
net user pierre mdp /add
* vérifier avec la commande
net user pierre
NB: dans l'explorateur Windows, vous pouvez vérifier en passant par le **panneau de configuration/comptes utilisateurs**
==== Création des partages ====
* créer un répertoire **pub** à la racine du **disque c:** sur le **serveur**
mkdir c:\pub
* Partager ce répertoire **pub**
net share pub=c:\pub
* on peut alors vérifier avec la commande **net share**
* dans l'explorateur Windows,
*aller dans le menu **outils** puis choisir **options des fichiers**, onglet **affichage**
*vérifier que la case **utiliser le partage de fichiers simple (recommandé)** n'est pas cochée
*clic droit sur le répertoire **pub** et dans l'onglet **Partage** (choisir le nom **pub**), donner des droits
* en **modification** pour **pierre** et
* en **lecture** seule pour **paul**
*dans l'onglet **sécurité** donner tous les droits (contrôle total) aux utilisateurs afin de désactiver la couche **NTFS** qui occulterait **SMB**
* déposer un fichier quelconque dans **c:\pub**
==== Accès depuis une machine Windows ====
* depuis la machine client **cltXpPN**, dans l'explorateur,taper dans l'adresse le chemin UNC du partage : **\\srvXpPN\pub**
* on peut alors explorer le partage **pub** après authentification avec un compte et son mot de passe
* ou bien depuis la ligne de commande taper :
net view \\srvXpPN
* se connecter avec le compte **paul**
* essayer de créer un répertoire dans **pub**, le système doit refuser
* se connecter avec le compte **pierre**
* essayer de créer un répertoire dans **pub**, le système doit accepter
==== Accès depuis une machine Linux avec smbclient ====
* sur la machine **squeeze**, installer les paquets **smbclient** et **smbfs**
* tester que l'on voit bien la machine **srvXpPN** avec la commande suivante (en mode anonyme)
*
pierre@squeeze:~$ smbclient -L srvXpPN
Enter pierre's password:
Anonymous login successful
Domain=[WORKGROUP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
Error returning browse list: NT_STATUS_ACCESS_DENIED
Anonymous login successful
Domain=[WORKGROUP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Server Comment
--------- -------
Workgroup Master
--------- -------
* on peut se connecter en tant qu'utilisateur **pierre** avec l'option **-U**
pierre@squeeze:~$ smbclient -L srvXpPN -U
Enter pierre's password:
Domain=[srvXpPN] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
pub Disk
IPC$ IPC IPC distant
print$ Disk Pilotes d'imprimantes
ADMIN$ Disk Administration à distance
C$ Disk Partage par défaut
* accéder au partage **pub** sur **srvXpPN** en tant qu'utilisateur **pierre**
phierre@squeeze:~$ smbclient //srvXpPN/pub -U pierre
Enter pierre's password:
Domain=[srvXpPN] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
. D 0 Wed Mar 26 18:58:28 2008
.. D 0 Wed Mar 26 18:58:28 2008
mp3 D 0 Fri Dec 23 17:55:31 2011
photos D 0 Sun Mar 28 16:32:52 2010
44998 blocks of size 2097152. 157 blocks available
smb: \>
* on peut alors
* obtenir la liste des fichiers avec **ls**
* créer un répertoire avec **mkdir**
* supprimer un fichier avec **rm**
* récupérer un fichier avec **get **
* déposer un fichier avec **put **
* obtenir de l'aide avec **help**
==== Accès depuis une machine Linux avec montage du répertoire distant ====
* pour effectuer le montage, il faut disposer d'un répertoire : **/mnt/srvXpPN**
root@squeeze:~# mkdir /mnt/srvXpPN
* on peut alors monter le partage \\srvXpPN\pub sur **/mnt/srvXpPN** avec
root@squeeze:~# mount -t smbfs -o username=pierre //srvXpPN/pub /mnt/srvXpPN
* l'option **-o username** permet de spécifier l'utilisateur
* la commande **mount** affiche les systèmes de fichiers montés dont **/mnt/srvXpPN**
* la ressource distante **\\srvXpPN\pub** est alors accessible dans le répertoire **/mnt/srvXpPN**
* on peut utiliser les commandes usuelles : **ls**, ....
* en fin de travail, on peut démonter la ressource avec
root@squeeze:~# umount /mnt/srvXpPN
===== ETAPE 2: Mise en œuvre d'un serveur de fichiers SMB sur une machine Linux =====
==== Installation du serveur Samba ====
* sur la machine Linux, installer le paquet **samba**
* créer deux utilisateurs **pierre** et **paul** avec
root@squeeze:~# adduser pierre
* même chose pour **paul**,
* créer le répertoire **/home/pub** qui sera partagé
* puis spécifier les droits **777** pour **/home/pub** (accès complet pour tout les utilisateurs), la sécurité sera assurée par le serveur Samba
root@squeeze:~# mkdir /home/pub
root@squeeze:~# chmod 777 /home/pub
* il faut maintenant paramétrer le serveur **samba**
==== Création d'un partage ====
* éditer le fichier **/etc/samba/smb.conf** avec l'éditeur de votre choix
* au bout du fichier ajouter les lignes suivantes
*
[pub]
comment = Repertoire public
path = /home/pub # chemin du partage
guest ok = no
create mask = 0666
writeable = yes # on peut écrire
valid user = pierre, paul # pierre et paul ont accès au partage
write list = pierre # seul pierre peut écrire
* quitter en sauvegardant **smb.conf**
* tester la configuration avec la commande **testparm**
* relancer samba par
root@squeeze:~# service samba restart
* vérifier le fonctionnement de Samba avec **smbstatus**
root@squeeze:~# smbstatus
Samba version 3.5.6
PID Username Group Machine
-------------------------------------------------------------------
Service pid machine Connected at
-------------------------------------------------------
No locked files
==== Création des comptes samba ====
* créer les comptes samba pour **pierre** et **paul**
root@squeeze:~# smbpasswd -a pierre
==== Accès depuis une machine Windows ====
* on accède alors au serveur Samba comme à tout serveur Windows
* par l'explorateur et le voisinage éseau
* en spécifiant le chemin UNC du serveur ou du partage : **\\squeeze** ou **\\squeeze\pub**
* tester les connexions avec les utilisateurs **Pierre** et **Paul** et vérifier la différence de comportement à propos du droit en écriture
* on peut également connecter un répertoire distant à une unité logique : ici, on connecte la ressource **\\squeeze\pub** à l'unité logique **p:**
c:\> net use p: \\squeeze\pub
* la commande **net use** sans paramètres permet également de voir les connexions aux partages distants
c:\> net use
===== Pour finir =====
* copier sur votre machine Debian **squeeze** un fichier situé sur votre partage **\\srv0210019g\albert.dupont** au moyen du protocole **SMB/CIFS**
* copier un fichier dans le partage **pub** de **squeeze** depuis une machine **cltXpPN** ou **srvXpPN**