GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer et configurer un serveur Linux Ubuntu NFS

Vous cherchez une application qui vous permette de partager des fichiers et des répertoires sur le réseau ? Pour plusieurs clients ? Vous avez probablement besoin de NFS (Network File System) ! Un serveur NFS Ubuntu vous permet de créer des répertoires partagés pour différents clients avec un contrôle d'accès supplémentaire.

Pas un lecteur? Regardez ce didacticiel vidéo associé ! Vous ne voyez pas la vidéo ? Assurez-vous que votre bloqueur de publicités est désactivé.

Dans ce didacticiel, vous apprendrez à configurer un serveur NFS et à partager des fichiers en toute sécurité entre plusieurs machines.

Prêt? Continuez à lire et démarrez votre partage de fichiers sécurisé !

Prérequis

Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d'avoir les exigences suivantes :

  • Un serveur et un client Linux sur le même réseau :cette démonstration utilise un serveur Ubuntu 20.04 avec le nom d'hôte nfs-server et un client Ubuntu 20.04 avec le nom d'hôte client . Mais vous pouvez utiliser une autre distribution Linux, telle que Debian, CentOS ou Fedora.
  • Un utilisateur non root avec des privilèges sudo.

Installer un serveur NFS Ubuntu

NFS permet un accès sécurisé aux fichiers sur des systèmes distants pour les utilisateurs, comme s'il s'agissait simplement de fichiers stockés localement. Mais avant de partager des fichiers et des répertoires, vous devez d'abord installer un serveur Ubuntu NFS. Sur Ubuntu, vous installerez le nfs-kernel-server forfait sur le nfs-server machine.

Certaines commandes du didacticiel n'ont pas de sortie. Mais un résultat des étapes accumulées que vous avez prises est affiché à la dernière étape de chaque section.

1. Connectez-vous à votre serveur Linux et exécutez le sudo su commande ci-dessous pour obtenir les privilèges root.

sudo su

2. Exécutez les commandes ci-dessous pour update l'index du package pour votre référentiel et installez le package du serveur Ubuntu NFS (nfs-kernel-server ).

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

3. Enfin, exécutez le systemctl commandes ci-dessous pour démarrer et activer le service NFS nfs-kernel-server , puis vérifiez le nfs-kernel-server l'état du service est actif.

# start and enable NFS service
sudo systemctl enable --now nfs-kernel-server.service

# verify status NFS service
sudo systemctl status nfs-kernel-server.service

Comme vous le voyez ci-dessous, l'élément actif (quitté) status indique que le service NFS est en cours d'exécution. La sortie message vous indique que le gestionnaire systemd ne trouve aucun démon à surveiller.

Configuration du répertoire partagé NFS

Après avoir installé le package de serveur NFS, vous allez maintenant configurer le répertoire partagé NFS en créant de nouveaux répertoires. Vous partagerez ces répertoires avec les clients et ajouterez de nouvelles configurations à /etc/exports fichier.

1. Exécutez la commande ci-dessous pour créer un nouveau répertoire partagé NFS. Dans cet exemple, vous partagerez le /srv/data répertoire et /srv/test aux clients.

sudo mkdir -p /srv/{data,test}

2. Ensuite, exécutez le chown commande ci-dessous pour modifier le propriétaire du répertoire partagé NFS /srv/data et /srv/test à l'utilisateur nobody et le groupe nogroup . Cette commande garantit que le répertoire partagé NFS est accessible en écriture par les clients. sudo chown -R nobody:nogroup /srv/{data,test}

Cette commande garantit que le répertoire partagé NFS est accessible en écriture par les clients.

sudo chown -R nobody:nogroup /srv/{data,test}

3. Modifiez la configuration NFS /etc/exports en utilisant votre éditeur préféré et remplissez le fichier avec la configuration suivante.

La configuration ci-dessous permet aux machines clientes d'accéder au répertoire partagé NFS avec un accès utilisateur spécifié en lecture et en écriture (rw ) ou en lecture seule (ro ). Assurez-vous de changer les adresses IP (172.16.1.25 et 172.16.1.0/24 ) avec les adresses IP des machines clientes.

# sync - forces NFS to write change from the shared directory to disk immediately.
# no_subtree_check - disabling the subtree checking to get more performance.

# rw - set read/write access to NFS shared directory for clients.
# share /srv/data to client 172.16.1.25 with read and write access.
/srv/data 172.16.1.25(rw,sync,no_subtree_check,root_squash)

# r0 - set read-only access to NFS shared directory for clients.
# share /srv/test to network 172.16.1.0/24 with read only access.
/srv/test 172.16.1.0/24(ro,sync,no_subtree_check)

4. Exécutez la commande ci-dessous pour appliquer le répertoire partagé et vérifiez le /etc/exports fichier de configuration. Si vous ne recevez aucun message de sortie, la configuration NFS est correcte.

sudo exportfs -a

5. Maintenant, exécutez le systemctl commande ci-dessous pour redémarrer le nfs-kernel-server service.

sudo systemctl restart nfs-kernel-server

6. Enfin, exécutez le showmount commande ci-dessous pour répertorier les répertoires partagés sur le serveur Ubuntu NFS. Assurez-vous de changer l'adresse IP (172.16.1.20 ) avec l'adresse IP du serveur NFS.

showmount --exports 172.16.1.20

Vous devriez maintenant voir la liste des répertoires partagés sur le serveur NFS avec l'adresse IP qui vous a permis d'accéder au serveur NFS Ubuntu.

Sécuriser le répertoire partagé NFS avec le pare-feu UFW

Vous avez configuré le répertoire partagé NFS, mais généralement, vous souhaitez empêcher des utilisateurs aléatoires d'accéder au répertoire partagé.

Assurez-vous que seule l'adresse IP autorisée peut accéder au répertoire partagé. Comment? En configurant le pare-feu UFW et en spécifiant l'adresse IP au port NFS.

1. Exécutez les commandes suivantes pour ouvrir le port NFS (2049 ) et autoriser les clients sur les adresses IP 172.16.1.25 et 172.16.1.0/24 accès au serveur NFS Ubuntu. Assurez-vous de remplacer l'adresse IP par l'adresse IP de votre client.

# allow client IP 172.16.1.25 to access NFS server
sudo ufw allow from 172.16.1.25 to any port nfs

# allow network 172.16.1.0/24 to access NFS server
sudo ufw allow from 172.16.1.0/24 to any port nfs

2. Ensuite, exécutez le ufw commande ci-dessous pour recharger le pare-feu UFW et appliquer une nouvelle configuration.

sudo ufw reload

3. Enfin, exécutez le ufw commande ci-dessous pour vérifier l'état du pare-feu UFW.

sudo ufw status

Ci-dessous, vous pouvez voir que le port de serveur NFS 2049 est ajouté au pare-feu et accessible uniquement à partir de l'adresse IP du client 172.16.1.25 et du réseau 172.16.1.0/24.

Montage du répertoire partagé NFS sur la machine client

À ce stade, vous avez entièrement configuré le serveur NFS Ubuntu. Mais comment les machines clientes peuvent-elles accéder au répertoire partagé NFS ? Exécuter le mount La commande pour accéder au répertoire partagé NFS fera l'affaire. Mais d'abord, vous allez installer nfs-common (pour la distribution Debian Linux) ou nfs-utils (pour RHEL, distribution CentOS) à la machine cliente.

1. Connectez-vous à votre ordinateur client, ouvrez le terminal et exécutez le sudo su commande pour obtenir les privilèges root.

sudo su

2. Ensuite, exécutez l'une des commandes ci-dessous pour installer les packages NFS sur la machine cliente, en fonction de votre système d'exploitation.

# for Ubuntu/Debian based distribution
sudo apt install nfs-common -y

# for RHEL/CentOS/Fedora Linux distribution
sudo dnf install nfs-utils -y

3. Exécutez la commande ci-dessous pour créer le répertoire de montage cible. Le répertoire partagé NFS sera monté sur la machine cliente /data et /test répertoires dans cet exemple.

mkdir -p /{data,test}

4. Exécutez chaque mount commandes ci-dessous pour accéder au répertoire partagé NFS.

Le -t nfs L'option spécifie que le type de système de fichiers est le serveur NFS. Cette commande monte le /srv/data répertoire partagé sur le serveur NFS Ubuntu vers le répertoire client local (/data ). Et le /srv/test répertoire partagé vers le répertoire local de clic /test .

# mount shared directory `/srv/data on the nfs server 172.16.1.20
# to the local client directory /data
sudo mount -t nfs 172.16.1.20:/srv/data /data

# mount shared directory `/srv/test on the nfs server 172.16.1.20
# to the local client directory /test
sudo mount -t nfs 172.16.1.20:/srv/test /test

5. Exécutez le df commande ci-dessous pour vérifier la liste des systèmes de fichiers montés sur la machine cliente.

sudo df -h

Dans la sortie ci-dessous, vous verrez que le répertoire partagé NFS /srv/data est monté sur le répertoire /data sur la machine cliente. En même temps, le répertoire partagé (/srv/test) est monté dans le répertoire local (/test) sur la machine cliente.

6. Ensuite, exécutez les commandes ci-dessous pour accéder au répertoire de montage cible (/data ) et créez un fichier appelé file.txt .

Depuis le répertoire partagé (/srv/data ) dispose des autorisations de lecture et d'écriture, vous pouvez créer un nouveau fichier.

# navigate to /data directory
cd /data

# create a new file with "This file from client machine!" as content
echo "This file from client machine!" > file.txt

7. Exécutez le ls et cat commandes ci-dessous pour vérifier que le fichier est disponible dans le répertoire de montage /data .

# list files on the current directory
ls -lah

# showing the content of the file.txt
cat file.txt

8. Enfin, exécutez chaque commande ci-dessous pour accéder au répertoire de montage (/test) et créer un fichier nommé file.txt . Cette commande vous permet de tester les restrictions d'accès en écriture sur le système de fichiers en lecture seule.

# navigate to /test directory
cd /test

# create new file
echo "Test create a file on Read-only filesystem" > file.txt

Comme dans le résultat ci-dessous, vous recevrez un message d'erreur, car le répertoire partagé (/srv/test) ne dispose que d'une autorisation en lecture seule.

Montage permanent du répertoire partagé NFS

Vous avez maintenant monté avec succès le répertoire partagé NFS sur la machine cliente, mais il disparaîtra après le redémarrage du système. Comment monter le répertoire partagé NFS de façon permanente ? En définissant le répertoire partagé NFS sur le /etc/fstab fichier.

1. Modifiez le fichier /etc/fstab fichier de configuration à l'aide de votre éditeur préféré et ajoutez la configuration suivante. Remplacez l'adresse IP par l'adresse IP du serveur NFS, le répertoire partagé et le répertoire cible de montage.

# rw/ro - allow read and write or read-only to the target mount.
# hard - enable client machine to always try to connect to the NFS whenever fail.
# noexec - disable binary file execution on the file system.
# rsize - maximum READ requests that client machine can handle.
# wzise - maximum WRITE requests that client machine can handle.
# timeo - timeout for NFS client before retries requests to the NFS server.

# NFS Shared Directory - target - type - options - dump - pass
172.16.1.20:/srv/data /data nfs rw,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0
172.16.1.20:/srv/test /test nfs ro,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0

2. Ensuite, exécutez le mount commande ci-dessous pour monter tous les systèmes de fichiers sur le /etc/fstab déposer et vérifier le /etc/fstab configuration. S'il n'y a pas de message d'erreur, la configuration est correcte.

sudo mount -a

3. Exécutez le df commande ci-dessous pour vérifier le système de fichiers monté sur la machine cliente.

sudo df -h

Semblable à la sortie ci-dessous, vous devriez voir que le répertoire partagé NFS est automatiquement monté sur votre ordinateur client.

4. Enfin, exécutez le reboot commande pour redémarrer la machine cliente. Une fois redémarré, connectez-vous et relancez le df comme vous l'avez fait à l'étape 3 pour vérifier le répertoire partagé NFS.

sudo df -h

Comme vous le voyez ci-dessous, le répertoire partagé NFS est toujours monté en permanence sur la machine cliente.

Conclusion

Tout au long de ce didacticiel, vous avez appris à configurer un serveur NFS sur un serveur Linux pour partager un répertoire en toute sécurité. Vous avez également évoqué le montage permanent du répertoire partagé NFS, de sorte que vous n'aurez pas à monter manuellement le répertoire partagé à chaque redémarrage de votre machine.

À ce stade, vous disposez d'un serveur NFS entièrement fonctionnel. Alors, quelle est la prochaine étape ? Peut-être apprendre à ajouter une couche de sécurité pour NFS en utilisant l'authentification Kerberos ?


Linux
  1. Comment installer et configurer Nginx sur Ubuntu 20.04

  2. Comment installer et configurer un serveur NFS sur Ubuntu 20.04

  3. Comment installer et configurer VNC sur Ubuntu 20.04

  4. Comment installer et configurer le serveur SVN sur Ubuntu et LinuxMint

  5. Comment installer et configurer le serveur et le client Linux NTP

Comment installer et configurer un serveur NFS sur un système Linux

Comment installer et configurer KVM sur Ubuntu Linux

Comment installer et configurer Parse Server sur Ubuntu 20.04

Comment installer et configurer un serveur TeamSpeak sur Ubuntu 18.04

Comment installer et configurer un serveur Minecraft sur Ubuntu 18.04

Comment installer et configurer le serveur DNS sous Linux