EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire


Conforme à XHTML 1.0 Strict Conforme à CSS!

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Installer et configurer un serveur NFS

Historique

02 juin 2013 : Reprise de la page de l'ancien site de Païou et actualisation.

Difficulté

Pour : utilisateur un peu curieux.

Introduction

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 la page
Bases de NFS et de réfléchir aux options que vous devez choisir dans votre cas.

Haut

Installation du serveur

L'installation et la configuration se font à l'aide du CCM (Centre de Contrôle Mageia).

Ouverture du Centre de contrôle

Centre de contrôle Pour accéder au CCM :

Gestionnaire de paquetages

Centre de contrôle Configurez le gestionnaire de paquetages

Installation

Installation NFS Vérifiez si le paquetage du serveur est installé. Sinon, installez-le :

Haut

Configuration du serveur

Pour que votre partage NFS fonctionne correctement, sa configuration doit correspondre à vos besoins.
Vous pouvez exporter plusieurs répertoires, par exemple si vous avez plusieurs utilisateurs qui doivent pouvoir accéder chacun à son (ses) répertoire(s). Dans ce cas, vous ferez la configuration pour chacun des répertoires à exporter.

Un peu de théorie

La configuration peut se faire par l'intermédiaire du Centre de contrôle que vous avez laissé en attente ou en éditant un fichier de configuration.
Mais il faut savoir quoi configurer.

  1. le répertoire à exporter, avec le chemin d'accès complet,
  2. quels ordinateurs peuvent y accéder :
    • tous = *
    • tout le réseau local = 192.168.0.0/24 ou 192.168.0.0/255.255.255.0, par exemple,
    • rien qu'un ordinateur = son adresse IP (192.168.0.2) ou son nom abrégé (s'il est connu) ou son nom complet
    • un groupe d'ordinateurs = leur nom avec des caractères jocker (tux* pour tux, tuxie, tuxette ...)
  3. avec quelle association d'identifiant
    (vous avez lu le paragraphe Accès des utilisateurs de la page
    Bases de NFS)
    les identifiants peuvent être transformés en identifiants d'un utilisateur nommé nobody et qui n'a que des droits très limités (ceux du reste du monde)
    • pour les utilisateurs normaux
      • no_all_squash : C'est l'option utilisée par défaut, il n'est donc pas nécessaire de l'indiquer. Les utilisateurs ordinaires conservent leur identifiant. Intérêt : chaque utilisateur n'accède qu'à ses documents et à ceux auxquels il est autorisé. Il faut cependant que les UID et GID soient identiques sur les deux machines
      • all_squash : Les requêtes de tous les utilisateurs sont transformées en requêtes de l'utilisateur anonyme (nobody). Intérêt : les clients ne peuvent rien modifier. Ceci est conseillé pour un serveur public.
    • pour le superutilisateur
      • root_squash : C'est l'option utilisée par défaut, il n'est donc pas nécessaire de l'indiquer. Les requêtes du superutilisateur sont transformées en requêtes de l'utilisateur anonyme, donc avec des droits très réduits. Intérêt : un superutilisateur distant ne peut pas utiliser ses droits étendus sur le serveur. Cette option est fortement recommandée et indispensable pour un serveur public.
      • no_root_squash : Le superutilisateur garde tous ses droits. Intérêt : Elle est utile pour les stations sans disque.
  4. éventuellement comment : sync ou async
    Les spécifications de NFS disent qu'une requête d'écriture de NFS doit être terminée (lorsque les données sont effectivement écrites sur le disque) avant de procéder à une nouvelle requête. Ceci réduit les performances à l'écriture, mais augmente le sécurité (en cas de redémarrage brutal d'un serveur après plantage par exemple). Il s'agit de l'accès synchrone et c'est le comportement par défaut.
  5. éventuellement, secure ou unsecure L'option sécurisée réclame que les requêtes proviennent d'un port de numéro inférieur à 1024. Elle est en service par défaut.
  6. éventuellement, avec quels droits : ro = lecture seule (par défaut) ou rw = lecture/écriture doivent être spécifiées.
  7. éventuellement, avec contrôle des sous-répertoires : subtree_check ou no_subtree_check
    Généralement, pour un répertoire personnel, vous n'utiliserez pas le contrôle des sous-répertoires.


Vous pouvez configurer plusieurs exports différents. Il faudra les configurer individuellement.

Haut

Avec le Centre de Contrôle Mageia

En éditant le fichier de configuration /etc/exports

Cela se fait en étant superutilisateur. Cette procédure permet des configurations plus fines.

C'est le fichier /etc/exports qui définit les conditions du partage de fichiers avec NFS. Chaque ligne de ce fichier définit un partage.

Pour les curieux, survolez : Le fichier de configuration /etc/exports

Voici un exemple de ligne, autorisant deux machines bien définies à accéder à un répertoire :
/home/toto/Documents 192.168.0.2(all_squash,ro) 192.168.0.3(root_squash,rw)

Syntaxe des lignes de ce fichier. Chaque ligne définit :

  • le nom complet du répertoire : /home/toto/Documents
  • quelle(s) machine(s) peu(ven)t y accéder : 192.168.0.2 et 192.168.0.3
  • les options d'accès pour chaque machine : (all_squash,ro) et (root_squash,rw)

Les options se placent immédiatement après le nom du client, sans espace et entre parenthèses.

Vous pouvez également trouver un fichier /etc/nfsmount.conf qui vous permet notamment de définir la version NFS par défaut et même d'imposer une version donnée à laquelle répondra le serveur.

Haut

Configuration du pare-feu

Si le poste qui est serveur NFS possède un pare-feu, vous devrez configurer l'ouverture des ports adéquats.

Avant de configurer le pare-feu, il est important de lire ces trois remarques.

Démons (services) installés et ports écoutés

En installant le paquetage nfs-utils et ses dépendances, ceux-ci installent et lancent tous les programmes nécessaires à NFS versions 2, 3 et 4 et ceux-ci écoutent les ports correspondants :
Chaque ligne donne : nom du programme = port écouté

  • rpcbind = (anciennement portmapper) = 111 tcp/udp
  • rpc.nfsd = 2049 tcp/udp
  • rpc.lockd = 4002 tcp/udp
  • rpc.mountd = port aléatoire tcp/udp
  • rpc.rquotad = port aléatoire tcp/udp
  • rpc.statd = port aléatoire tcp/udp

3 services utilisent des ports aléatoires, donc difficiles à gérer par le pare-feu.

Ports ouverts par le pare-feu

En configurant le pare-feu avec MCC vous pouvez cocher la ligne serveur NFS. Ceci ouvre les ports suivants :
111/tcp, 111/udp, 2049/tcp, 2049/udp, 4001/tcp, 4001/udp, 4002/tcp, 4002/udp, 4003/tcp, 4003/udp, 4004/tcp et 4004/udp.

Avec NFSv4, seul le port 2049 est nécessaire. Des ports sont ouverts inutilement.
Avec NFSv2 et NFSv3, 2049 et 4002 correspondent bien à des ports utilisé, mais 4001, 4003 et 4004 ne correspondent à rien, par contre, 3 démons utilisent des ports aléatoires.

Bogue de la configuration du pare-feu

Astuce : une bogue affecte actuellement Mageia3, empêchant toute configuration du pare-feu.
Pour contourner le problème, désinstaller d'abord shorewall-ipv6. Il sera réinstallé plus tard, pendant la configuration du pare-feu, mais cette opération permet la configuration du pare-feu !

Haut


Si vos clients utilisent uniquement NFSv4

Configuration du pare-feu

Avec Mageia, cette opération se fait facilement avec le Centre de Contrôle.

Voici la procédure de configuration du pare-feu :

Si vos clients utilisent également NFSv2 ou NFSv3

Configuration correcte des ports

En superutilisateur éditez, comme suit, les 3 lignes du fichier /etc/sysconfig/nfs :
RPCQUOTADARGS="-p 4001"
RPCMOUNTDARGS="-p 4003"
STATDARGS="-p 4004"

Redémarrez les services (CCM, Système Gérer les services)

Configuration du pare-feu

Avec Mageia, cette opération se fait facilement avec le Centre de Contrôle.

Voici la procédure de configuration du pare-feu :

Haut