Outils pour utilisateurs

Outils du site


netadmin:linux:nfs

Ceci est une ancienne révision du document !


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 >
  • <dossier à partager> chemin absolu vers le dossier à partager.
  • <hôte autorisé 1> adresse IP, plage d'adresses, nom d’hôte ou de domaine désignant les hôtes autorisés à utiliser la ressource.
  • <options 1> 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.

Références

1)
Network File System
netadmin/linux/nfs.1552321840.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)