serveur NFS sur Ubuntu
Table des matières:
- Conditions préalables
- Configurer le serveur NFS
- Installation du serveur NFS
- Création des systèmes de fichiers
- Exportation des systèmes de fichiers
- Configuration du pare-feu
- Configurer les clients NFS
- Installation du client NFS
- Montage de systèmes de fichiers
- Test de l'accès NFS
- Démontage du système de fichiers NFS
- Conclusion
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 tutoriel, nous allons voir comment configurer un serveur NFSv4 sur Ubuntu 18.04. Nous vous montrerons également comment monter un système de fichiers NFS sur le client.
Conditions préalables
Cet exemple suppose que vous avez un serveur exécutant Ubuntu 18.04 et un autre exécutant toute autre distribution Linux. 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.10 NFS Clients IPs: From the 192.168.33.0/24 range
Configurer le serveur NFS
Nous allons commencer par installer et configurer le serveur NFS.
Installation du serveur NFS
Actualisez l'index des packages et installez le package du serveur NFS:
sudo apt update
sudo apt install nfs-kernel-server
Une fois l'installation terminée, les services NFS démarrent automatiquement.
Par défaut, sur Ubuntu 18.04 NFS version 2 est désactivé. Les versions 3 et 4 sont activées. Vous pouvez le vérifier en exécutant la commande
cat
suivante:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 est assez ancien maintenant, et il n'y a aucune raison de l'activer.
Les options de configuration du serveur NFS sont définies dans
/etc/default/nfs-common
fichiers
/etc/default/nfs-kernel-server
et
/etc/default/nfs-common
. Les paramètres par défaut sont suffisants dans notre cas.
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.
Nous allons partager deux répertoires (
/var/www
et
/opt/backups
), avec des paramètres de configuration différents, pour mieux expliquer comment les montages NFS peuvent être configurés.
Le
/var/www/
appartient à l'utilisateur et le groupe
www-data
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
sudo mkdir -p /srv/nfs4/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, ouvrez le fichier
/etc/fstab
:
sudo nano /etc/fstab
et ajoutez les lignes suivantes:
/ 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
Le fichier
/etc/exports
contient également des commentaires qui décrivent comment exporter un répertoire.
Dans notre cas, nous devons exporter les répertoires
www
et
backups
et autoriser l'accès uniquement à partir des clients sur le réseau
192.168.33.0/24
:
/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 autorise uniquement l'accès en lecture à toute la plage
192.168.33.0/24
et à la fois 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, saisissez
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 explicitement ces options.
/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
Sur Ubuntu,
root_squash
est activé par défaut. C'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 Ubuntu. Vous pouvez maintenant passer à l'étape suivante et configurer les clients et vous connecter au serveur NFS.
Configuration du pare-feu
En supposant que vous utilisez
UFW
pour gérer votre pare-feu pour autoriser l'accès à partir du sous-réseau
192.168.33.0/24
vous devez exécuter la commande suivante:
sudo ufw allow from 192.168.33.0/24 to any port nfs
Pour vérifier l'exécution des modifications:
sudo ufw status
La sortie doit montrer que le trafic sur le port
2049
est autorisé:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
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 clientes, nous devons installer uniquement les outils nécessaires pour monter un système de fichiers NFS distant.
-
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.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www
Où
192.168.33.10
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 annuler 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:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/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.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/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 pour 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
En supposant que vous avez une utilisation
www-data
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é nginx sur les deux machines), vous pouvez tester pour créer un fichier en tant qu'utilisateur
www-data
avec:
sudo -u www-data 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 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 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 ubuntu nfsComment installer et configurer un serveur nfs sur centos 8
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.
Comment configurer un serveur openvpn sur Ubuntu 18.04
Un VPN vous permet de vous connecter à des serveurs VPN distants, de sécuriser votre connexion et de surfer sur le Web de manière anonyme en gardant vos données de trafic privées. Ce tutoriel vous guidera à travers le processus de configuration de votre propre serveur VPN en installant et en configurant OpenVPN.
Comment configurer le serveur ftp avec vsftpd sur Ubuntu 18.04
Dans ce tutoriel, nous allons installer vsftpd. Il s'agit d'un serveur FTP stable, sécurisé et rapide. Nous vous montrerons également comment configurer vsftpd pour restreindre les utilisateurs à leur répertoire personnel et crypter toute la transmission avec SSL / TLS.