NFSNFS (Network File System) est le système de fichiers en réseau « classique » des plateformes Unix, avec un fonctionnement client-serveur. Le serveur met à disposition des ressources pour les clients du réseau ou une partie du réseau. Les fichiers distants sont montés dans un répertoire et apparaissent comme un système de fichiers local. À partir de là, les utilisateurs clients accèdent en toute transparence aux fichiers partagés par le serveur, en parcourant les répertoires comme s’il s’agissait d’une arborescence locale.

Dans cet article, nous allons décrire la mise en place d’un partage NFS sur une machine locale sous Rocky Linux 8. Le but ultime de cette opération sera la création d’une authentification centralisée avec des profils itinérants dans le réseau local. Notre serveur NFS constituera la première brique logicielle d’une telle configuration.

AstuceDepuis septembre 2010, j’administre le réseau informatique d’un lycée privé dans les Cévennes, équipé exclusivement de machines tournant sous Linux. Les comptes utilisateurs et les données de la direction, des enseignants et des élèves sont centralisés sur un serveur et partagés via NFS. Si vous n’avez pas de postes Windows dans votre réseau, je vous conseille d’utiliser NFS qui « juste marche ».

Prérequis

NFSv4 utilise le port 2049 en TCP. Il faut donc songer à ouvrir ce port dans le pare-feu :

# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --reload
# firewall-cmd --list-services
nfs ssh

ImportantLe serveur et les postes clients doivent impérativement être synchronisés via NTP, sous peine de se retrouver avec toute une série d’erreurs bizarres.

Installation

La panoplie des outils NFS et leurs dépendances sont fournies par les dépôts officiels de Red Hat Enterprise Linux et Rocky Linux :

# dnf install -y nfs-utils

Configuration

Renseigner le domaine local dans /etc/idmapd.conf :

[General]
# Verbosity = 0
# The following should be set to the local NFSv4 domain name
# The default is the host's DNS domain name.
Domain = scholae.lan

Voici les répertoires utilisateurs que je souhaite partager en lecture et en écriture :

$ tree -d -L 1 /home/
/home/
├── abard
├── abilancini
├── acorp
├── adebuf
├── adulac
...
├── wkansteiner
├── yaubry
├── ylornage
├── yvignal
└── zkonjolka

Par ailleurs, je dispose également d’une arborescence /data que je souhaite partager en lecture seule.

$ tree -d -L 1 /data/
/data/
├── audio
├── iso
└── video

Nous allons définir ces partages dans le fichier /etc/exports :

# /etc/exports
/data  192.168.10.0/24(ro,async,no_subtree_check) \
         *.scholae.lan(ro,async,no_subtree_check)
/home  192.168.10.0/24(rw,async,no_subtree_check) \
         *.scholae.lan(rw,async,no_subtree_check)
  • L’option ro monte le répertoire distant en lecture seule.
  • L’option rw monte le répertoire distant en lecture/écriture.
  • L’option async permet des écritures asynchrones, c’est-à-dire que le serveur n’attend pas l’écriture d’une requête précédente avant de répondre.
  • Sans trop rentrer dans les détails, l’option no_subtree_check neutralise la vérification des sous-répertoires, ce qui a de subtiles implications au niveau de la sécurité, mais peut améliorer la fiabilité dans certains cas.
  • La barre oblique inversée \ permet d’éviter les lignes à rallonge.
  • Attention à ne pas mettre d’espace entre la définition du réseau 192.168.10.0/24 et les options (rw,async,no_subtree_check).

Mise en service

Activez et démarrez les services RPC et NFS :

# systemctl enable rpcbind --now
# systemctl enable nfs-server --now

Vérifiez l’état du serveur :

# systemctl status rpcbind
● rpcbind.service - RPC Bind
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: active (running) ...
# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
  Drop-In: /run/systemd/generator/nfs-server.service.d
           └─order-with-mounts.conf
   Active: active (exited) ...

Maintenant que notre serveur NFS est en place, nous pouvons passer au montage des partages sur les postes clients.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


2 commentaires

tuxmika · 6 juin 2024 à 20 h 37 min

Bonjour

Si tous les dossiers dans /home sont en ro,qui a les droits d’écriture dans ces dossiers ?

Cordialement

    kikinovak · 21 juillet 2024 à 9 h 04 min

    C’est les dossiers /data qui sont en ro. L’arborescence /home est en rw.

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *