TP Réseau n 4 Common Internet File System (CIFS) et Network File System (NFS) BELLINGER Marc BINON Antoine
Introduction Durant ce TP, nous aborderons de protocoles de partage de ressources sur un réseau local. Ces protocoles font partie de la couche application du modèle OSI. Au cours de ce TP, nous analyserons dans un premier temps le protocole NFS puis CIFS pour voir les différences entre ces deux protocoles. NFS Introduction NFS est un protocole développé par Sun Microsystems qui permet à un ordinateur de monter un système de fichiers distant via un réseau local. NFS fonctionne en mode client/serveur et utilise les RPC et portmap. Les versions 1 et 2 de NFS, prévue pour fonctionner en UDP ne sont pas sécurisées. NFS utilise le protocole RPC et, de ce fait, toutes les opérations NFS sont des procédures RPC. NFS est un protocole en mode déconnecté (stateless) ce qui fait que le serveur ne stocke aucune information sur chaque client. Prise en main Pour ce TP, nous utiliserons la version serveur nfs-kernel-server. Nous l installons grâce à la commande -apt get install nfs-kernel-server. Puis les outils dont le serveur a besoin et les utilitaires grâce aux commandes respectives : -apt get install nfs-common -apt get install rpcbind
Nous allons ici décrire la fonction de certaines commandes qui nous seront utiles pour la suite. La commande showmount permet : -a, Afficher à la fois le nom d hôte ou l adresse ip du client et le répertoire monté dans le format hôte:répertoire. -d, Afficher seulement les répertoires montés par un ou plusieurs clients. -e, Afficher la liste des répertoires exportés par le serveur NFS. -e[host], Afficher la liste des exports NFS vers l hôte [host]. La commande exportfs permet : -a, Partager ou interrompre le partage de tous les répertoires. -ra, ré exporte tous les dossiers dans /var/lib/nfs/etab où l on retrouve notamment le contenu de /etc/export et /etc/export.d La commande rpcinfo permet : -p, renvoie la liste de tous les programmes RPC distants. -p[host], renvoie la liste de tous les programmes RPC distants sur [host]. -s[host], renvoie la liste des services RPC.
La commande - mount t nfs[host ip]:/path/directory /mypath/mydirectory crée un système de fichier NFS (montage réseau) liant le répertoire distant [host]:/path/directory au répertoire local /mypath/mydirectory. L attribut t nfs permet de spécifier le montage NFS. Enfin la commande umount /mypath/mydirectory permet d arrêter le montage réseau lié à /mypath/mydirectory. Pour prendre en compte les modifications côté serveur, nous avons redémarré dans l ordre les services portmap, nfs-kernel-server et nfs- common. Exercice La première étape consiste à créer un répertoire /exports/antoine en utilisant la commande mkdir p /root/export/antoine. Puis nous avons créé, dans ce répertoire /exports/antoine, le fichier Readme_antoine et y avons saisi nos noms. La commande /etc/init.d/nfs-kernel-server status permet de connaitre l état des services NFS. Nous constatons à ce stade que le fichier /etc/exports n est pas rempli. Nous avons alors renseigner dans le fichier le chemin du dossier à partager ainsi que l adresse IP correspondant à l adresse du réseau local sur lequel le fichier sera partagé. Ainsi on partage le dossier en rajoutant : /export/antoine 172.18.3.0/24(ro,no_subtree_check,root_squash) /export/antoine 172.18.3.24(ro,no_subtree_check,root_squash)
CIFS Introduction Le protocole CIFS (Common Internet File System), anciennement SMB (Server Message Block, permet le partage de ressources (fichiers et imprimantes) sur des réseaux locaux entre ordinateurs. Dans Vista et 7, il est appelé SMB 2.O. Niveau partage (share level) : Chaque partage peut avoir un mot de passe et les clients fournissent juste ce mot de passe pour accéder aux ressources à l intérieur. C est le premier modèle de sécurité implémenté et le seul disponible dans le protocole de base. Niveau utilisateur (user level) : La protection est basée sur les droits d accès utilisateur et est appliquée sur chaque ressource partagée. Chaque client doit être authentifié par le serveur, après quoi il lui est attribué un identifiant qu il devra présenter à chaque fois qu il demandera l accès à une ressource sur le serveur. Prise en main La première tâche à effectuer est l installation du service samba. Par ailleurs nous installons les outils présents dans le paquet samba-common ainsi que les utilitaires issus du paquet cifs-utils. Dans cette partie nous allons détailler les commandes suivantes :
testparm : vérifie la validité du fichier smb.conf de configuration de serveur Samba smbstatus : affiche toutes les connexions sur le serveur Samba smbpasswd : cette commande peut être utilisée avec différents attributs, en particulier, -a[user] : modifie le mot de passe pour l utilisateur [user]. Cela ajoute une entrée au fichier smbpasswd -x[user] : suppression du fichier smbpasswd -n : le mot de passe devient null dans le fichier smbpasswd pdbedit : permet le management de la base d utilisateur du serveur. En complément nous pouvons ajouter les attributs suivants -L : liste tous les utilisateurs -vl[user] : on obtient une description plus détaillée de l utilisateur [user] smbclient : Exercice -U toto L[host ip] : liste tous les services disponibles sur le serveur [host] loggé en tant que toto. -U toto // host/share: permet d accéder au dossier /host/share du serveur. Dans un premier temps, et de la même manière que lors de la première partie, nous démarrons le service Samba et ouvrons le fichier de configuration smb.conf situé dans /etc/samba. Nous créons le répertoire /share/antoine_cifs en utilisant à nouveau la commande mkdir. On doit ensuite disposer d un identifiant et d un mot de passe pour accéder aux services samba mais malheureusement par faute de temps nous avons pu finir cet exercice. Conclusion Lors de ce TP, on a donc pu se familiariser rapidement avec le protocole NFS qui permet de partager des systèmes de fichier sur le réseau, et le protocole CIFS qui permet, lui, de partager des fichiers mais aussi des imprimantes et autres machines. Malheureusement, il a été compliqué d aller plus en profondeur dans les tests, faute de temps.