GNU/Linux >> Tutoriels Linux >  >> Rocky Linux

Comment configurer un montage NFS sur Rocky Linux 8

Network File System ou NFS est un protocole de système de fichiers distribué qui permet aux hôtes distants de monter des systèmes de fichiers sur un réseau et d'effectuer des opérations sur les fichiers comme s'ils étaient montés localement. Ceci est particulièrement utile lorsque vous souhaitez partager les ressources d'un serveur sur plusieurs clients ou permettre à plusieurs clients d'écrire sur un seul espace de stockage.

Dans ce didacticiel, vous apprendrez à installer et à configurer le serveur NFS et les clients NFS basés sur Rocky Linux 8. Pour cela, nous allons configurer un hôte ou un serveur pour partager des fichiers et un client pour accéder aux fichiers hôtes à l'aide d'un montage NFS. .

Prérequis

  • Deux serveurs Rocky Linux 8. Chacun d'entre eux doit avoir un utilisateur non root avec des privilèges sudo.
  • L'hôte et le client doivent avoir une adresse IP statique. Vous pouvez même configurer les deux sur un réseau privé. Pour notre tutoriel, nous utiliserons host_ip pour indiquer l'adresse IP de l'hôte et client_ip pour faire référence à l'adresse IP du Client.

Étape 1 - Installer NFS sur l'hôte et le client

Hébergeur

Pour installer les packages NFS, vous devez installer le nfs-utils emballer. Il fournit un démon pour le serveur NFS et les outils associés.

Installez le paquet.

$ sudo dnf install nfs-utils

Activer et démarrer le nfs-server un service. Services restants nécessaires pour le montage et le partage NFS tels que nfsd , nfs-idmapd , rpcbind , rpc.mountd , lockd , rpc.statd , rpc.quotad et rpc.idmapd démarrer automatiquement avec lui.

$ sudo systemctl enable nfs-server --now

Vérifiez la version de l'installation NFS.

$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

Les versions 3 et 4 de NFS sont activées par défaut et la version 2 est désactivée. NFSv2 est assez ancien et obsolète, et vous pouvez donc voir le -ve signe devant.

NFS stocke ses configurations dans /etc/nfsmount.conf et /etc/nfs.conf des dossiers. Le /etc/nfsmount.conf est de configurer les montages NFS tandis que /etc/nfs.conf consiste à configurer le démon NFS et les outils associés. Les paramètres par défaut sont suffisants pour notre tutoriel, et aucune modification n'est nécessaire.

Client

Sur le client, installez le nfs-utils et nfs4-acl-tools colis.

$ sudo dnf install nfs-utils nfs4-acl-tools

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

Nous utiliserons deux exemples avec des paramètres de configuration différents - un avec un montage à usage général et un en partageant le répertoire personnel de l'hôte.

Les répertoires montés NFS ne font pas partie du client. Par conséquent, NFS ne peut pas effectuer de tâches nécessitant des privilèges de superutilisateur. Cela signifie que le client ne peut pas changer de propriétaire, écrire dessus en tant qu'utilisateur root ou effectuer des tâches de haut niveau. Cependant, il existe des cas où un utilisateur de confiance sur le client doit effectuer de telles tâches sans avoir besoin d'un accès superutilisateur sur l'hôte. Le serveur NFS peut être configuré pour permettre cela, mais cela présente un risque lorsqu'un client peut accéder à l'hôte.

Travailler avec un support à usage général

Pour notre premier cas, nous allons créer un montage simple qui utilise le comportement NFS par défaut, ce qui signifie que le client ne peut effectuer aucune tâche nécessitant des privilèges de superutilisateur.

Créez un répertoire de partage.

host:$ sudo mkdir /var/nfs/share -p

L'utilisateur root de l'hôte sera propriétaire de ce répertoire puisque nous avons utilisé sudo pour le créer.

host:$ ls -l /var/nfs
total 0
drwxr-xr-x. 2 root root 6 Dec 13 07:30 share

NFS traduira toutes les opérations root côté client en nobody:nobody identifiants pour des raisons de sécurité. Par conséquent, nous devons les faire correspondre du côté hôte.

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

Travailler avec le répertoire personnel

Pour notre deuxième cas, nous rendrons le répertoire personnel de l'hôte disponible pour le client. Nous n'avons pas besoin de le créer puisqu'il existe déjà. Nous n'avons pas besoin de modifier les autorisations car cela affecterait les utilisateurs sur la machine hôte.

Étape 3 - Configuration des exportations NFS sur l'hôte

Ouvrez le fichier /etc/exports sur la machine hôte pour modification.

host:$ sudo nano /etc/exports

Collez le code suivant dans le fichier.

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

Chaque répertoire et sa configuration doivent figurer sur une ligne distincte. Remplacez le client_ip value avec l'adresse IP réelle de la machine cliente.

Passons en revue toutes les options d'exportation NFS.

  • rw - donne à la machine cliente un accès en lecture et en écriture sur le volume NFS.
  • synchroniser - cette option oblige NFS à écrire les modifications sur le disque avant de répondre. Cette option est considérée comme plus fiable. Cependant, cela réduit également la vitesse des opérations sur les fichiers.
  • no_subtree_check - cette option empêche la vérification de la sous-arborescence, un processus dans lequel l'hôte doit vérifier si le fichier est disponible ainsi que les autorisations pour chaque demande. Cela peut également entraîner des problèmes lorsqu'un fichier est renommé sur l'hôte alors qu'il est encore ouvert sur le client. Sa désactivation améliore la fiabilité de NFS.
  • no_root_squash - Par défaut, NFS traduit les requêtes d'un utilisateur root sur le client en un utilisateur non privilégié sur l'hôte. Cette option désactive ce comportement et doit être utilisée avec précaution pour permettre au client d'accéder à l'hôte.

Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Pour exporter les partages, exécutez la commande suivante.

host:$ sudo exportfs -arv
exporting client_ip:/home
exporting client_ip:/var/nfs/share
  • -a - cette option entraîne l'exportation de tous les répertoires.
  • -r - cette option provoque l'exportation de tous les répertoires en construisant une nouvelle liste dans le /var/lib/nfs/etab annuaire. Cette option est utilisée pour actualiser la liste d'exportation avec toutes les modifications apportées au /etc/exports .
  • -v - active la sortie détaillée.

Pour répertorier tous les répertoires exportés, exécutez la commande suivante. Il affichera toutes les options, y compris celles par défaut qui n'ont pas été spécifiées dans le /etc/exports fichier.

host:$ sudo exportfs -s
/var/nfs/share  client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/home  client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

Étape 4 - Configuration du pare-feu sur l'hôte

Rocky Linux utilise Firewalld Firewall. Vérifiez l'état du pare-feu.

host:$ sudo firewall-cmd --state
running

Cela indique qu'il est opérationnel avec succès.

Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous utiliserons. Répertorier tous les services et ports actifs sur le pare-feu.

host:$ sudo firewall-cmd --permanent --list-services

Il devrait afficher la sortie suivante.

cockpit dhcpv6-client ssh

Ensuite, nous devons autoriser le trafic vers les services NFS nécessaires - mountd , nfs et rpc-bind . Nous devons également autoriser l'accès à partir de l'adresse IP du client. Si vos clients et vos serveurs hôtes se trouvent dans le même sous-réseau, vous n'avez pas besoin d'ajouter l'adresse IP du client.

host:$ sudo firewall-cmd --permanent --add-service=nfs
host:$ sudo firewall-cmd --permanent --add-service=rpc-bind
host:$ sudo firewall-cmd --permanent --add-service=mountd
host:$ sudo firewall-cmd --permanent --add-source=client_IP 

Rechargez le pare-feu pour appliquer les modifications.

host:$ sudo firewall-cmd --reload

Étape 5 - Création de points de montage et de répertoires sur le client

Maintenant que le serveur/hôte NFS est configuré, l'étape suivante consiste à configurer les points de montage et les répertoires sur le client. Vous pouvez exécuter le showmount sur le client pour vérifier la liste des systèmes de fichiers exportés sur l'hôte.

client:$ showmount -e host_ip
Export list for host_ip:
/home          host_ip
/var/nfs/share host_ip

Créez toujours un nouveau répertoire en tant que points de montage sur le client ou utilisez un répertoire vide existant. S'il y a un fichier dans un répertoire que vous montez, il sera masqué.

Créez les répertoires de montage.

client:$ sudo mkdir -p /nfs/share
client:$ sudo mkdir -p /nfs/home

Montez les partages en utilisant l'adresse IP de l'hôte.

client:$ sudo mount host_ip:/var/nfs/share /nfs/share
client:$ sudo mount host_ip:/home /nfs/home

Vérifiez que le montage a réussi.

client:$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   370M     0  370M   0% /dev
tmpfs                      405M     0  405M   0% /dev/shm
tmpfs                      405M   16M  389M   4% /run
tmpfs                      405M     0  405M   0% /sys/fs/cgroup
/dev/vda1                   25G  2.4G   23G  10% /
tmpfs                       81M     0   81M   0% /run/user/1000
host_ip:/var/nfs/share      25G  2.4G   23G  10% /nfs/share
host_ip:/home               25G  2.4G   23G  10% /nfs/home

Les deux partages sont montés à partir du même système de fichiers. Par conséquent, ils affichent la même utilisation du disque.

Vous pouvez également utiliser le mount commande à vérifier.

client:$ mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
host_ip:/var/nfs/share on /nfs/share type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)
host_ip:/home on /nfs/home type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)

Étape 6 - Tester l'accès NFS

Tester le partage à usage général

Écrire un fichier de test dans /var/nfs/share partager.

client:$ sudo touch /nfs/share/test.txt

Vérifiez sa propriété.

client:$ ls -l /nfs/share/test.txt
-rw-r--r--. 1 nobody nobody 0 Dec 13 08:08 /nfs/share/test.txt

Puisque nous avons monté ce volume en utilisant les paramètres NFS par défaut et créé le fichier sur le client en utilisant sudo , la propriété du fichier par défaut est nobody:nobody . Les superutilisateurs du client ne peuvent effectuer aucune tâche administrative sur le partage.

Tester le partage du répertoire personnel

Écrire un fichier de test dans /nfs/home partager.

client:$ sudo touch /nfs/home/home.txt

Vérifiez sa propriété.

client:$ ls -l /nfs/home/home.txt
-rw-r--r--. 1 root root 0 Dec 13 08:09 /nfs/home/home.txt

Depuis que nous avons utilisé le no_root_squash , elle permettait à l'utilisateur root du client d'agir en tant que root sur le partage lui-même.

Étape 7 - Rendez les points de montage permanents

Les partages NFS par défaut sont temporaires et doivent être montés au démarrage. Nous pouvons les rendre permanents en éditant le /etc/fstab fichier sur le client.

Ouvrez le fichier /etc/fstab pour l'édition.

client:$ sudo nano /etc/fstab

Collez les lignes suivantes au bas du fichier.

. . .
host_ip:/var/nfs/share      /nfs/share     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

Vous pouvez en savoir plus sur les options répertoriées ci-dessus en exécutant les commandes suivantes.

client:$ man nfs
client:$ man mount

Si vous voulez les lire en ligne, vous pouvez rechercher sur Google la phrase man nfs et man mount pour en savoir plus sur ces options.

Étape 8 - Démonter le partage NFS

Si vous ne voulez plus les montages à distance sur votre système, vous pouvez les démonter en utilisant le umount commande. Notez que la commande s'appelle umount et non démonter ce qui est une erreur courante.

Sortez des montures partagées et démontez-les.

client:$ cd ~
client:$ sudo umount /nfs/share
client:$ sudo umount /nfs/home

Si vous n'avez plus besoin des partages montés à nouveau au redémarrage, assurez-vous de commenter les entrées correspondantes dans le /etc/fstab fichier en mettant un # signer devant eux.

Conclusion

Dans ce didacticiel, nous avons appris à créer un serveur hôte NFS et à monter des répertoires à l'aide de celui-ci, que nous avons partagé avec un client NFS. Si vous l'implémentez dans un réseau privé, il ne devrait y avoir aucun problème, mais si vous l'utilisez en production, vous devez vous rappeler que le protocole n'est pas crypté et vous devez implémenter une authentification pour protéger vos données.

Si vous avez des questions, postez-les dans les commentaires ci-dessous.


Rocky Linux
  1. Comment monter un partage NFS sous Linux

  2. Comment installer Python 3.9 sur Rocky Linux 8

  3. Comment configurer le serveur VPN Pritunl sur Rocky Linux 8

  4. Comment configurer le serveur et le client NFS sur Rocky/Alma Linux 8

  5. Comment installer Redis sur Rocky Linux 8

Comment installer Anydesk sur Rocky Linux 8

Comment installer TeamViewer sur Rocky Linux 8

Comment définir la date et l'heure sur Rocky Linux 8 Desktop et Server

Comment installer Anaconda sur Rocky Linux 8

Comment installer Snap sur Rocky Linux 8

Comment installer PHP 7.4 sur Rocky Linux 8