Table des matières

, , , , , ,

NFS

NFS1) 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:

<dossier à partager> <hôte autorisé 1 > <options 1 > ... <hôte autorisé n > <options n >

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:

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 Fixer les ports pour un partage NFS.

Références

1)
Network File System