Partie Nfs 639b2c1365e62

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 24

RÉSUMÉ THÉORIQUE – FILIÈRE INFRASTRUCTURE DIGITALE

M205-Administration réseau sous linux

120 heures
1. Présentation de service NFS.
2. Installation de Serveur NFS.
3. Démarrage et arrêt de service.
4. Configuration NFS.
5. La commande exportfs
6. Installation côté client.
7. Connexion aux dossiers partagés au
démarrage
01 - Présentation de service NFS
Introduction

• Un système de fichiers réseau (ou NFS de l'anglais Network File

System), permet aux hôtes distants de monter des systèmes de

fichiers sur un réseau et de les utiliser exactement comme des

systèmes de fichiers locaux.

• Ceci permet aux administrateurs système de stocker des ressources

sur des serveurs centralisés sur le réseau.


01 - Présentation de service NFS
Version NFS

• À l'heure actuelle, il existe trois versions de NFS. La version 2 de NFS (NFSv2), une version plus ancienne qui est largement prise en charge.
La version 3 de NFS (NFSv3) qui a davantage de fonctionnalités, y compris le traitement de fichiers de tailles variables et un meilleur
rapportage d'erreurs, mais qui n'est pas entièrement compatible avec les clients NFSv2. La version 4 de NFS (NFSv4) qui inclut la sécurité
Kerberos, fonctionne à travers des pare-feu et qui sur Internet, n'a plus besoin de portmapper, prend en charge les ACL et utilise des
opérations avec état (ou qualifiées de stateful). Red Hat Enterprise Linux supporte les clients NFSv2, NFSv3 et NFSv4 et lors du montage
d'un système de fichiers via NFS, Red Hat Enterprise Linux utilise NFSv4 par défaut, si le serveur le prend en charge.
• Toutes les versions de NFS peuvent utiliser le protocole TCP (de l'anglais Transmission Control Protocol ) exécuté sur un réseau IP, sachant
qu'il est nécessaire pour NFSv4. NFSv2 et NFSv3 peuvent utiliser le protocole UDP (de l'anglais User Datagram Protocol) exécuté sur un
réseau IP pour fournir une connexion réseau sans état (aussi qualifiée de stateless) entre le client et le serveur.
• Lors de l'utilisation de NFSv2 ou NFSv3 avec UDP, la connexion UDP stateless dans des conditions normales minimise le trafic réseau, car le
serveur NFS envoie un cookie au client une fois que ce dernier est autorisé à accéder au volume partagé. Ce cookie, qui représente une
valeur aléatoire stockée côté serveur, est transmis en même temps que les requêtes RPC en provenance du client. Le serveur NFS peut
être redémarré sans affecter le client et le cookie reste intact. Ceci étant, le protocole UDP étant sans état (ou stateless), si le serveur
s'arrête inopinément, les clients UDP continuent à saturer le réseau de requêtes pour le serveur. Telle est la raison pour laquelle TCP est le
protocole préféré lors de la connexion à un serveur NFS.
01 - Présentation de service NFS
Version NFS

• Lors de l'utilisation de NFSv4, une connexion dite stateful est effectuée et l'authentification Kerberos des utilisateurs et groupes avec des
niveaux de sécurité variés est disponible de manière optionnelle. NFSv4 n'a pas d'interaction avec portmapper, rpc.mountd, rpc.lockd et
rpc.statd étant donné qu'ils ont été incorporés au noyau. NFSv4 est en écoute sur le port bien connu 2049.

• NFS n'effectue d'authentification que lorsqu'un système client tente de monter une ressource NFS partagée. Pour limiter l'accès au service
NFS, des enveloppeurs TCP (TCP wrappers) sont employés. Ceux-ci lisent les fichiers /etc/hosts.allow et /etc/hosts.deny pour déterminer
si un client particulier doit se voir refuser ou accorder l'accès au service NFS.

• Une fois que l'accès du client a été autorisé par les enveloppeurs TCP, le serveur NFS se réfère à son fichier de configuration, /etc/exports
pour déterminer si le client peut monter l'un des systèmes de fichiers exportés. Dès que l'accès est autorisé, toutes opérations sur les
fichiers ou répertoires sont possibles par l'utilisateur.
02 - Installation de Serveur NFS
Service requis

• FEDORA Linux utilise une combinaison de prise en charge de niveau noyau avec des processus démons pour fournir le partage de fichiers
NFS.
• Tous les NFS utilisent les appels de procédure distante (ou RPC de l'anglais Remote Procedure Calls) pour coder et décoder des requêtes
entre les clients et les serveurs.
• Les services RPC sous Linux sont contrôlés par le service rpcbind.
• Pour partager ou monter les systèmes de fichiers NFS, les services suivants fonctionnent de concert, selon la version de NFS qui est
implémentée :
• nfs — Un service qui lance les processus RPC appropriés pour répondre aux requêtes pour les systèmes de fichiers NFS partagés.
• nfslock — Un service facultatif qui lance les processus RPC appropriés pour permettre aux clients NFS de verrouiller des fichiers sur
le serveur.
• rpcbind — accepte les réservations de port des services RPC locaux. Ces ports sont ensuite mis à disposition (ou annoncés) afin que
les services RPC distants correspondants puissent y accéder. rpcbind répond aux demandes de services RPC et établit des
connexions au service RPC demandé. Ceci n'est pas utilisé avec NFSv4.
02 - Installation de Serveur NFS
Service requis

• Les processus RPC suivants facilitent les services NFS :


• rpc.mountd — Ce processus reçoit la requête de montage en provenance d'un client NFS et vérifie que le système de fichiers
demandé est bien exporté. Ce processus est démarré automatiquement par le service nfs et ne nécessite pas de configuration au
niveau de l'utilisateur. Ce processus n'est pas utilisé avec NFSv4.
• rpc.nfsd — Ce processus est le serveur NFS. Il fonctionne avec le noyau Linux pour satisfaire les requêtes dynamiques des clients
NFS, comme par exemple pour fournir des fils de serveur (ou threads) chaque fois qu'un client NFS se connecte. Ce processus
correspond au service nfs.
• rpc.rquotad — Ce processus fournit des informations sur les quotas utilisateur s'appliquant aux utilisateurs distants. Il est lancé
automatiquement par le service nfs et ne nécessite pas de configuration au niveau de l'utilisateur.
• rpc.idmapd — Ce processus fournit au client et serveur NFSv4 des appels ascendants (aussi appelés upcalls) qui établissent la
correspondance entre les noms NFSv4 (qui sont des chaînes se présentant sous la forme utilisateur@domaine) et les UID et GID
locaux. Pour que idmapd puisse fonctionner avec NFSv4, /etc/idmapd.conf doit être configuré. Ce service est nécessaire pour une
utilisation avec NFSv4.
• rpc.svcgssd — Ce processus fournit le mécanisme de transport serveur pour le processus d'authentification (Kerberos Version 5)
avec NFSv4. Ce service est nécessaire pour une utilisation avec NFSv4.
• rpc.gssd — Ce processus fournit le mécanisme de transport client pour le processus d'authentification (Kerberos Version 5) avec
NFSv4. Ce service est nécessaire pour une utilisation avec NFSv4.
02 - Installation de Serveur NFS
Paquet et dépendances

• Vous pouvez installer nfs-utils avec la commande :


# dnf install nfs-utils
03 - Démarrage et arrêt de service
Gestion du service nfs

• Le démarrage du serveur NFS implique le lancement de plusieurs démons de service. Le service NFS de base dans Fedora est appelé nfs-
server. Pour démarrer ce service, activez-le (afin qu'il démarre à chaque démarrage de votre système) et vérifiez son état en exécutant les
trois commandes suivantes :
# systemctl start nfs-server.service
# systemctl enable nfs-server.service
# systemctl status nfs-server
03 - Démarrage et arrêt de service
Gestion du service nfs

• Pour désactiver le service nfs au démarrage ainsi que le stopper on utilise les commandes:
# systemctl stop nfs-server.service
# systemctl disable nfs-server.service
# systemctl status nfs-server
04 - Configuration NFS
Fichiers et options

• La configuration d'un 'export' NFS se fait en éditant le fichier /etc/exports, comme exemple:
/var/opt 192.168.1.*(rw,all_squash,anonuid=1000,anongid=1000,sync,no_subtree_check)
• Dans ce fichier, chaque ligne est définie comme ceci :
• <dossier partagé> : chemin menant au dossier partagé.
• <hôte> : indique quel est l'hôte qui peut accéder à ce partage, l'hôte peut être défini de plusieurs manières :
• une IP : on indique simplement l'adresse IP de la machine pouvant accéder à ce partage.
• un nom d'hôte : on indique le nom complet de l'hôte (pour peu qu'il soit connu du système au travers d'un DNS ou du fichier
hosts).
• un nom de groupe réseau NIS (NIS netgroup) qui s'indique sous la forme @<netgroup>.
• un domaine avec un joker qui indique les machines d'un domaine ou sous-domaine; par exemple : *.ofppt.ma.
• un intervalle d'IP avec le masque de sous-réseau; par exemple : 192.168.100.0/24 ou 192.168.100.*
04 - Configuration NFS
Fichiers et options

• <options> : indique les options de partage; comme par exemple :


• rw : permet la lecture et l'écriture sur un partage pour l'hôte défini (par défaut, les partages sont en mode ro; c'est-à-dire en lecture
seule).
• async : permet au serveur NFS de violer le protocole NFS et de répondre aux requêtes avant que les changements effectués par la
requête aient été appliqués sur l'unité de stockage. Cette option améliore les performances mais a un coût au niveau de l'intégrité des
données (données corrompues ou perdues) en cas de redémarrage non-propre (par exemple en cas de crash système).
• sync : est le contraire de async. Le serveur NFS respecte le protocole NFS.
• root_squash : force le mapping de l'utilisateur root vers l'utilisateur anonyme (option par défaut).
• no_root_squash : n'effectue pas de mapping pour l'utilisateur root.
• all_squash : force le mapping de tous les utilisateurs vers l'utilisateur anonyme.
• Anonuid, anongid : indique au serveur NFS l'UID , GID de l'utilisateur anonyme (considéré comme tel dans les précédentes options de
mapping).
• subtree_check : Si un sous-répertoire dans un système de fichiers est partagé, mais que le système de fichiers ne l'est pas, alors
chaque fois qu'une requête NFS arrive, le serveur doit non seulement vérifier que le fichier accédé est dans le système de fichiers
approprié, mais aussi qu'il est dans l'arborescence partagée. Cette vérification s'appelle subtree_check.
• no_subtree_check : Cette option neutralise la vérification de sous-répertoires, ce qui a des subtiles implications au niveau de la
sécurité, mais peut améliorer la fiabilité dans certains cas.
05 - La commande exportfs
Commandes et options

• Chaque système de fichiers exporté vers des utilisateurs distants via NFS, ainsi que le niveau d'accès à ces systèmes de fichiers, sont

répertoriés dans le fichier /etc/exports. Lorsque le service nfs démarre, la commande exportfs se lance et lit ce fichier, passe le contrôle à

rpc.mountd (si NFSv2 ou NFSv3) pour le processus de montage proprement dit, puis à rpc.nfsd où les systèmes de fichiers sont alors

disponibles pour les utilisateurs distants.

• Lorsqu'elle est émise manuellement, la commande exportfs permet à l'utilisateur root d'exporter ou de d’annuler l’exportation de manière

sélective des répertoires sans redémarrer le service NFS.


05 - La commande exportfs
Commandes et options

• OPTIONS
 -d, --debug catégorie. Activer le mode débogage. Les catégories possibles sont : all, auth, call, general et parse. Le débogage peut
être aussi activé en réglant debug= dans la section [exportfs] de /etc/nfs.conf.
 -a Activer ou interrompre le partage de tous les répertoires.
 -o options,... Indiquer une liste d'options de partage, à la manière de exports.
 -i Ne pas tenir compte du fichier /etc/exports ni des fichiers dans le répertoire /etc/exports.d/. Seules les options par défaut
ou celles données sur la ligne de commande sont utilisées.
 -r Relancer le partage de tous les répertoires. /var/lib/nfs/etab est synchronisé avec /etc/exports et les fichiers dans
/etc/exports.d. Avec cette option, les entrées qui ont disparu de /etc/exports ou des fichiers dans /etc/exports.d seront supprimées
de /var/lib/nfs/etab. Dans la table des partages du noyau, les entrées qui ne sont plus valables seront également enlevées.
 -u Interrompre le partage d'un ou plusieurs répertoires.
 -f Si /proc/fs/nfsd ou /proc/fs/nfs sont montés, éliminer tout de la table des partages du noyau. Les nouvelles entrées pour des
clients actifs sont ajoutées à la liste des partages du noyau par rpc.mountd lors de leur prochaine requête de montage NFS.
 -v Mode détaillé. Lors d'un partage ou de l'arrêt d'un partage, afficher ce qui se passe. Lors de l'affichage de la liste actuelle
des partages, afficher aussi la liste des options de partage.
 -s Afficher la liste actuelle de partages, applicable pour /etc/exports.
05 - La commande exportfs
Commandes et options

Exemples
• Pour offrir le répertoire /usr/tmp à l'hôte django, en permettant les requêtes non sécurisées de verrouillage de fichier des clients :
# exportfs -o insecure_locks django:/usr/tmp
• Pour cesser de partager le répertoire /usr/tmp :
# exportfs -u django:/usr/tmp
• Pour cesser de partager tous les partages indiqués dans /etc/exports et les fichiers dans /etc/exports.d :
# exportfs -au
• Pour partager le répertoire /usr/tmp avec des clients IPv6 locaux :
# exportfs [fe80::]/64:/usr/tmp
06 - Installation côté client
Montage manuel

• Pour accéder à un NFS, il faut le "monter". En gros il s'agit de dire au service qui s'occupe des disques durs que ce serveur NFS est comme un
disque dur.
NB: Il n'existe pas d'autoconfiguration pour NFS, il faudra donc le faire manuellement.
• Après avoir vérifié le paquet nfs-client, il existe deux solutions pour monter son NFS sur un ordinateur:
 La première est plus adaptée à un Serveur allumé en permanence (montage temporaire),
 la seconde (montage automatique) via fstab est peut être plus tolérante à l'arrêt inopiné du serveur.
• Etapes:
• En premier lieu il vous faut créer un dossier qui va contenir le partage dans /mnt/ ou /media/ par exemple :
# mkdir /mnt/<mon_partage>
• Au prochain démarrage le montage NFS ne sera plus présent mais cette méthode permet de tester plus facilement et rapidement:
# mount -t nfs4 @_ip_serveur:/chemin/vers/partage /mnt/<nom_partage>
Dans notre cas l’adresse est 192.168.1.201 et le partage est /var/ops/my_store
06 - Installation côté client
Montage manuel
06 - Installation côté client
Montage automatique avec fstab

• Le fichier /etc/fstab liste les partitions qui seront montées automatiquement au démarrage ou à la connexion du périphérique, avec toujours
les mêmes options. Il est composé de plusieurs lignes décrivant chacune les conditions de montage de chaque partition / système de fichier.
• Le fichier fstab est créé lors de l'installation, avec le montage de la partition principale, et de la swap. Mais on peut y ajouter manuellement
des partitions supplémentaires, qui seront alors automatiquement lues par le système au démarrage.
• Le fichier /etc/fstab suivant résume une configuration classique :
06 - Installation côté client
Montage automatique avec fstab

1. la colonne <file system> indique la partition elle-même. l'UUID (Universal Unique Identifier) de la partition. Celle-ci sera
obtenue via un sudo blkid. Un UUID ressemble à cela UUID=6c71b642-dcd8-448e-bd52-5ad0a7693059
2. la colonne <mount point> indique un répertoire quelconque sur la partition principale, et qui servira de point de montage. Pour
la partition principale elle-même, c'est évidemment "/" (la racine). Pour une partition montée additionnelle, on choisit en
général (ce n'est pas un emplacement obligatoire) un répertoire /media/xxx (où xxx est le nom que vous choisissez pour la
partition de montage). Vous devez créer manuellement cette partition de montage une fois pour toutes par un sudo mkdir
/media/xxx. Laissez-la vide, et n'y touchez plus jamais. Elle sert juste d'ancrage au fstab pour son montage.
3. La colonne <type> donne le type de système de fichiers de la partition montée.
4. La colonne <option> permet de choisir des options au montage.
5. la colonne <dump> règle les sauvegardes via l'utilitaire dump. La valeur classique est 0.
6. la colonne <pass> règle la priorité de vérification des erreurs éventuelles du système de fichiers au démarrage. Laissez-y les
valeurs par défaut de l'installation. Si vous ajoutez manuellement des partitions, les valeurs de <pass> doivent être:
a. 1 pour la racine (votre partition principale) ⇒ vérif de cette partition en priorité,
b. 2 pour les autres partitions Linux (les partitions "externes" que vous souhaitez monter) ⇒ ce 2 fera les vérifs après la
partition racine (démarrage plus rapide),
c. 0 pour le swap et les partitions windows (cf.fstab) ⇒ pas de vérification.
06 - Installation côté client
Montage automatique avec fstab

Options Description Compatible


defaults Correspond à: rw,suid,dev,exec,auto,nouser,async Tous

• rw/ro Montage en lecture/écriture (par défaut) ou lecture seule Tous


Pour aller plus loin, voici la liste des
options pour la colonne <option>. suid/nosuid Les bits SUID et SGID sont pris en compte (ou non) Tous
Certaines options sont communes à Relatif aux droits donnés aux exécutables sur la partition
tous les systèmes de fichiers, d'autres dev/nodev Interprète ou non les fichiers spéciaux de périphériques présents sur le système (par Tous
défaut)
sont spécifiques à la norme POSIX (tous
exec/noexec Autorise l'exécution des programmes (par défaut) Tous
les systèmes de fichiers Linux), d'autres
auto/noauto Montage automatique (ou non) lors d'un appel mount -a (par défaut) Tous
à certains systèmes de fichiers. Voici la
plupart des options que vous pourrez nouser Seul le compte root peut monter/démonter le système de fichier (par défaut) Tous
rencontrer :
_netdev Le système de fichiers est sur une machine qui nécessite un accès réseau. Cela indique au ??
système d'attendre que la configuration réseau soit active avant de procéder au montage

async Montage asynchrone (par défaut) Tous


atime/noatime Inscrit (ou non) la date d'accès (préférez noatime pour les SSD) Norme POSIX

sw Spécifique à l'activation des partitions swap swap


discard active le TRIM sur les partitions SSD (à rajouter manuellement) ext4, btrfs (SSD)
06 - Installation côté client
Montage automatique avec fstab

• Exemple:
• Il est aussi possible de le monter à chaque démarrage, pour cela il suffit d'éditer le fichier /etc/fstab, et d'y ajouter une ligne du type :
@_ip_serveur:/chemin/vers/partage /mnt/<nom_partage> nfs4 auto,user,rw 0 0
07 - Connexion aux dossiers partagés au
démarrage
Via console

• Le résultat est:
On pleinement le droit d’écriture dans
le dossier 1 que le dossier 2, la raison
est la suivante:
07 - Connexion aux dossiers partagés au
démarrage
Via interface web

• En utilisant l’interface web via cockpit, 192.168.1.200:9090/storage, on aura:

Vous aimerez peut-être aussi