• Aucun résultat trouvé

Configuration du serveur NFS

Système de fichiers réseau (NFS, Network File System)

9.3. Configuration du serveur NFS

Il existe trois manières de configurer un serveur NFS sous Red Hat Enterprise Linux : en utilisant l’Outil de configuration du serveur NFS(system-config-nfs), en modifiant manuellement son fichier de configuration (/etc/exports) ou en exécutant la commande/usr/sbin/exportfs. Pour obtenir des instructions sur l’utilisation de l’Outil de configuration du serveur NFS, reportez-vous au chapitre intituléSystème de fichiers réseau (NFS)duGuide d’administration système de Red Hat Enterprise Linux. Le reste de cette section examine la modification manuelle de/etc/exports et l’utilisation de la commande/usr/sbin/exportfspour exporter les systèmes de fichiers NFS.

9.3.1. Fichier de configuration de/etc/exports

Le fichier/etc/exportspermet non seulement de contrôler les systèmes de fichiers spécifiques qui sont exportés vers des hôtes distants, mais il permet également de spécifier des options. Les lignes blanches ne sont pas prises en compte, des commentaires peuvent être mentionnés en ajoutant un symbole dièse (#) en début de ligne et un retour à la ligne peut être introduit grâce à une barre oblique inverse (\). Chaque système de fichiers exporté doit avoir sa propre ligne et toutes les listes d’hôtes autorisés placées après un système de fichiers exporté doivent être séparées par des espaces. Les

options pour chacun des hôtes doivent être placées entre parenthèses directement après l’identifieur d’hôte, sans espace entre l’hôte et la première parenthèse.

La ligne pour un système de fichiers exporté a la structure suivante :

À exportÁ À host1Á (À optionsÁ ) À hostNÁ (À optionsÁ )...

Dans cette structure, remplacez  exportà par le répertoire devant être exporté, remplacez

 host1à par l’hôte ou le réseau vers lequel l’export est partagé et remplacez optionsà par les options pour cet hôte ou ce réseau. Des hôtes supplémentaires peuvent être spécifiés dans une liste délimitée par des espaces.

Les méthodes suivantes peuvent être utilisées pour spécifier des noms d’hôtes :

hôte simple— Où un hôte particulier est spécifié avec un nom de domaine pleinement qualifiée, un nom d’hôte ou une adresse IP.

caractères génériques— Où les caractères*ou?sont utilisés pour prendre en compte un groupe-ment de noms de domaines pleinegroupe-ment qualifiés qui correspondent à une chaîne de lettres donnée.

Les caractères génériques (aussi appelés wildcards) ne devraient pas être utilisés avec les adresses IP ; il est toutefois possible qu’ils fonctionnent par accident, si les recherches inverses de DNS échouent.

Soyez toutefois prudent lors de l’utilisation de caractères génériques avec des noms de domaines pleinement qualifiés, car ils sont souvent plus exacts que ce que vous escomptez. Par exemple, si vous utilisez*.example.comcomme caractère générique, sales.example.com sera autorisé à accéder au système de fichiers exporté, mais pas bob.sales.example.com. Pour une correspondance incluant les deux noms de domaine, vous devrez spécifier*.example.comet*.*.example.com.

réseaux IP— Autorisent la mise en correspondance d’hôtes en fonction de leur adresse IP dans un réseau plus grand. Par exemple,192.168.0.0/28autorisera les 16 premières adresses IP, de 192.168.0.0 à 192.168.0.15, à accéder au système de fichiers exporté, mais pas 192.168.0.16 ou une adresse IP supérieure.

groupes réseau— Attribuent un nom de groupe réseau NIS, écrit ainsi :@Ä group-nameÅ . Cette option attribue au serveur NIS la charge du contrôle d’accès pour ce système de fichier exporté, où les utilisateurs peuvent être ajoutés et supprimés dans un groupe NIS sans affecter/etc/exports. Dans sa forme la plus simple, le fichier/etc/exportsprécise seulement le répertoire exporté et les hôtes autorisés à y accéder, comme dans l’exemple suivant :

/exported/directory bob.example.com

Dans cet exemple, bob.example.com peut monter /exported/directory/. Étant donné qu’aucune option n’est spécifiée dans cet exemple, les options NFS par défaut prennent effet :

ro— Les montages du système de fichiers exporté sont en lecture-seule. Les hôtes distants ne peuvent pas modifier les données partagées sur le système de fichiers. Pour autoriser les hôtes à apporter des modifications au système de fichiers, l’optionrw(lecture-écriture) doit être spécifiée.

wdelay— Cette option entraîne un retard des opérations d’écriture sur le disque par NFS, s’il suspecte qu’une autre requête d’écriture est imminente. Ce faisant, les performances peuvent être améliorées grâce à une réduction du nombre d’accès au disque par des commandes d’écriture sé-parées, réduisant ainsi le temps d’écriture. L’optionno_wdelayquant à elle, désactive cette fonc-tion mais n’est disponible que lors de l’utilisafonc-tion de l’opfonc-tionsync.

root_squash— Cette option retire au super-utilisateur en connexion distante tous les privilèges de son statut en lui assignant l’ID d’utilisateurnfsnobody(personne). Ce faisant, le pouvoir du super-utilisateur distant est réduit au niveau d’utilisateur le plus bas, l’empêchant d’apporter des modifications non autorisées dans des fichiers sur le serveur distant. Sinon, l’option no_root_squashannule cette fonction de réduction des privilèges du super-utilisateur. Afin

de limiter le champ d’action de chaque utilisateur distant, y compris le super-utilisateur, utilisez l’optionall_squash. Pour spécifier les ID d’utilisateur et de groupe à utiliser avec des utilisateurs distants d’un hôte particulier, utilisez respectivement les options anonuid et anongid. Dans ce cas, un compte utilisateur spécial peut être créé pour que les utilisateurs NFS distants le partagent et spécifient (anonuid=Æ uid-valueÇ ,anongid=Æ gid-valueÇ ), où

Æ uid-valueÇ correspond au numéro de l’ID d’utilisateur et Æ gid-valueÇ représente le numéro de l’ID de groupe.

Important

Par défaut, leslistes de contrôle d’accès(LCAaussi appelées ACL de l’anglais Access Control Lists) sont prises en charge par NFS sous Red Hat Enterprise Linux. Pour désactiver cette fonction, spé-cifiez l’optionno_acllors de l’export du système de fichiers. Pour obtenir davantage d’informations sur cette fonction, reportez-vous au chapitre intituléSystème de fichiers réseau (NFS)duGuide d’administration système de Red Hat Enterprise Linux.

Toutes les valeurs par défaut de chaque système de fichiers exporté doivent être explicitement écrasées.

Par exemple, si l’optionrwn’est pas spécifiée, le système de fichiers exporté est partagé en lecture-seule. L’exemple suivant est une ligne de/etc/exportsqui écrase les deux options par défaut : /another/exported/directory 192.168.0.3(rw,sync)

Dans cet exemple, 192.168.0.3 peut monter /another/exported/directory/ en lecture/écriture et tous les transferts vers le disque sont validés avant que la requête d’écriture par le client ne soit achevée.

De plus, d’autres options sont disponibles là où il n’existe pas de valeur par défaut. Elles permettent d’annuler la vérification de la sous-arborescence, l’accès à des ports sûrs et les verrouillages non-sûrs de fichiers (nécessaires pour certaines implémentations anciennes de client NFS). Consultez la page de manuel deexportspour obtenir deplus amples informations sur ces options moins souvent utilisées.

Avertissement

Le format du fichier/etc/exportsest très précis, particulièrement en ce qui concerne l’utilisation des caractères d’espacement. Rappelez-vous bien de toujours séparer les systèmes de fichiers ex-portés des hôtes, et les hôtes entre eux à l’aide d’un caractère d’espacement. Toutefois, aucun autre caractère d’espacement ne doit figurer dans le fichier, sauf sur des lignes de commentaire.

Par exemple, les deux lignes suivantes n’ont pas la même signification : /home bob.example.com(rw)

/home bob.example.com (rw)

La première ligne autorise seulement les utilisateurs de bob.example.com à avoir un accès en lecture/écriture au répertoire /home/. La deuxième ligne elle autorise les utilisateurs de bob.example.comà monter le répertoire en lecture-seule (la valeur par défaut), alors que tout autre utilisateur peut le monter en lecture/écriture.

Pour obtenir de plus amples informations sur la configuration d’un serveur NFS par le biais du fi-chier/etc/exports, reportez-vous au chapitre intituléSystème de fichiers réseau (NFS)duGuide d’administration système de Red Hat Enterprise Linux.

9.3.2. La commandeexportfs

Chaque fichier exporté vers les utilisateurs distants via NFS ainsi que les droits d’accès liés à ces systèmes de fichiers sont énumérés dans le fichier/etc/exports. Lorsque le servicenfsdémarre, la commande/usr/sbin/exportfsse lance et lit ce fichier, passe le contrôle àrpc.mountd(si NFSv2 ou NFSv3 sont utilisés) pour le processus de montage proprement dit et ensuite àrpc.nfsd où les systèmes de fichiers sont alors disponibles pour les utilisateurs distants.

Lorsqu’elle est exécutée manuellement, la commande /usr/sbin/exportfs permet au super-utilisateur d’exporter ou de désexporter sélectivement des répertoires sans redémarrer le service NFS. Avec les options appropriées, la commande/usr/sbin/exportfsécrit les systèmes de fichiers exportés dans/var/lib/nfs/xtab. Puisquerpc.mountdse réfère au fichierxtab lorsqu’il décide des privilèges d’accès à un système de fichiers, les changements apportés à la liste des systèmes de fichiers exportés prennent effet immédiatement.

Ci-dessous figure une liste des options couramment utilisées pour/usr/sbin/exportfs:

-r— Provoque l’export de tous les répertoires listés dans/etc/exportsen dressant une nouvelle liste d’exports dans/etc/lib/nfs/xtab. Cette option rafraîchit effectivement la liste des exports avec les changements quelconques apportés à/etc/exports.

-a— Provoque l’export ou le désexport de tous les répertoires, selon les autres options de la com-mande/usr/sbin/exportfs. Si aucune autre option n’est spécifiée,/usr/sbin/exportfs exporte tous les systèmes de fichiers spécifiés dans/etc/exports.

-o file-systems — Spécifie les répertoires à exporter qui ne sont pas énumérés dans /etc/exports. Remplacez file-systems par les systèmes de fichiers supplémentaires à exporter. Ces derniers doivent être formatés selon le type spécifié dans /etc/exports. Reportez-vous à la Section 9.3.1 afin d’obtenir davantage d’informations sur la syntaxe de /etc/exports. Cette option est souvent utilisée pour tester un système de fichiers exporté avant de l’ajouter de façon permanente à la liste des systèmes de fichiers à exporter.

-i— Ne prend pas en compte/etc/exports; seules les options données par la ligne de com-mande sont utilisées pour définir les systèmes de fichiers exportés.

-u— Désexporte tous les répertoires partagés. La commande/usr/sbin/exportfs -ua sus-pend le partage de fichiers NFS alors que tous les démons NFS restent actifs. Pour activer à nouveau le partage NFS, tapezexportfs -r.

-v— Représente une opération prolixe où les systèmes de fichiers à exporter ou à désexporter sont affichés avec beaucoup de détails lorsque la commandeexportfsest exécutée.

Si aucune option n’est transmise à la commande/usr/sbin/exportfs, elle affiche une liste des systèmes de fichiers actuellement exportés.

Pour obtenir davantage d’informations sur la commande/usr/sbin/exportfs, reportez-vous à la page de manuel d’exportfs.

9.3.2.1. Utilisation de la commandeexportfsavec NFSv4

Étant donné que NFSv4 n’utilise plus le protocolerpc.mountdcomme dans NFSv2 et NFSv3, le montage de systèmes de fichiers a changé.

Un client NFSv4 a désormais la possibilité de voir l’ensemble des exports effectués par le serveur NFSv4 en tant qu’un seul système de fichiers qui porte le nom de pseudo-système de fichiers NFSv4.

Sous Red Hat Enterprise Linux, le pseudo-système de fichiers est identifié comme un seul système de fichiers réel, identifié à l’export avec l’optionfsid=0.

Par exemple, les commandes suivantes pourraient être exécutées sur un serveur NFSv4 : mkdir /exports

mkdir /exports/opt

mkdir /exports/etc

mount --bind /usr/local/opt /exports/opt mount --bind /usr/local/etc /exports/etc

exportfs -o fsid=0,insecure,no_subtree_check gss/krb5p:/exports exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/opt exportfs -o rw,nohide,insecure,no_subtree_check gss/krb5p:/exports/etc

Dans cet exemple, on fournit aux clients de multiples systèmes de fichiers à monter, en utilisant l’option--bind.