Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
31 mai 2013 : Reprise de la page de l'ancien site de Païou et actualisation.
Pour : .
Le système de fichiers en réseau (Network File System) est un protocole qui permet à un ordinateur d'accéder à des fichiers situés sur d'autres ordinateurs à travers un réseau.
Le serveur (l'ordinateur distant) exporte des répertoires et des fichiers, alors que le client (l'ordinateur local) monte ceux-ci dans sa propre arborescence.
L'utilisateur les voit comme s'ils étaient sur son ordinateur.
Les applications sont multiples :
Le partage de fichier en réseau est un système avec plein de finesses.
Avant de vous lancer dans la configuration, prenez le temps de lire cette page et de réfléchir aux options que vous devez choisir dans votre cas.
Plusieurs versions existent, avec des caractéristiques différentes, améliorées au fur et à mesure.
Proposé par Sun Microsystem, le protocole NFS s'est imposé comme un standard dans le monde UNIX mais dépasse maintenant le cadre du monde UNIX.
Il utilise les appels de procédures distantes implémentés par le protocole RPC (Remote Procedure Call).
Le principe d'un protocole sans état (stateless) est de pouvoir contenir une information complète dans chaque "paquet" (ici un ordre, comme lire ou écrire), sans reposer sur des informations envoyées dans des paquets précédents. Ceci permet une implémentation simple et robuste, mais limite les possibilités et peut affecter les performances (l'état est redondant dans chaque ordre).
Mageia permet de travailler, tant au niveau des serveurs que des clients, avec les trois versions.
Le système NFS utilise plusieurs services différents au niveau du serveur de fichiers. Leur nombre dépend de la version de NFS.
Côté serveur, c'est portmap qui reçoit les requêtes RPC du client et qui indique quels sont les ports attribués à NFS et ses compléments. Il écoute sur le port 111 TCP et UDP
Pour NFS, il y a 4 ou 5 services (démons) qui tournent et qui scrutent chacun un port particulier :
Remarque : Ces programmes ne sont pas tous nécessaires pour le service NFS. Les seuls services qui doivent être activés sont rpc.mountd, rpc.nfsd et portmap. Les autres démons offrent des fonctionnalités additionnelles, en fonction des exigences particulières de votre environnement serveur.
Côté client, quand un client souhaite envoyer une requête RPC vers un numéro de programme donné, il contacte d'abord le serveur portmap pour obtenir le numéro de port sur lequel tourne le programme souhaité (d'autres programmes peuvent également requérir RPC). Ensuite, il adresse les paquets RPC au port correspondant.
En résumé, 5 ou 6 ports sont utilisés lors des communications liées à NFS, dont 3 sont indispensables.
Par ailleurs, seuls deux sont prédéterminés, par défaut. Ceci prend toute son importance lorsque vous avez un pare-feu où il faut libérer les ports adéquats.
Pour NFSv4, il n'y a plus que 1 service (démon) nécessaire et qui scrute un port défini :
En résumé, les services rpc.lockd et rpc.quotad sont obsolètes et il n'y a plus qu'un port indispensable.
Ceci simplifie énormément la configuration du pare-feu seul 2049/tcp doit être ouvert.
Vous vous en souvenez, avec tous les Unix et donc Linux, tous les fichiers et répertoires appartiennent à un utilisateur et l'utilisateur fait partie d'un groupe.
L'utilisateur est identifié par un code, le UID (User IDdentificator) et le groupe auquel il appartient est défini par un autre code le GID (Group IDentificator).
Les fichiers et répertoires UNIX possèdent des droits d'accès (lecture, écriture, exécution) pour le propriétaire, pour le groupe et pour les autres utilisateurs.
Avec NFS version 2 et 3, l'utilisateur et le groupe ne sont pas reconnus par leurs noms, mais par leurs identifiants (UID et GID).
Avec NFS version 4, un démon idmap (idmapd) est chargé de traduire les noms d'utilisateurs en identifiants et vice versa, mais ceci est encore mal documenté et demande une clarification.
Chaque machine a enregistré ses propres utilisateurs.
Et chaque machine a attribué ses propres identifiants à chacun de ses utilisateurs.
Nous voyons donc de suite les différents problèmes qui peuvent surgir.
Un autre problème existe : le super-utilisateur a toujours l'identifiant 0. C'est donc le même sur les deux machines.
Mais est-il prudent que le super-user de la machine distante ait ces mêmes droits absolus au niveau du serveur ?
Voici donc quelques questions que vous devez vous poser avant d'installer et configurer un serveur NFS
Pour un serveur public, vous pourriez partager un répertoire tel que /var/nfs/pub.
Vous allez convertir tous les utilisateurs distants (et surtout root) en utilisateur anonyme car cet utilisateur anonyme n'a que des droits très limités.
Dans la configuration du serveur, vous ne leur donnez aucun droit d'écriture.
Si cette machine est utilisée en tant que serveur de fichiers (c-à-d si tous les utilisateurs d'un réseau y enregistrent leurs documents), elle devra avoir un répertoire /home et chaque utilisateur y aura son répertoire propre.
En veillant à la concordance (ou correspondance) des UID et GID (ceci est nécessaire avec NFS v2 et v3), il sera possible de conserver les droits relatifs aux répertoires et fichiers.
Chaque utilisateur ne pourra alors qu'accéder à son propre répertoire, en lecture et écriture.
Si, en plus, le root de toutes les machines du réseau est l'administrateur du réseau, vous pouvez éventuellement lui laisser les droits de super-utilisateur. Il pourra alors garder son UID = 0.
Si vous souhaitez utiliser cette machine pour faire les sauvegardes générales, faites par root, vous pourriez y avoir un répertoire /home/sauvegardes, il ne sera accessible que depuis votre réseau local, les utilisateurs deviennent anonyme. Seul root reste root. Il aura droit d'écriture.
Avec Mageia le serveur accepte les version 2, 3 ou 4 de NFS. Il est cependant possible de préciser un mode par défaut et même un mode imposé.
Les liens ci-dessous vous aideront à configurer :
le serveur : il accepte les clients NFS version 2, 3 et 4 :
le client : il accède aux serveurs NFS version 2, 3 et 4 :