GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le client et le serveur NFS sur Ubuntu 20.04

Network File System ou court NFS est un protocole de système de fichiers distribué qui vous permet de monter des répertoires distants sur votre serveur. NFS vous permet d'accéder aux fichiers et dossiers à partir d'un serveur ou d'un client différent. Vous pouvez écrire sur ce serveur à partir de plusieurs clients ou systèmes distants sur un réseau. Cette technologie vous offre la possibilité de partager une ressource sur plusieurs systèmes.

Dans ce didacticiel, nous apprendrons comment configurer un serveur NFS et comment monter des partages NFS sur un client utilisant Ubuntu 20.04.

Prérequis

  • Deux systèmes Ubuntu 20.04. Chaque serveur doit avoir un utilisateur non root avec des privilèges sudo et un pare-feu UFW défini.
  • Vous pouvez configurer à la fois le serveur et le client sur un réseau privé. Pour notre tutoriel, j'utiliserai host_ip pour désigner le host_ip adresse et client_ip pour faire référence à l'adresse IP du Client.

Étape 1 - Installer NFS sur le serveur et le client

Hébergeur

Nous devons installer le nfs-kernel-server package sur l'hébergeur pour partager vos répertoires.

$ sudo apt update
$ sudo apt install nfs-kernel-server

Client

Pour le client, nous installerons le nfs-common package qui permet au client de monter le répertoire hôte mais ne peut pas héberger le répertoire lui-même.

$ sudo apt update
$ sudo apt install nfs-common

Étape 2 - Créer des répertoires de partage sur l'hôte

Il existe deux façons d'accorder l'accès aux répertoires sur l'hôte au client. Par défaut, le serveur NFS n'autorise pas les opérations nécessitant des privilèges sudo. Cela signifie que les super-utilisateurs du client ne peuvent pas écrire de fichiers en tant que root, réaffecter la propriété ou effectuer des tâches nécessitant des privilèges élevés.

Mais parfois, un client doit effectuer certaines opérations sur l'hôte qui nécessitent des privilèges élevés mais n'ont pas besoin d'un accès superutilisateur pour cela.

Première méthode

C'est la manière par défaut de partager des répertoires. Cela rend difficile pour un utilisateur root sur le client d'interagir avec l'hôte en utilisant des privilèges élevés.

Commencez par créer le répertoire de partage.

$ sudo mkdir /var/nfs/general -p

Si vous effectuez des opérations root sur le client, NFS les traduira en nobody:nogroup informations d'identification sur la machine hôte. Par conséquent, nous devons donner la propriété appropriée au répertoire partagé.

$ sudo chown nobody:nogroup /var/nfs/general

Deuxième méthode

Ici, nous partagerons le répertoire personnel de l'hôte avec le client. Cela permettra aux utilisateurs root du client d'accéder correctement à l'hôte.

Comme le répertoire personnel existe déjà sur le serveur hôte, nous n'avons pas besoin de le créer. Il n'est pas non plus nécessaire de modifier les autorisations car cela créera plusieurs problèmes pour les utilisateurs sur la machine hôte.

Étape 3 - Configurer NFS sur l'hôte

Il est temps de configurer NFS pour configurer le partage.

Ouvrez le fichier /etc/exports sur le serveur hôte.

$ sudo nano /etc/exports

Ajoutez les lignes suivantes en bas, une chacune, pour chaque répertoire que vous partagez.

/var/nfs/general    client_ip(rw,sync,no_subtree_check)
/home               client_ip(rw,sync,no_root_squash,no_subtree_check)

Passons en revue toutes ces options et ce qu'elles signifient.

  • rw  :Cela donne au client un accès en lecture et en écriture sur les répertoires de l'hôte.
  • synchroniser :Cette option force NFS à écrire les modifications avant de répondre. Cela signifie que NFS finira d'abord d'écrire dans le répertoire hôte, puis répondra au client. Cela garantit que l'état réel du serveur hôte est reflété, mais peut ralentir la vitesse des opérations sur les fichiers.
  • no_subtree_check :Cette option désactive la vérification de la sous-arborescence. La vérification de la sous-arborescence est une opération où à chaque requête NFS, le serveur doit vérifier que le fichier accédé est présent et qu'il se trouve dans l'arborescence exportée. Cette opération provoque des problèmes lorsque les fichiers auxquels accède un client sont renommés. Il est donc préférable de le laisser désactivé dans la plupart des cas. Cela a des implications mineures sur la sécurité, mais peut améliorer la fiabilité.
  • no_root_squash :Par défaut, NFS traduit toutes les opérations effectuées en tant que root par le client vers un utilisateur non privilégié sur le serveur. Ceci est fait dans le but d'améliorer la sécurité. Cette option désactive ce comportement pour certains partages.

Lorsque vous avez terminé, fermez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Redémarrez le serveur NFS pour appliquer les modifications.

$ sudo systemctl restart nfs-kernel-server

Étape 4 - Configurer le pare-feu de l'hôte

La meilleure pratique avec NFS consiste à l'activer spécifiquement pour l'adresse IP de chaque client séparément au lieu d'autoriser l'accès depuis n'importe où.

NFS utilise le port 2049. Activez l'accès pour NFS avec la commande suivante.

$ sudo ufw allow from client_ip to any port nfs

Vérifiez le statut pour vérifier.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                 
2049                       ALLOW       167.100.34.78        
OpenSSH (v6)               ALLOW       Anywhere (v6)

Étape 5 - Créer des points de montage sur le client

Maintenant que notre hôte est configuré, il est temps de configurer le client.

Créez deux répertoires pour les montages sur le client.

$ sudo mkdir -p /nfs/general
$ sudo mkdir -p /nfs/home

Maintenant que nous avons tout défini du côté de l'hôte, nous pouvons monter les partages en utilisant l'adresse IP de l'hôte.

$ sudo mount host_ip:/var/nfs/general /nfs/general
$ sudo mount host_ip:/home /nfs/home

Vous pouvez vérifier s'ils ont été montés avec succès avec la commande suivante.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000
123.175.112.87:/var/nfs/general  25G   18G  6.3G  74% /nfs/general
123.175.112.87:/home             25G   18G  6.3G  74% /nfs/home

Vous pouvez voir les deux partages montés en bas de la liste. Étant donné que les deux ont été montés à partir du même système de fichiers, ils affichent l'utilisation complète du disque et non l'utilisation réelle des répertoires montés.

Pour voir combien d'espace réel est utilisé sous chaque support, utilisez la commande suivante.

$ du -sh /nfs/general
36K     /nfs/general

Étape 6 - Tester le partage NFS

Créez un fichier de test dans /var/nfs/general partager.

$ sudo touch /nfs/general/general.test

Vérifiez sa propriété.

$ ls -l /nfs/general/general.test
-rw-r--r-- 1 nobody nogroup 0 Aug  1 13:31 /nfs/general/general.test

Cela a été monté à l'aide des options NFS par défaut et puisque nous avons créé le fichier en utilisant root à partir de la machine cliente, la propriété de l'hôte a été transférée à nobody:nogroup . Ici, l'utilisateur client ne peut pas effectuer de tâches administratives sur la machine de l'hôte.

Créez un fichier de test sur le partage /nfs/home`.

$ sudo touch /nfs/home/home.test

Vérifiez sa propriété.

$ ls -l /nfs/home/home.test
-rw-r--r-- 1 root root 0 Aug  1 13:32 /nfs/home/home.test

Ici, puisque nous avons créé le fichier de test en utilisant la racine de la machine cliente, la propriété a été conservée sur la machine hôte. C'est parce que nous avons utilisé le no_root_squash drapeau qui autorise l'utilisateur root sur la machine cliente en tant qu'utilisateur root sur la machine hôte également.

Étape 7 - Monter les partages NFS pendant le démarrage

Ces montages ne seront pas conservés une fois que vous aurez démarré la machine cliente. Pour les rendre permanents, nous devons modifier le /etc/fstab fichier.

Ouvrez le /etc/fstab fichier à éditer.

$ sudo nano /etc/fstab

Collez les lignes suivantes au bas du fichier. Chaque ligne correspond à chaque répertoire que nous voulons monter au démarrage.

. . .
host_ip:/var/nfs/general    /nfs/general   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
host_ip:/home               /nfs/home      nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Pour en savoir plus sur ces options, consultez la page de manuel de nfs .

$ man nfs

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Redémarrez le serveur pour vérifier les montages.

$ sudo reboot

Connectez-vous au client-serveur et vérifiez que les montages sont présents.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000
123.175.112.87:/var/nfs/general  25G   18G  6.3G  74% /nfs/general
123.175.112.87:/home             25G   18G  6.3G  74% /nfs/home

Étape 8 - Démonter les partages NFS

Une fois que vous n'avez plus besoin de montages NFS, vous pouvez les démonter à l'aide de la commande suivante.

$ sudo umount /nfs/home
$ sudo umount /nfs/general

Une erreur courante consiste à utiliser unmount au lieu de umount qui est la commande réelle.

Vérifiez qu'ils ont été correctement démontés.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000

Vous devrez également supprimer leurs entrées du /etc/fstab fichier afin qu'ils ne soient pas remontés au démarrage. Vous pouvez aussi simplement décommenter leurs entrées en plaçant un # caractère devant au cas où vous auriez besoin de réutiliser à nouveau les montures.

Conclusion

Ceci conclut notre didacticiel où nous avons appris à créer des montages NFS sur une machine hôte et à y accéder à partir de différentes machines clientes. Si vous avez des questions, posez-les dans les commentaires ci-dessous.


Ubuntu
  1. Comment installer Chef Server, Workstation et Chef Client sur Ubuntu 18.04

  2. Comment installer le serveur et le client NTP sur Ubuntu 18.04 LTS

  3. Installer UrBackup Server et Client sur Ubuntu 20.04 - Comment faire ?

  4. Comment configurer le serveur et le client NFS sur Ubuntu 20.04

  5. Installer le serveur vnc et le client sur Ubuntu

Comment installer le serveur et le client UrBackup sur Ubuntu 20.04

Comment installer le serveur et le client Telnet sur Ubuntu

Installer le serveur et le client NFS sur Ubuntu

Comment installer le serveur NTP et le ou les clients sur Ubuntu 20.04 LTS

Comment installer et configurer NFS sur Ubuntu 22.04/20.04

Comment installer le serveur NFS sur Ubuntu 20.04 LTS