~~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**