Comment créer des points de montage NFS ?

By | September 28, 2018

Le NFS ou Network File System est un protocole système qui permet à un ordinateur d’accéder à des fichiers distants à travers un réseau.
Ce protocole vous permet de gérer un espace de stockage situé sur un emplacement différent et facilite le partage de données avec d’autres utilisateurs dans un même réseau.

Dans ce guide, nous verrons comment configurer des points de montage via NFS sur des machines Ubuntu 16.04.

I-Installation des packages NFS

Sur le système qui fonctionnera comme serveur NFS, le package nfs-kernel-server devra être installé.

# apt-get update
# apt-get install nfs-kernel-server

Sur les machines qui feront office de clients NFS, le package nfs-common devra être installé.

# apt-get update
# apt-get install nfs-common

II-Configurations NFS

Pour permettre aux clients de créer des points de montage à partir de leur système, il faudra insérer pour chaque client une ligne dans le fichier de configuration du serveur NFS: /etc/exports.
La syntaxe de base pour les lignes de configuration NFS est la suivante:

dossier_à_partager adresse_client(option1,option2,…)

NB: adresse_client peut être un nom d’hôte ou une adresse ip.

Ci-dessous quelques options NFS:

rw: Cette option donne au client les accès en écriture et en lecture.

ro: Cette option ne donne au client que les accès en lecture.

sync: L’option sync force le serveur à répondre aux requêtes des clients NFS après l’écriture des données sur l’espace de stockage. Bien que cette option soit sécurisée (peu de chances de perte des données), elle peut ralentir la transmission des données.

async: Contrairement à sync, async permet au serveur de répondre aux requêtes aussitôt qu’il reçoit les requêtes des clients NFS. La transmission des données est améliorée avec async, mais en retour les risques de perte sont plus élévés.
Cette option est utilisée par défaut par le protocole NFS.

NB: Les modes sync et async peuvent être également activés chez le client NFS via la commande mount ou le fchier /etc/fstab.

no_subtree_check : Cette option désactive le contrôle de sous-arbre. Sans cette option, le NFS vérifie en plus que les utilisateurs n’ont accès qu’aux sections nécessaires du répertoire. Cela ralentit le travail. no_subtree_check permet d’accélerer ce processus, mais réduit la sécurité.

no_root_squash : Dans un souci de sécurité, le NFS traduit par défaut les requêtes d’un utilisateur root distant en un utilisateur non priviligié sur le système local (nobody). Cette fonctionnalité du NFS empêche un utilisateur root distant d’accéder aux fichiers du serveur en étant également root sur ce même serveur. L’option no_root_squash désactive cette fonctionnalité.

all_squash : Lorsque cette option est activée, tout utilisateur (y compris root) qui accédera au partage en tant que utilisateur nobody, membre du groupe nogroup.

anonuid : permet de modifier l’uid du compte utilisé par le NFS (nobody).

anongid : permet de modifier le gid du groupe utilisé par le NFS (nogroup).

NB: Les syntaxes pour anonuid et anongid est:
anonuid=<valeur_uid>
anongid=<valeur_gid>

sec Ce paramètre est utilisé pour sécuriser les transmissions de données via NFS. Voici ses options possibles:
_ sys: Ce mode permet un accès aux fichiers basé sur les permissions de fichiers Linux standards. sys est l’option utilisée par défaut par le NFS.
_ krb5: Les clients doivent prouver leurs identités en utilisant Kerberos. Les permissions Linux sont ensuite appliquées.
_ krb5i: Ce mode ajoute à krb5 un chiffrement sur les données transmises ce qui assure l’intégrité des fichiers.
_ krb5p: Ce mode chiffre toutes les requêtes entre le client et le serveur. La performance est fortement impactée.

III-Exemples

Pour les démonstrations que nous effectuerons ci-dessous, nous utiliserons trois machines:

nfs-server qui sera notre serveur NFS et trois clients NFS nfs-client, other-client et new_client.

Exemple 1

Sur notre serveur NFS (nfs-server), créeons un dossier /share que nous rendrons accessible via le réseau.

# mkdir /share

Ajoutons ensuite à /etc/export la ligne suivante qui permettra aux utilisateurs de la machine nfs-client de monter sur leur machine le répertoire /share.

Validons les nouvelles configurations à l’aide de la commande suivante:

# exportfs -r

Sur nfs-client, créeons un nouveau dossier /nfsshare à travers lequel nous allons monter le répertoire /share du serveur nfs-server.

# mkdir /nfsshare

A l’aide de la commande mount, montons le dossier distant dans le dossier /nfsshare.


Grâce à l’option no_root_squash que nous avons inséré dans le fichier de configuration de nfs-server, nous remarquons qu’il n’est pas possible de faire la différence entre les fichiers créés par l’utilisateur root de nfs-client et ceux créés par l’utilisateur root de nfs-server.

Exemple 2

De retour sur nfs-server, créeons un nouveau dossier /directory, puis assurons-nous que les autres utilisateurs en plus de l’utilisateur root aient également le droit d’écriture sur ce dossier.

# mkdir /directory
# chmod o+w /directory

Ajoutons une nouvelle ligne de configuration à nfs-server qui permettra aux utilisateurs de la machine other-client de monter sur leur système le répertoire /directory.

Validons les nouvelles configurations à l’aide de la commande suivante:

# exportfs -r

L’absence du paramètre no_root_squash dans le fichier de configuration de nfs-server nous permet de faire la différence entre les fichiers créés par l’utilisateur root via nfs et ceux créés par le serveur nfs.

Exemple 3

A l’aide de all_squash, anonuid et anongid  nous spécifions un utilisateur et un groupe précis pour tout utilisateur distant qui accédera au partage /newshare et qui se connectera à partir de la machine new-client.

Dans l’image suivante, nous remarquons que tous les fichiers édités par les utilisateurs de la machine distante (comptes privilégiés et non-privilégiés)
ont tous un même propriétaire.

Exemple 4

Si vous souhaitez rendre permanent un point de montage sur un client NFS, il vous faudra tout simplement modifier le fichier /etc/fstab du système comme dans l’image suivante:

Dans un prochain article, nous verrons comment sécuriser les transmissions NFS via Kerberos.

J’espère que ce guide vous a plus et qu’il vous sera utile.

🙂

mdestroy

One thought on “Comment créer des points de montage NFS ?

  1. Jonathan

    Merci pour cet article. Ça fait une bonne piqure de rappel. Je met en marques-pages 😉

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *