{{tag>sysadmin netadmin nfs partage mount montage réseau}} ====== NFS ====== NFS((**N**etwork **F**ile **S**ystem)) permet de partager des dossiers/fichiers sur un réseau sûr. Il rend disponible les arborescences partagées par le serveur directement sur les postes clients. ===== Configuration du serveur ===== Installer NFS: root@kerberos:~# apt-get install nfs-kernel-server Déclarer les exports (les ressources du serveur à partager avec les clients) dans le fichier ''**/etc/exports**''. Chaque ligne respecte la syntaxe: ... * **** chemin absolu vers le dossier à partager. * **** adresse IP, plage d'adresses, nom d’hôte ou de domaine désignant les hôtes autorisés à utiliser la ressource. * **** options s'appliquant pour ce groupe d’hôtes. ==== Options ==== ^ root_squash | Le root sur les clients distants n'est pas le root sur le serveur, il est mappé sur l'utilisateur anonyme. | ^ no_root_squash | Le root distant correspond au root sur le serveur, pas de mapping pour root. | ^ all_squash | Tous les utilisateurs distants correspondent à l'utilisateur anonyme du serveur. | ^ anongid | Définir le GID de l'utilisateur anonyme pour les options root_squash, all_squash | ^ anonuid | Définir l'UID de l'utilisateur anonyme pour les options root_squash, all_squash. | ^ async | Privilégier le temps de réponse au détriment de l'intégrité. Permet de répondre à une requête avant que tous les changements engendrés par la requête n'aient été apportés côté serveur. | ^ subtree_check | Vérifie que la requête accède bien a une ressource déclarée comme partagée. | ^ no_subtree_check| Peu améliorer la fiabilité dans certains cas au détriment de la sécurité. Désactive la vérification sur les sous-répertoires. | Pour le détail des options, section 5 du man: $ man -S5 nfs ===== Configuration du client ===== Le client utilise le paquet **nfs-common** pour monter la ressource NFS sur l’arborescence logique locale. $ sudo apt-get install nfs-common ==== Lister les exports ==== Pour lister les ressources exportées par un serveur NFS du réseau: $ showmount -e server.lan Export list for server.lan: /mnt/raid/music client.lan /mnt/raid/backup client.lan Ici le serveur server.lan exporte deux dossiers que client.lan est autorisé à utiliser. ==== Montage sur le poste client ==== Pour tester un montage depuis la ligne de commande: $ sudo mount -t nfs server:/path/dir ./mnt-pt Pour que l'utilisateur puisse faire le montage, modifier le fichier ''**/etc/fstab**'' et utiliser les options **user** et **noauto**. server:/path/dir /path/mnt-pt nfs user,noauto,noexec,nosuid,ro 0 0 ===== Anomalies ===== La commande **nfsstat** permet d'afficher les statistiques pour les différentes versions du protocole utilisées localement. $ nfsstats En cas de problème lors du montage il peut être intéressant d'utiliser certaines options: Dans l'exemple ci-dessous l'argument **-v** (verbeux) pour détailler les étapes du montage et l'option **vers** pour forcer l'utilisation du protocole en version 4 3 ou 2 coté client: $ sudo mount -t nfs server.lan:/share /mnt/nfs -v -o vers=3 ==== Message d'erreur acces denied ==== En cas d'erreur ''mount.nfs4: access denied by server while mounting'', vérifiez les droits d'accès au dossier partagé (le dossier est peut être en mode interdit pour "autres" (others) ce qui le rend impossible à lire pour le serveur NFS). Lors de toute tentative de montage le message suivant est affiché: mount.nfs: access denied by server while mounting "ipserveur" Coté serveur, le fichier /etc/exports autorise bien la machine à accéder au partage. Ce problème s'est présenté avec NFSv4 qui n'utilise pas le système d'authentification par ip, il peut être utile: * De procéder au montage avec l' options **-v** et d'essayer de spécifier **clientaddr** * De rétrograder en version 3 pour que le serveur se base sur l'ip Pour forcer l'utilisation du protocle en version 3, coté serveur dans le fichier **/etc/default/nfs-kernel-server** remplacer la valeur de **RPCNFSDCOUNT**: RPCNFSDCOUNT='8 --no-nfs-version 4' Coté client, ajouter **vers=3** dans les options de montage de **/etc/fstab** ou sur la ligne de commande. ===== Fixer les ports NFS ===== Le service NFS s'appuie sur RPC déclarant des services avec des ports aléatoires. Il peut être utile de fixer les ports utilisés par les services NFS notamment lorsqu'on souhaite pouvoir faire fonctionner NFS à travers un pare-feu. Le détail de la configuration des services est abordé dans l'article [[ https://doc.ubuntu-fr.org/nfs-ufw | Fixer les ports pour un partage NFS]]. ===== Références ===== * http://doc.ubuntu-fr.org/nfs * http://g.eckenschwiller.free.fr/Tutoriels/Configuration/serveur_NFS.php