Android

Comment installer et configurer un serveur nfs sur centos 8

Installation et configuration serveur NFS sous Linux CentOS 7 - Darija

Installation et configuration serveur NFS sous Linux CentOS 7 - Darija

Table des matières:

Anonim

Le système de fichiers réseau (NFS) est un protocole de système de fichiers distribué qui vous permet de partager des répertoires distants sur un réseau. Avec NFS, vous pouvez monter des répertoires distants sur votre système et travailler avec les fichiers sur la machine distante comme s'il s'agissait de fichiers locaux.

Le protocole NFS n'est pas chiffré par défaut et, contrairement à Samba, il ne fournit pas d'authentification utilisateur. L'accès au serveur est limité par les adresses IP ou les noms d'hôte des clients.

Dans ce didacticiel, vous allez suivre les étapes nécessaires pour configurer un serveur NFSv4 sur CentOS 8. Nous vous montrerons également comment monter un système de fichiers NFS sur le client.

Conditions préalables

Nous supposons que vous disposez d'un serveur exécutant CentOS 8 sur lequel nous allons configurer le serveur NFS et d'autres machines qui agiront en tant que clients NFS. Le serveur et les clients doivent pouvoir communiquer entre eux sur un réseau privé. Si votre fournisseur d'hébergement n'offre pas d'adresses IP privées, vous pouvez utiliser les adresses IP publiques et configurer le pare-feu du serveur pour autoriser le trafic sur le port 2049 uniquement à partir de sources fiables.

Les machines de cet exemple ont les adresses IP suivantes:

NFS Server IP: 192.168.33.148 NFS Clients IPs: From the 192.168.33.0/24 range

Configurer le serveur NFS

Cette section explique comment installer les packages nécessaires, créer et exporter les répertoires NFS et configurer le pare-feu.

Installation du serveur NFS

Le package «nfs-utils» fournit les utilitaires NFS et les démons pour le serveur NFS. Pour l'installer, exécutez la commande suivante:

sudo dnf install nfs-utils

Une fois l'installation terminée, activez et démarrez le service NFS en tapant:

sudo systemctl enable --now nfs-server

Par défaut, sur CentOS 8, les versions NFS 3 et 4.x sont activées, la version 2 est désactivée. NFSv2 est assez ancien maintenant, et il n'y a aucune raison de l'activer. Pour le vérifier, exécutez la commande cat suivante:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

Les options de configuration du serveur NFS sont définies dans les fichiers /etc/nfsmount.conf et /etc/nfs.conf . Les paramètres par défaut sont suffisants pour notre tutoriel.

Création des systèmes de fichiers

Lors de la configuration d'un serveur NFSv4, il est recommandé d'utiliser un répertoire racine NFS global et de lier le montage des répertoires réels au point de montage de partage. Dans cet exemple, nous utiliserons le directeur /srv/nfs4 comme racine NFS.

Pour mieux expliquer comment les montages NFS peuvent être configurés, nous allons partager deux répertoires ( /var/www et /opt/backups ) avec des paramètres de configuration différents.

Le /var/www/ appartient à l'utilisateur et au groupe apache et /opt/backups appartient à root .

Créez le système de fichiers d'exportation à l'aide de la commande mkdir :

sudo mkdir -p /srv/nfs4/{backups, www}

Montez les répertoires réels:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

Pour rendre les montages de liaison permanents, ajoutez les entrées suivantes au fichier /etc/fstab :

sudo nano /etc/fstab / etc / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

Exportation des systèmes de fichiers

L'étape suivante consiste à définir les systèmes de fichiers qui seront exportés par le serveur NFS, les options de partage et les clients autorisés à accéder à ces systèmes de fichiers. Pour ce faire, ouvrez le fichier /etc/exports :

sudo nano /etc/exports

Exportez les répertoires www et backups et autorisez l'accès uniquement à partir des clients sur le réseau 192.168.33.0/24 :

/ etc / exports

/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)

La première ligne contient fsid=0 qui définit le répertoire racine NFS /srv/nfs . L'accès sur ce volume NFS n'est autorisé qu'aux clients du sous-réseau 192.168.33.0/24 . L'option crossmnt est requise pour partager des répertoires qui sont des sous-répertoires d'un répertoire exporté.

La deuxième ligne montre comment spécifier plusieurs règles d'exportation pour un système de fichiers. Il exporte le /srv/nfs4/backups et n'autorise que l'accès en lecture à l'ensemble de la plage 192.168.33.0/24 , ainsi que l'accès en lecture et en écriture à 192.168.33.3 . L'option de sync indique à NFS d'écrire les modifications sur le disque avant de répondre.

La dernière ligne devrait être explicite. Pour plus d'informations sur toutes les options disponibles, tapez man exports dans votre terminal.

Enregistrez le fichier et exportez les partages:

sudo exportfs -ra

Vous devez exécuter la commande ci-dessus chaque fois que vous modifiez le fichier /etc/exports . S'il y a des erreurs ou des avertissements, ils seront affichés sur le terminal.

Pour afficher les exportations actives actuelles et leur état, utilisez:

sudo exportfs -v

La sortie inclura tous les partages avec leurs options. Comme vous pouvez le voir, il existe également des options que nous n'avons pas définies dans le fichier /etc/exports . Ce sont des options par défaut, et si vous souhaitez les modifier, vous devrez définir ces options de manière explicite.

/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

root_squash est l'une des options les plus importantes concernant la sécurité NFS. Il empêche les utilisateurs root connectés à partir des clients d'avoir des privilèges root sur les partages montés. Il nogroup UID et le GID racine à nobody / nogroup UID / GID .

Pour que les utilisateurs sur les machines clientes aient accès, NFS attend que les ID utilisateur et groupe du client correspondent à ceux du serveur. Une autre option consiste à utiliser la fonction de mappage d'ID NFSv4 qui traduit les ID utilisateur et groupe en noms et inversement.

C'est ça. À ce stade, vous avez configuré un serveur NFS sur votre serveur CentOS. Vous pouvez maintenant passer à l'étape suivante et configurer les clients et vous connecter au serveur NFS.

Configuration du pare-feu

FirewallD est la solution de pare-feu par défaut sur Centos 8.

Le service NFS comprend des règles prédéfinies pour autoriser l'accès au serveur NFS.

Les commandes suivantes autoriseront en permanence l'accès à partir du sous-réseau 192.168.33.0/24 :

sudo firewall-cmd --new-zone=nfs --permanent sudo firewall-cmd --zone=nfs --add-service=nfs --permanent sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent sudo firewall-cmd --reload

Configurer les clients NFS

Maintenant que le serveur NFS est configuré et que les partages sont exportés, l'étape suivante configure les clients et monte les systèmes de fichiers distants.

Vous pouvez également monter le partage NFS sur des machines macOS et Windows, mais nous nous concentrerons sur les systèmes Linux.

Installation du client NFS

Sur les machines du client, installez les outils requis pour monter des systèmes de fichiers NFS distants.

  • Installer le client NFS sur Debian et Ubuntu

    Le nom du paquet qui inclut des programmes pour monter des systèmes de fichiers NFS sur des distributions basées sur Debian est nfs-common . Pour l'installer exécutez:

    sudo apt update sudo apt install nfs-common

    Installer le client NFS sur CentOS et Fedora

    Sur Red Hat et ses dérivés, installez le paquet nfs-utils :

    sudo yum install nfs-utils

Montage de systèmes de fichiers

Nous travaillerons sur la machine client avec IP 192.168.33.110 , qui a un accès en lecture et en écriture au système de fichiers /srv/nfs4/www et un accès en lecture seule au système de fichiers /srv/nfs4/backups .

Créez deux nouveaux répertoires pour les points de montage. Vous pouvez créer ces répertoires à n'importe quel endroit de votre choix.

sudo mkdir -p /backups sudo mkdir -p /srv/www

Montez les systèmes de fichiers exportés avec la commande mount :

sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

192.168.33.148 est l'IP du serveur NFS. Vous pouvez également utiliser le nom d'hôte au lieu de l'adresse IP, mais il doit être résolu par la machine cliente. Cela se fait généralement en mappant le nom d'hôte à l'adresse IP dans le fichier /etc/hosts .

Lors du montage d'un système de fichiers NFSv4, vous devez omettre le répertoire racine NFS, donc au lieu de /srv/nfs4/backups vous devez utiliser /backups .

Vérifiez que les systèmes de fichiers distants sont correctement montés à l'aide de la commande mount ou df :

df -h

La commande imprimera tous les systèmes de fichiers montés. Les deux dernières lignes sont les actions montées:

… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www

Pour rendre les montages permanents au redémarrage, ouvrez le fichier /etc/fstab :

sudo nano /etc/fstab

et ajoutez les lignes suivantes:

/ etc / fstab

192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0

Pour trouver plus d'informations sur les options disponibles lors du montage d'un système de fichiers NFS, tapez man nfs dans votre terminal.

Une autre option pour monter les systèmes de fichiers distants consiste à utiliser l'outil autofs ou à créer une unité systemd.

Test de l'accès NFS

Testons l'accès aux partages en créant un nouveau fichier dans chacun d'eux.

Tout d'abord, essayez de créer un fichier de test dans le répertoire /backups à l'aide de la commande touch :

sudo touch /backups/test.txt

Le système de fichiers /backup est exporté en lecture seule, et comme prévu, vous verrez un message d'erreur Permission denied :

touch: cannot touch '/backups/test': Permission denied

Ensuite, essayez de créer un fichier de test dans le /srv/www tant que root à l'aide de la commande sudo :

sudo touch /srv/www/test.txt

Encore une fois, vous verrez le message Permission denied .

touch: cannot touch '/srv/www': Permission denied

Le répertoire /var/www appartient à l'utilisateur apache , et ce partage a le root_squash options root_squash , qui mappe l'utilisateur root à l'utilisateur nobody et nogroup groupe nogroup qui ne dispose pas des autorisations d'écriture sur le partage distant.

En supposant qu'un utilisateur apache existe sur la machine client avec le même UID et GID que sur le serveur distant (ce qui devrait être le cas si, par exemple, vous avez installé apache sur les deux machines), vous pouvez tester pour créer un fichier en tant qu'utilisateur apache avec:

sudo -u apache touch /srv/www/test.txt

La commande n'affichera aucune sortie, ce qui signifie que le fichier a été créé avec succès.

Pour le vérifier, répertoriez les fichiers dans le /srv/www :

ls -la /srv/www

La sortie doit montrer le fichier nouvellement créé:

drwxr-xr-x 3 apache apache 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html -rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt

Démontage du système de fichiers NFS

sudo umount /backups

Si le point de montage est défini dans le fichier /etc/fstab , assurez-vous de supprimer la ligne ou de la commenter en ajoutant # au début de la ligne.

Conclusion

Dans ce didacticiel, nous vous avons montré comment configurer un serveur NFS et comment monter les systèmes de fichiers distants sur les machines clientes. Si vous implémentez NFS dans la production et partagez des données sensibles, c'est une bonne idée d'activer l'authentification Kerberos.

Comme alternative à NFS, vous pouvez utiliser SSHFS pour monter des répertoires distants sur une connexion SSH. SSHFS est crypté par défaut et beaucoup plus facile à configurer et à utiliser.

N'hésitez pas à laisser un commentaire si vous avez des questions.

terminal de montage centos nfs