GNU/Linux >> Tutoriels Linux >  >> Linux

Apprentissage de NFS via la configuration du serveur et du client

J'ai utilisé NFS dans une capacité limitée pendant des années. Je connaissais le concept et j'avais accédé aux partages NFS, cependant, je n'en avais jamais configuré un. Les chances sont, je ne suis pas seul dans ce cas. Je pensais apprendre à tout mettre en place et même vous emmener tous avec moi. Commençons par le guide du débutant pour apprendre NFS.

Qu'est-ce que NFS ?

Network File System (NFS) est un système de fichiers distribué qui permet à divers systèmes distants d'accéder à un partage de fichiers. Nous savons tous que les fichiers doivent être stockés sur un serveur central pour des raisons de sécurité et de facilité de sauvegarde. NFS nous fournit un service de partage de fichiers facile à gérer et qui contrôle l'accès des clients aux ressources.

De quoi a-t-on besoin ?

Avant de pouvoir commencer, nous devons définir quelques conditions préalables. Tout d'abord, nous avons besoin de deux systèmes différents capables de se parler via le réseau. Étant donné que NFS utilise une relation serveur à client(s), nous utiliserons ce qui suit :

  • Serveur NFS - serveur.exemple.com - 172.25.1.5
  • Client NFS - client.exemple.com - 172.25.1.4

Vous pouvez utiliser le ping commande pour confirmer les communications entre les deux systèmes. J'ai ces deux machines sur un réseau NAT et j'ai testé les connexions dans les deux sens.

Après cela, assurons-nous que nos deux systèmes sont à jour. Comme ces systèmes sont RHEL 8.2 et Fedora 32, nous utiliserons la commande suivante à la fois sur le serveur et sur le client :

[root@rhel tcarrigan]# sudo yum -y update

Et enfin, nous devons installer le nfs-utils package à nos deux systèmes.

[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

*Remarque :le package est déjà installé dans l'exemple ci-dessus.

Passons maintenant à la configuration du serveur.

Configurer le serveur

Étape 1 :Démarrez et activez les nfs-utils nouvellement installés services.

[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service

Étape 2 :Confirmez le nfs-server le service est opérationnel.

[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
   Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
 Main PID: 61026 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 50657)
   Memory: 0B
   CGroup: /system.slice/nfs-server.service
    
 Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
 Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)

Étape 3 :Vérifiez la version de NFS (vous pouvez voir ces informations dans la colonne 2).

[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl

*Notez que vous pouvez trouver les fichiers de configuration du démon NFS dans /etc/nfs.conf . Vous pouvez également trouver le fichier de configuration pour le montage sur /etc/nfsmount.conf .

Le service NFS est maintenant opérationnel sur votre serveur. Ensuite, créons un partage NFS.

Créer et exporter le partage

Tout d'abord, nous devons désigner un dossier pour le partage. Puisqu'il n'en existe pas déjà sur mon système, je vais créer un répertoire à partager.

[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs

Maintenant, j'ai appris de quelques essais et erreurs, puis de ressources bien écrites, que vous pouvez éviter beaucoup de maux de tête en modifiant les autorisations et la propriété pour qu'elles correspondent à ce qui suit :

[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/

*Remarque :vous ne pourrez peut-être pas effectuer cette opération dans un environnement de production pour des raisons de sécurité. Assurez-vous de savoir ce que vous faites avant de supprimer toutes les restrictions d'un fichier ou d'un répertoire.

Ensuite, nous devons créer un /etc/exports fichier.

[root@server docs]# vi /etc/exports

Faites l'entrée suivante dans le nouveau fichier :

/test/nfs_share   172.25.1.0/24(rw,sync,no_all_squash,root_squash)

Pour mieux comprendre les paramètres utilisés ici, décomposons-les un par un.

  • rw - Nous permet de lire et d'écrire sur le partage NFS.
  • synchronisation :nécessite l'écriture des modifications sur le disque avant la fin de toute autre opération.
  • no_all_squash - Mappe tous les UID et GID de la demande du client vers les UID et GID identiques sur le serveur NFS.
  • root_squash - Mappe les requêtes de l'utilisateur root côté client vers un UID/GID anonyme.

Maintenant que nous avons créé le partage, exportons-le vers le(s) client(s).

[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share

Notez que j'ai cartographié l'ensemble du sous-réseau ici. Vous ne pouvez inclure ici qu'une seule adresse IP ou nom d'hôte si vous préférez.

Modifier le pare-feu

Nous avons installé le serveur, puis créé et exporté le partage. Ensuite, nous configurons un tunnel à travers le pare-feu. Nous allons ajouter des règles pour nfs , rpc-bind , et mountd . N'oubliez pas de recharger la configuration du pare-feu une fois terminé.

Vu ici :

[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success

Le côté serveur étant terminé, nous pouvons maintenant concentrer notre attention sur la machine cliente.

Configurer le client

*Remarque :toutes les étapes ultérieures sont effectuées sur la machine cliente.

Puisque nous avons déjà mis à jour notre système et installé le nfs-utils package, cela devrait être assez simple.

Nous commençons par créer une entrée dans /etc/hosts pour le serveur NFS. Cela devrait ressembler à ceci :

[root@client]# cat /etc/hosts
127.0.0.1  localhost
::1        localhost
172.25.1.5 localhost

Voyons maintenant si quelque chose est partagé depuis le serveur NFS. Si vous avez suivi les sections précédentes, vous devriez voir /test/nfs_share/docs en tant que répertoire partagé.

[root@client ~]# showmount --exports nfs-server
Export list for nfs-server: 
/test/nfs_share/docs 172.25.1.0/24

Ensuite, créez un répertoire sur la machine cliente pour monter le partage distant.

[tcarrigan@client ~]$ sudo  mkdir p /test/client_share

Maintenant que nous avons créé un répertoire de montage, montons le partage.

[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share

Exécutez la commande suivante pour vérifier le partage :

[tcarrigan@client ~]$ sudo mount | grep -i nfs

Enfin, pour vous assurer que le montage est persistant lors des redémarrages, ajoutez la ligne suivante au /etc/fstab fichier :

172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share  nfs defaults 0 0 

Journée facile.

Preuve de concept

Comme point culminant de nos efforts, testons le partage configuré. Créez un fichier sur le serveur dans /test/nfs_share/docs nommé test_doc .

[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc

Voyons si notre test_doc est exporté vers notre ordinateur client via NFS.

Sur la machine client :

[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$

Ici, nous voyons le test_doc existe sur le serveur NFS.

Pour tester dans l'autre sens, je crée un fichier sur le client nommé client-test-doc .

[tcarrigan@client docs]$ vi client-test-doc

Passons au serveur et voyons si nous pouvons voir le fichier nouvellement créé.

Serveur NFS :

[tcarrigan@server docs]$ ls -lrt
   total 8
   -rw-r--r--. 1 root      root      39 Jun 25 16:21 test_doc
   -rw-rw-r--. 1 tcarrigan tcarrigan  5 Jul  6 13:25 client-test-doc

Nous pouvons voir à la fois le fichier d'origine test_doc ainsi que le fichier nouvellement créé client-test-doc .

Félicitations pour la configuration d'une paire serveur/client NFS fonctionnelle.

[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ]


Linux
  1. Configuration d'un serveur et d'un client NFS sur Scientific Linux 6.3

  2. Configuration d'un serveur et d'un client NFS sur CentOS 7.2

  3. Configurer un serveur et un client NFS sur Debian 9 (Stretch)

  4. CentOS / RHEL 7 :Configuration d'un serveur NFS et d'un client NFS

  5. Sécurité NFS de base – NFS, no_root_squash et SUID

Comment installer le serveur et le client NFS sur Ubuntu

Comment configurer le client et le serveur NFS sous Linux

Comment configurer le serveur et le client NFS sur Debian 10

Installer le serveur et le client NFS sur Ubuntu

Client et serveur NIS

Comment configurer le serveur et le client NFS sur CentOS 8