NFS ou Network File System est un protocole de système de fichiers distribué développé à l'origine uniquement par Sun Microsystems. Grâce à NFS, vous pouvez autoriser un système à partager des répertoires et des fichiers avec d'autres sur un réseau. En partageant des fichiers NFS, les utilisateurs et même les programmes peuvent accéder aux informations sur des systèmes distants presque comme s'ils se trouvaient sur une machine locale.
NFS fonctionne dans un environnement client-serveur où le serveur est responsable de la gestion de l'authentification, de l'autorisation et de l'administration des clients, ainsi que de toutes les données partagées au sein d'un système de fichiers particulier. Après autorisation, n'importe quel nombre de clients peut accéder aux données partagées comme si elles se trouvaient dans leur stockage interne. Configurer un serveur NFS sur votre système Ubuntu est très simple. Il vous suffit de faire quelques installations et configurations nécessaires, à la fois sur le serveur et sur les machines clientes, et vous êtes prêt à commencer.
Dans cet article, nous expliquerons étape par étape comment configurer un serveur et un client NFS qui vous permettent de partager des fichiers d'un système Ubuntu à un autre.
Nous avons exécuté les commandes et procédures décrites dans cet article sur un système Ubuntu 18.04 LTS et les avons récemment testées avec le nouveau Ubuntu 20.04. Puisque nous utilisons la ligne de commande Ubuntu, le terminal, pour effectuer toutes les opérations, vous pouvez l'ouvrir en utilisant le tiret système ou la combinaison de touches Ctrl+Alt+T.
Configuration du serveur hôte
Afin de configurer le système hôte pour partager des répertoires, nous devrons y installer le serveur NFS Kernel, puis créer et exporter les répertoires auxquels nous voulons que les systèmes clients accèdent. Veuillez suivre ces étapes afin de configurer facilement le côté hôte :
Étape 1 :Installer le serveur noyau NFS
Avant d'installer le serveur NFS Kernel, nous devons mettre à jour l'index de référentiel de notre système avec celui d'Internet via la commande apt suivante en tant que sudo :
$ sudo apt-get update
La commande ci-dessus nous permet d'installer la dernière version disponible d'un logiciel via les référentiels Ubuntu.
Maintenant, exécutez la commande suivante pour installer le serveur noyau NFS sur votre système :
$ sudo apt install nfs-kernel-server
Le système vous invitera avec une option O/n pour confirmer si vous souhaitez continuer l'installation. Veuillez saisir Y, puis appuyez sur Entrée pour continuer, après quoi le logiciel sera installé avec succès sur votre système.
Étape 2 :Créer le répertoire d'exportation
Le répertoire que nous souhaitons partager avec le système client s'appelle un répertoire d'exportation. Vous pouvez le nommer selon votre choix; ici, nous créons un répertoire d'exportation nommé "sharedfolder" dans le répertoire mnt(mount) de notre système.
Utilisez la commande suivante, en spécifiant un nom de dossier de montage en fonction de vos besoins, via la commande suivante en tant que root :
$ sudo mkdir -p /mnt/sharedfolder
Comme nous voulons que tous les clients accèdent au répertoire, nous supprimerons les autorisations restrictives du dossier d'exportation via les commandes suivantes :
$ sudo chown nobody:nogroup /mnt/sharedfolder
$ sudo chmod 777 /mnt/sharedfolder
Désormais, tous les utilisateurs de tous les groupes du système client pourront accéder à notre "dossier partagé".
Vous pouvez créer autant de sous-dossiers que vous le souhaitez dans le dossier d'exportation, auxquels le client pourra accéder.
Étape 3 :Attribuez l'accès au serveur au(x) client(s) via le fichier d'exportation NFS
Après avoir créé le dossier d'exportation, nous devrons donner aux clients l'autorisation d'accéder à la machine du serveur hôte. Cette autorisation est définie via le fichier exports situé dans le dossier /etc de votre système. Veuillez utiliser la commande suivante pour ouvrir ce fichier via l'éditeur Nano :
$ sudo nano /etc/exports
La modification de ce fichier nécessite un accès root ; vous devrez donc utiliser sudo avec votre commande. Vous pouvez également ouvrir le fichier dans n'importe lequel de vos éditeurs de texte préférés.
Une fois que vous avez ouvert le fichier, vous pouvez autoriser l'accès à :
- Un seul client en ajoutant la ligne suivante dans le fichier :
/mnt/sharedfolder clientIP(rw,sync,no_subtree_check)
- Plusieurs clients en ajoutant les lignes suivantes dans le fichier :
/mnt/sharedfolder client1IP(rw,sync,no_subtree_check)
/mnt/sharedfolder client2IP(rw,sync,no_subtree_check)
- Plusieurs clients, en spécifiant un sous-réseau entier auquel les clients appartiennent :
/mnt/sharedfolder subnetIP/24(rw,sync,no_subtree_check)
Dans cet exemple, nous spécifions un sous-réseau entier de tous les clients auxquels nous voulons accorder l'accès à notre dossier d'exportation (dossier partagé) :
Ajoutez la ou les lignes requises à votre fichier d'exportation, puis enregistrez-le en appuyant sur Ctrl+X, en saisissant Y, puis en appuyant sur Entrée.
Les autorisations "rw,sync,no_subtree_check" définies dans ce fichier signifient que le ou les clients peuvent effectuer :
- rw :opérations de lecture et d'écriture
- synchroniser :écrivez tout changement sur le disque avant de l'appliquer
- no_subtree_check :empêcher la vérification des sous-arborescences
Étape 4 :Exporter le répertoire partagé
Après avoir effectué toutes les configurations ci-dessus dans le système hôte, il est maintenant temps d'exporter le répertoire partagé via la commande suivante en tant que sudo :
$ sudo exportfs -a
Enfin, pour que toutes les configurations prennent effet, redémarrez le serveur NFS Kernel comme suit :
$sudo systemctl restart nfs-kernel-server
Étape 5 :Ouvrir le pare-feu pour le ou les clients
Une étape importante consiste à vérifier que le pare-feu du serveur est ouvert aux clients afin qu'ils puissent accéder au contenu partagé. La commande suivante configurera le pare-feu pour donner accès aux clients via NFS :
$ sudo ufw allow from [clientIP or clientSubnetIP] to any port nfs
Dans notre exemple, nous donnons accès à un sous-réseau entier de machines clientes via la commande suivante :
$ sudo ufw allow from 192.168.100/24 to any port nfs
Maintenant, lorsque vous vérifiez l'état de votre pare-feu Ubuntu via la commande suivante, vous pourrez voir l'état de l'action comme "Autoriser" pour l'IP du client.
$ sudo ufw status
Votre serveur hôte est maintenant prêt à exporter le dossier partagé vers le ou les clients spécifiés via le serveur noyau NFS.
Configuration de l'ordinateur client
Il est maintenant temps d'effectuer quelques configurations simples sur la machine cliente, afin que le dossier partagé de l'hôte puisse être monté sur le client, puis accessible en douceur.
Étape 1 :Installer NFS Common
Avant d'installer l'application NFS Common, nous devons mettre à jour l'index de référentiel de notre système avec celui d'Internet via la commande apt suivante en tant que sudo :
$ sudo apt-get update
La commande ci-dessus nous permet d'installer la dernière version disponible d'un logiciel via les référentiels Ubuntu.
Maintenant, exécutez la commande suivante pour installer le client NFS Common sur votre système :
$ sudo apt-get install nfs-common
Le système vous invitera avec une option O/n pour confirmer si vous souhaitez continuer l'installation. Veuillez saisir Y, puis appuyez sur Entrée pour continuer, après quoi le logiciel sera installé avec succès sur votre système.
Étape 2 :Créer un point de montage pour le dossier partagé de l'hôte NFS
Le système de votre client a besoin d'un répertoire où tout le contenu partagé par le serveur hôte dans le dossier d'exportation est accessible. Vous pouvez créer ce dossier n'importe où sur votre système. Nous créons un dossier de montage dans le répertoire mnt de la machine de notre client :
$ sudo mkdir -p /mnt/sharedfolder_client
Étape 3 :Montez le répertoire partagé sur le client
Le dossier que vous avez créé à l'étape ci-dessus est comme n'importe quel autre dossier de votre système, sauf si vous montez le répertoire partagé de votre hôte dans ce dossier nouvellement créé.
Utilisez la commande suivante pour monter le dossier partagé de l'hôte vers un dossier de montage sur le client :
$ sudo mount serverIP:/exportFolder_server /mnt/mountfolder_client
Dans notre exemple, nous exécutons la commande suivante pour exporter notre "sharedfolder" du serveur vers le dossier de montage "sharedfolder_client" sur la machine client :
$ sudo mount 192.168.100.5:/mnt/sharedfolder /mnt/sharedfolder_client
Étape 4 :Tester la connexion
Veuillez créer ou enregistrer un fichier dans le dossier d'exportation du serveur hôte NFS. Maintenant, ouvrez le dossier de montage sur la machine cliente ; vous devriez pouvoir voir le même fichier partagé et accessible dans ce dossier.
Conclusion
La configuration d'un environnement client-serveur NFS sur les systèmes Ubuntu est une tâche facile. Grâce à cet article, vous avez appris à installer les packages NFS requis à la fois sur le serveur et sur les clients. Vous avez également appris à configurer le serveur NFS et les machines clientes afin que les dossiers puissent être partagés puis accessibles en douceur sans aucun pare-feu ou problème lié aux autorisations. Désormais, vous pouvez facilement partager du contenu d'un système Ubuntu à l'autre à l'aide du protocole NFS.