Acronyme de Network File Share, NFS est un protocole client/serveur multiplateforme qui permet aux machines clientes d'accéder aux fichiers partagés par le serveur NFS sur un réseau. Les systèmes clients peuvent monter localement les systèmes de fichiers à partir du serveur NFS et accéder aux fichiers et répertoires comme s'ils étaient montés localement. Dans ce guide, nous vous guiderons tout au long de l'installation et de la configuration du serveur NFS sur CentOS 8 / RHEL 8 .
Remarque : Dans CentOS 8 ou RHEL 8 NFSv3 &v4 les deux sont pris en charge. NFSv3 permet une écriture asynchrone sécurisée et prend en charge les tailles et décalages de fichiers 64 bits. Alors que NFSv4 fonctionne via le pare-feu du système d'exploitation et prend en charge ACL (Access Control List) et ne nécessite pas de service rpcbind
Configuration du serveur/client NFS
Avant de commencer, nous allons utiliser la configuration ci-dessous pour simuler le fonctionnement du protocole NFS dans une configuration client/serveur.
- IP de la machine serveur :adresse : 192.168.2.102 CentOS 8
- IP de l'ordinateur client :adresse : 192.168.2.103 CentOS 8
Avec notre configuration à portée de main, commençons l'installation de NFS sur la machine serveur.
Étape 1) Installer et configurer NFS sur le serveur CentOS 8 / RHEL 8
Pour commencer, nous allons installer le package de serveur NFS appelé nfs-utils qui agit comme le démon NFS. Pour installer le package nfs-utils, lancez le terminal et exécutez la commande :
$ sudo dnf install nfs-utils -y
Dans l'exemple ci-dessous, nfs-utils est déjà installé.
Une fois l'installation terminée, démarrez et activez le service nfs-server afin qu'il soit automatiquement lors des redémarrages. Exécutez les commandes suivantes,
$ sudo systemctl start nfs-server.service $ sudo systemctl enable nfs-server.service
Pour confirmer que le service NFS est en cours d'exécution, exécutez :
$ sudo systemctl status nfs-server.service
Vous pouvez vérifier la version du protocole nfs que vous utilisez en exécutant la commande :
$ rpcinfo -p | grep nfs
La version est indiquée par la deuxième colonne dans la sortie présentée ci-dessous.
Pour une configuration supplémentaire du serveur NFS, vous pouvez trouver les fichiers de configuration sur /etc/nfs.conf qui est le fichier de configuration du démon NFS et le fichier /etc/nfsmount.conf qui est le fichier de configuration pour le montage NFS.
Étape 2) Créer et exporter un partage NFS
Dans cette étape, nous allons créer un système de fichiers qui sera partagé du serveur aux systèmes clients. Dans ce guide, nous allons créer un répertoire sur /mnt/nfs_share/docs comme indiqué ci-dessous
$ sudo mkdir -p /mnt/nfs_shares/docs
Pour éviter les restrictions de fichiers sur le répertoire de partage NFS, il est conseillé de configurer la propriété du répertoire comme indiqué. Cela permet la création de fichiers à partir des systèmes clients sans rencontrer de problèmes d'autorisation.
$ sudo chown -R nobody: /mnt/nfs_shares/docs
En outre, vous pouvez décider d'ajuster les autorisations du répertoire en fonction de vos préférences. Par exemple, dans ce guide, nous attribuerons toutes les autorisations (lecture, écriture et exécution) au dossier de partage NFS
$ sudo chmod -R 777 /mnt/nfs_shares/docs
Pour que les modifications prennent effet, redémarrez le démon NFS :
$ sudo systemctl restart nfs-utils.service
Pour exporter le partage NFS afin que les systèmes clients puissent y accéder, nous devons modifier le fichier /etc/exports dossier. Vous pouvez autoriser plusieurs clients à accéder au partage en spécifiant un sous-réseau comme indiqué
/mnt/nfs_shares/docs 192.168.2.0/24(rw,sync,no_all_squash,root_squash
De plus, vous pouvez spécifier chaque client sur une ligne distincte :
/mnt/nfs_shares/docs client-IP(rw,sync,no_all_squash,root_squash)
/mnt/nfs_shares/docs client-IP(rw,sync,no_all_squash,root_squash)
En utilisant notre configuration, nous accorderons l'accès à notre machine cliente avec une adresse IP 192.168.2.103. Ajoutez la ligne suivante dans le fichier ‘/etc/exports ' :
$ sudo vi /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash)
Enregistrez et quittez le fichier. Utilisez la commande cat pour confirmer l'entrée comme indiqué
[[email protected]] cat /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash) [[email protected]]
Regardons la signification des paramètres utilisés :
- rw – Cela signifie lecture/écriture. Il accorde des autorisations de lecture et d'écriture au partage NFS.
- synchroniser – Le paramètre nécessite d'abord l'écriture des modifications sur le disque avant de pouvoir effectuer toute autre opération.
- no_all_squash – Cela mappera tous les UID et GID des requêtes client vers des UIDS et GID identiques résidant sur le serveur NFS.
- root_squash – L'attribut mappe les requêtes de l'utilisateur root côté client vers un UID/GID anonyme.
Pour exporter le dossier créé ci-dessus, utilisez la commande exportfs comme indiqué :
$ sudo exportfs -arv
Le -a l'option implique que tous les répertoires seront exportés, -r signifie réexporter tous les répertoires et enfin -v flag affiche une sortie détaillée.
Juste pour être sûr de la liste d'exportation, vous pouvez afficher la liste d'exportation en utilisant la commande :
$ sudo exportfs -s
Parfait! Notre liste d'exportation existe. Jusqu'ici tout va bien. La seule configuration restante sur le serveur NFS autorise les services NFS sur le pare-feu.
Étape 3) Configuration des règles de pare-feu pour le serveur NFS
La dernière étape de la configuration du serveur consiste à autoriser les services NFS via le pare-feu sur la machine serveur CentOS 8. Ces services sont nfs, rpc-bind , et mountd . Alors, exécutez les commandes ci-dessous.
$ sudo firewall-cmd --permanent --add-service=nfs $ sudo firewall-cmd --permanent --add-service=rpc-bind $ sudo firewall-cmd --permanent --add-service=mountd
Rechargez ensuite le pare-feu pour que les modifications prennent effet
$ sudo firewall-cmd --reload
Passons maintenant au système client et configurons-le pour accéder aux partages NFS.
Configuration du système client NFS
Pour configurer le système client pour accéder aux partages de fichiers NFS, suivez la procédure ci-dessous
Étape 1) Installez les packages NFS requis
Sur le système client CentOS 8, installez les packages requis pour accéder au partage NFS résidant sur le serveur NFS
$ sudo dnf install nfs-utils nfs4-acl-tools -y
Pour le système Debian ou Ubuntu :
$ sudo apt install nfs-common nfs4-acl-tools -y
Pour afficher les partages NFS montés sur le serveur, utilisez le showmount commande :
$ showmount -e 192.168.2.102
Étape 2) Monter le partage NFS distant situé sur le serveur
Ensuite, nous devons monter le répertoire de partage NFS distant sur le système client local. Mais d'abord, créons un répertoire pour monter le partage NFS.
$ sudo mkdir p /mnt/client_share
Pour monter le partage NFS, exécutez la commande ci-dessous. Rappelez-vous que 192.168.2.102 est l'adresse IP du serveur NFS.
$ sudo mount -t nfs 192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share
Vous pouvez vérifier que le partage NFS distant a été monté en exécutant :
$ sudo mount | grep -i nfs
Pour rendre le partage de montage persistant lors d'un redémarrage, vous devez modifier le fichier /etc/fstab fichier et ajoutez l'entrée ci-dessous.
192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share nfs defaults 0 0
Enregistrez et fermez le fichier.
Tester la configuration du serveur et du client NFS
À ce stade, nous en avons terminé avec toutes les configurations. Cependant, nous devons tester notre configuration et nous assurer que tout fonctionne. Donc, d'abord, nous allons créer un fichier de test dans le répertoire de partage du serveur NFS et vérifier s'il est présent dans le répertoire monté NFS du client.
$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt
Maintenant, dirigez-vous vers le système client et vérifiez si le fichier existe du côté client.
$ ls -l /mnt/client_share/
Génial! À partir de la sortie, nous pouvons clairement voir que le fichier existe. Faisons maintenant le contraire. Nous allons créer un fichier sur le système client NFS et vérifier s'il est accessible depuis le serveur NFS.
Sur le client, créez le fichier comme indiqué :
$ sudo touch /mnt/client_share/client_nfs_file.txt
Maintenant, retournez sur le serveur et vérifiez si le fichier est présent dans le répertoire de partage NFS
$ ls -l /mnt/nfs_shares/docs
Génial! Nous pouvons voir et accéder au fichier.
Comme vous pouvez le constater, vous pouvez facilement créer des fichiers sur le serveur et le client NFS et les partager de manière transparente entre les deux systèmes ainsi qu'avec d'autres systèmes clients qui ont été configurés pour accéder aux partages. Et cela nous amène à la fin de notre tutoriel d'aujourd'hui. Dans ce guide, nous vous avons montré comment installer et configurer le serveur NFS et la configuration du système client sur CentOS 8 et RHEL 8.