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 <fichier>
    • déposer un fichier avec put <fichier>
    • 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