• Aucun résultat trouvé

Ressources supplémentaires

Section 6. Installation d'un serveur NFS

6.5 Ressources supplémentaires

L'administration d'un serveur NFS peut se transformer en un véritable défi. Maintes options, y compris un certain nombre qui ne sont pas mentionnées dans ce chapitre, sont disponibles pour l'export ou le montage de partages NFS. Pour obtenir de plus amples informations, consultez les sources d'information mentionnées ci-dessous.

6.5.1 Documentation installée

/usr/share/doc/nfs-utils-<version-number>/ — Remplacez <version-number> par le numéro de version du paquetage NFS installé. Ce répertoire contient de nombreuses informations sur l'implémentation de NFS sous Linux, y compris diverses configurations NFS et leur impact sur les performances au niveau du transfert de fichiers.

man mount — Contient une vue complète des options de montage aussi bien pour les configurations de serveur que celles de client NFS.

man fstab — Donne des informations détaillées sur le format du fichier /etc/fstab

utilisé pour monter les systèmes de fichiers au démarrage.

man nfs — Fournit des informations détaillées sur l'export de systèmes de fichiers spécifiques à NFS et sur les options de montage.

man exports — Montre les options couramment utilisées dans le fichier

/etc/exports lors de l'export de systèmes de fichiers NFS.

6.5.2 Sites Web utiles

http://nfs.sourceforge.net/ — La page d'accueil du projet NFS Linux et un bon endroit pour les mises à jour du statut du projet.

http://www.citi.umich.edu/projects/nfsv4/linux/ — Une ressource pour NFSv4avec le noyau Linux 2.6.

http://www.nfsv4.org — La page d'accueil du projet NFS version 4 et tous les standards associés.

http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html — Cette page décrit en détail NFSv4 utilisé avec Fedora Core 2 et le noyau 2.6 qu'il contient.

http://www.nluug.nl/events/sane2000/papers/pawlowski.pdf — Un excellent document technique sur les fonctionnalités et améliorations du protocole NFS Version 4.

6.5.3 Livres sur le sujet

Managing NFS and NIS de Hal Stern, Mike Eisler, et Ricardo Labiaga ; O'Reilly &

Associates — Ce livre constitue un excellent guide de référence pour les nombreux exports NFS et options de montage disponibles.

NFS Illustrated de Brent Callaghan ; Addison-Wesley Publishing Company — Ce livre fournit des comparaisons de NFS avec d'autres systèmes de fichiers réseau et montre, en détail, comment se déroule une communication NFS.

Guide d'administration système de Red Hat Enterprise Linux ; Red Hat, Inc. — Le chapitre Système de fichiers réseau (NFS) explique de manière concise comment configurer les clients et serveurs NFS.

Guide de sécurité de Red Hat Enterprise Linux; Red Hat, Inc. — Le chapitre Sécurité serveur explique les différentes manières de sécuriser NFS et autres services.

Travaux pratiques : partages NFS

Table of Contents Première partie Deuxième partie Troisième partie

Première partie

Vous allez configurer un service de partage de disque pour un client Unix. Vous serez, au cours du TP, serveur pour un autre binôme puis client du serveur d'un autre binôme. Vous allez créer deux répertoires partagés qui seront accessibles par le client :

/tmp sur le serveur sera accessible en lecture/écriture

/usr/share/doc sur le serveur sera accessible en lecture pour le client.

Ces répertoires seront montés respectivement sur les répertoires locaux /mnt/tempo et

/mnt/doc

Vous pourrez utiliser les commandes man exports, man mount, man showmount, man

fstab, man rpcinfo.

1. Créez sur le serveur le fichier /etc/exports, et déclarez les répertoires exportés.

Activez le service portmap. Vérifiez qu'il est bien actif.

Voici un exemple de ce que vous pouvez obtenir avec rpcinfo -p :

program no_version protocole no_port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 725 rquotad 100011 2 udp 725 rquotad 100003 2 udp 2049 nfs 100005 1 udp 1026 mountd 100005 1 tcp 1047 mountd 100005 2 udp 1026 mountd 100005 2 tcp 1047 mountd

2. Vérifiez sur le serveur les fichiers exportés avec la commande showmount -e

Attention, si vous montez une arborescence sur un répertoire local, et que ce répertoire contenait des fichiers, ces derniers seront masqués le temps du montage.

3. Créez sur le client les points de montage, montez les dossiers exportés du serveur et testez les accès à partir du client.

4. Vérifiez les permissions d'accès lecture et lecture/écriture.

5. A partir du client, créez un fichier sur le fs (file system) accessible en écriture.

6. Ouvrez une autre session sur le serveur dans un autre terminal et essayez de démonter les répertoire montés. Que se passe t-il, pourquoi ?

7. Vérifiez sur le serveur les fichiers exportés avec la commande showmount -a. 8. Démontez les systèmes de fichiers.

Deuxième partie

Le fichier /etc/fstab permet de déclarer tous les points de montage.

1. Editez et modifiez le fichier sur le client afin d'inclure les systèmes de fichiers nfs exportés par le serveur. Utilisez l'exemple que vous avez dans /etc/fstab.

2. Rajoutez les lignes nécessaires en vous servant de l'exemple ci-dessous.

serveurNFS:/usr/share/doc /mnt/doc nfs user

3. Vérifiez que les modifications que vous avez apportées dans le fichier fstab

fonctionnent.

4. Supprimez l'option user sur les lignes que vous avez mises dans le fichier fstab, enregistrez. Essayez ensuite de monter l'arborescence en utilisant un compte autre que

“ root ”. Que se passe-t-il ? 5. Restaurez l'environnement.

Troisième partie

1. Créez un utilisateur Linus sur la machine client, et donnez lui l'UID 1100. Créez un utilisateur Larry sur le serveur (UID 1100).

2. Réalisez un partage de /tmp sur le serveur, que le client montera dans /mnt.

3. Sur le client, Linus crée un fichier dans /mnt. Vérifiez son propriétaire

4. Sur le serveur, vérifiez le contenu du répertoire /tmp. A qui appartient le fichier crée ? 5. De façon théorique, pour quel utilisateur cela est il encore plus dangereux ? Quels sont

les UIDs que vous connaissez tous à l'avance ?

Consultez la page de man de exports (c'est un fichier de configuration, donc dans le chapitre 5 : man 5 exports, et plus largement man man).

6. Dans un environnement de grande confiance, vous voulez donner le droit à un root distant d'être reconnu comme root sur le partage. Comment faire ? Testez.

7. Interdisez ensuite seulement à root d'être confondu avec le root local, mais laissez les autres utilisateurs être eux mêmes. Testezxi. (Ceci est le comportement par défaut).

8. Sachant que l'UID de l'utilisateur nobody, qui existe certainement sur votre machine, est certainement 65534, trouvez une solution pour donner à toute personne se connectant l'identité de nobody. Créez un nouvel utilisateur BillG sur votre client, en vérifiant bien que son UID n'existe pas dans la sécurité locale du serveur.

9. Montez le répertoire partagé à partir du client, et testez la création et l'accès aux fichiers avec les utilisateurs BillG,Linus, et root. Que remarquez vous ?

10. Comment faire pour que tous les utilisateurs soient transformés en nobody ? Testez.

11. Vous devez maintenant offrir un partage de /tmp, mais chaque machine qui se connectera sur ce partage doit être différenciée (peu importe l'utilisateur de cette machine). On vous propose de créer sur le serveur des utilisateurs client1, client2 et

client3. Chaque machine qui se connectera se verra affublée de chacun de ces comptes (tout utilisateur de la machine client PC1 sera l'utilisateur client1 sur le serveur, tout utilisateur du pc client PC2 sera reconnu comme utilisateur client2 sur le serveur, et ainsi de suite. Créez le fichier /etc/exports correspondant à ces contraintes. Testez, et validez votre solution.