NFS (Network File System) de Sun Microsystems est une structure de système de fichiers distribué basée sur RPC qui permet aux périphériques en réseau d'utiliser des serveurs exécutant NFS sur un réseau en tant que lecteurs locaux.
Voici un guide étape par étape pour installer et configurer un serveur NFS sur une machine Linux.
Qu'est-ce que le système de fichiers réseau ?
Le système de fichiers NFS a quatre protocoles. Lorsque le serveur est prêt, il notifie portmap (le serveur qui convertit le protocole en numéros de port) du port à utiliser et fournit le numéro de programme RPC contrôlé.
Lorsque vous utilisez un système Linux intégré, il est très pratique de démarrer votre appareil via un partage de fichiers NFS sur le réseau au lieu de le démarrer directement à partir du périphérique de stockage (flash NAND, eMMC, MMC, etc.).
Bien que plus rare, vous pouvez également monter un partage NFS et effectuer des partages de fichiers en l'utilisant après le démarrage du système, même si vous ne démarrez pas votre système directement à partir du partage NFS. Pour que les deux scénarios fonctionnent, vous devez d'abord installer un serveur NFS sur l'ordinateur sur lequel vous développez.
Comment installer NFS sous Linux
Si vous utilisez un Système basé sur Debian comme Ubuntu ou Linux Mint, vous devez installer le nfs-kernel-server paquet comme suit :
sudo apt installer nfs-kernel-serveur
Sur Arch Linux :
sudo pacman -S nfs-utils
Sur Fedora, CentOS et RHEL :
sudo dnf-y installer nfs-utils
À la fin du processus, votre serveur NFS s'exécutera automatiquement. Cependant, à ce stade, il ne sait pas encore quels répertoires de votre ordinateur vous souhaitez partager sur le réseau. Par conséquent, il ne fournit aucun partage par défaut.
Vous pouvez ouvrir plusieurs répertoires sur le même serveur pour permettre le partage réseau avec différentes autorisations et restrictions.
Configuration du serveur NFS sous Linux
Pour partager un répertoire sur le serveur NFS, il est nécessaire de configurer un paramètre lié au répertoire dans le /etc/exports dossier. Ouvrez le fichier avec n'importe quel éditeur de texte de votre choix. Assurez-vous d'ajouter le préfixe sudo à la commande.
sudo vim /etc/exportations
Vous vous demandez peut-être ce que signifient les options de mappage que vous voyez ici :
- root_squash : Marque les utilisateurs du client autorisés sudo en tant qu'utilisateur et groupe de personne sur NFS
- no_root_squash : Désactive l'écrasement des racines
- all_squash : Contrairement à root_squash, il permet à tous les utilisateurs d'être mappés en tant qu'utilisateur et groupe personne. Il est généralement utilisé pour l'accès public.
- no_all_squash : Le contraire de all_squash; cette option est la valeur par défaut
Lorsqu'un système en dehors des plages d'adresses IP que vous autorisez dans le fichier /etc/exports sur le serveur NFS tente d'accéder à la ressource appropriée, le serveur NFS rejette la demande.
Vous pouvez recevoir des messages "accès refusé par le serveur" lors du montage sur votre système embarqué. Des messages d'erreur similaires aux suivants apparaîtront à la fin du /var/log/syslog fichier sur l'ordinateur sur lequel le serveur NFS est exécuté :
rpc.mountd[1041]: demande de montage refusée de192.168.2.2pour /home/exemple/casper/cible (/home/example/casper/target): hôte sans correspondance
Lorsque vous voyez un message de journal d'hôte sans correspondance comme celui ci-dessus, vous devez développer la section IP/Netmask de la règle pertinente dans le fichier /etc/exports ou utiliser le astérisque (*) caractère spécial si vous souhaitez accorder l'accès à toutes les adresses IP.
Vous devez redémarrer le service NFS après avoir apporté des modifications au /etc/exports dossier:
redémarrage du service sudo nfs-kernel-server
Ou, si votre distribution est livrée avec systemctl, exécutez la commande suivante :
sudosystemctlredémarrerserveur-nfs.service
Vous pouvez également donner le -r paramètre au exportfs afin qu'il partage à nouveau les répertoires qui ont modifié les paramètres liés au partage :
sudo exportfs -r
Résoudre le problème de latence de montage
Lorsque vous utilisez le protocole NFS version 4 et supérieure sur votre serveur, il peut y avoir des retards allant jusqu'à 15 secondes pendant le processus de montage côté client dans les scénarios d'exploitation traditionnels avec les configurations par défaut du NFS serveur. Ce problème peut apparaître sur certaines versions de Debian, Fedora et Ubuntu.
Si vous rencontrez un décalage de montage similaire, vous pouvez vérifier les fichiers journaux côté serveur (/var/log/syslog, /var/log/messages) pour un message de journal semblable au suivant :
... RPC: l'appel montant AUTH_GSS a expiré
Ce message indique que l'authentification Kerberos a échoué et a expiré. Vous n'aurez probablement pas besoin du protocole Kerberos pour l'authentification de sécurité sur le réseau de votre environnement. Même si vous êtes sur un réseau configuré de cette façon, du moins avec vos systèmes Linux embarqués, vous n'aurez pas besoin d'activer l'authentification Kerberos.
Bien que des alternatives à l'exécution du service GSSD avec NFS pour résoudre le problème aient été proposées, ces approches n'ont pas le même impact dans toutes les distributions et versions de packages, et par conséquent, il est plus rationnel de s'attaquer à ce problème à partir du racine.
Vous devez bloquer (ou mettre sur liste noire) le rpcsec_gss_krb5 module du noyau de se charger sur le système Linux où le serveur NFS est en cours d'exécution.
Pour que cette option prenne effet à chaque redémarrage de votre ordinateur, créer un nouveau fichier appelé /etc/modprobe.d/nfs-gss-blacklist.conf et ajoutez-y les lignes suivantes :
liste noire rpcsec_gss_krb5
Une fois que vous avez enregistré le fichier et redémarré le système, le problème de latence de montage disparaîtra.
Pourquoi utiliser un serveur NFS ?
NFS est simple et abordable à configurer. Il permet une gestion centralisée, ce qui réduit le besoin de logiciels supplémentaires et d'espace de stockage sur le PC d'un utilisateur individuel. Sur une même machine, plusieurs utilisateurs peuvent partager le même espace disque. Ils peuvent placer ces disques au-dessus de leur système de fichiers pour étendre l'espace de stockage.
Le partage NFS permet de regrouper sur un même serveur des programmes nécessitant beaucoup d'espace de stockage. Cela peut entraîner d'énormes économies d'espace disque. Alors que les versions précédentes de NFS sont vulnérables, les versions plus récentes ont introduit des niveaux de protection supplémentaires, y compris l'authentification Kerberos.
Cependant, il y a aussi quelques inconvénients. Il a été constaté que NFS ralentissait dans certains cas lors d'un trafic réseau important. Le partage avec Windows est possible, mais peut nécessiter certaines applications tierces. Mais ce n'est pas une pratique très sensée en termes de sécurité. Si la configuration n'est pas correcte, un accès non autorisé peut se produire.
Partage de système de fichiers simplifié sous Linux à l'aide de NFS
Connaître les problèmes de sécurité et trouver des solutions est l'une des tâches les plus critiques d'un administrateur système. Il est nécessaire de connaître les procédures de sécurité pour tous les systèmes de partage de fichiers et outils de gestion et pas seulement NFS.