| 
NFS est un service très utilisé, il permet pour un client d'utiliser un répertoire sur un serveur distant
                de la même façon que s'il s'agissait d'une partition locale. Les trois fichiers de configuration 
                principaux sont /etc/exports, /etc/hosts.deny et /etc/hosts.allow.installation de NFS
| ___________________________________________________________________ |  | Installation |  
| Système | commande d'installation | démarrage du service |  | RedHat | rpm -Uvh  nfs-utils-*.rpm | service nfs start |  | Mandrake | urpmi nfs-utils | /etc/init.d/nfsd start |  | Debian | apt-get install nfs | /etc/init.d/nfsd start |  | OpenBSD | par defaut |  |  
Le  fichier /etc/exports sert de liste de contrôle d'accès
                pour les systèmes de fichiers à exporter aux clients  NFS.
                Il est utilisé à la fois  par le démon de montage NFS
                mountd(8) et par le démon serveur NFS nfsd(8).
                
                Le format de ce fichier est similaire à celui de SunOS,
                exports, avec plusieurs  options supplémentaires. Chaque
                ligne correspond à un point de montage, et à une liste  de
                machines, ou de noms de sous-réseaux autorisés à monter le
                système de  fichiers situé  en ce  point.  Une  liste
                éventuelle  de paramètres est mise entre parenthèses après
                le nom de machine. Les lignes blanches sont  ignorées,  et
                un  #  indique un commentaire s'étendant jusqu'à la fin de
                la ligne.
| ___________________________________________________________________ |  | Configuration |  
| ________________________________________________________________ |  | Options générales: |  |  |  
| secure | Cette option réclame que les requêtes proviennent d'un port 
		  Internet de numéro inférieur à IPPORT_RESERVED (1024). Elle 
		  est en  service  par défaut. Pour la désactiver, introduire le mot-clé insecure. |  | ro | N'autorise que des requêtes en lecture-seule sur ce volume  NFS.
		  Le comportement par défaut autorise également les requêtes en écriture, ce
		  que l'on peut également mentionner explicitement en utilisant l'option rw. |  | link_relative | Convertit les liens symboliques absolus (dont le contenu commence 
		  par un slash) en lien relatifs en ajoutant le nombre nécessaire 
		  de "../"  pour  aller de l'emplacement du lien à la racine du serveur.
		  Cette option a une sémantique assez  subtile,  parfois surprenante 
		  lorsque la hiérarchie n'est pas montée à la racine. |  | link_absolute | Laisse les liens symboliques tels qu'ils sont.
		  C'est l'attitude par défaut. |  
nfsd  effectue  les  contrôles  d'accès aux  fichiers  du
                serveur en se basant sur les  UID  et  GID  fournis  avec
                chaque  requête RPC NFS. L'utilisateur s'attend à pouvoir
                accéder à ses fichiers sur le serveur NFS exactement comme
                il y accéderait sur un système de fichiers normal.| ________________________________________________________________ |  | Correspondance des UID |  |  |  Ceci  nécessite  que  les mêmes UID et GID soient utilisés
                sur le serveur et sur la machine  cliente.  Ce n'est  pas
                toujours vrai, et même parfois indésirable.
 Il est souvent très gênant que le Super-User d'une machine
                cliente soit traité comme le Super-User lorsqu'il  accède
                aux  fichiers du serveur. Pour éviter ceci, l'UID 0 (root)
                est normalement transformé en un autre UID :  par  exemple
                en UID anonyme nobody.  Ce mode opératoire s'appelle `root
                squashing' et est le comportement par défaut. On peut  le
                supprimer avec l'option no_root_squash.
 De plus, nfsd vous permet d'indiquer  des  UIDs ou  GIDs
                arbitraires qui seront transformés en  utilisateur
                anonymes. Enfin, vous pouvez même transformer les requêtes
                de  tous  les  utilisateurs  en  UIG  et GID anonymes avec
                l'option all_squash .
                
                Pour être utilisé dans des sites où les UIDs varient suivant  
                les machines, nfsd fournit une méthode de conversion
                dynamique des  UIDs  du serveur  en  UIDs  du  client  et
                inversement.   Ceci  est  mis  en  service  avec  l'option
                map_daemon et utilise le protocole RPC UGID. Il faut  que
                le  démon de conversion ugidd(8) soit actif sur le client.
                
                Voici une liste complète des options de conversion :
 
 
| root_squash | Transforme les requêtes des UID/GID 0 en  UID/GID anonymes. 
                               Ceci ne s'applique pas aux autres UID/GID sensibles comme bin. |  | no_root_squash | Ne pas transformer les UID/GID 0. Cette option est 
                                   particulièrement utiles pour les stations sans disque. |  | squash_uids | Cette option précise une liste d'UIDs ou de GIDs qui sont |  | et squash_gids | convertis  en utilisateurs anonymes. Une liste valide d'UIDs se 
                                  présente ainsi :  squash_uids-15,20,25-50
                                  Habituellement la liste à convertir est  plus  simple, comme dans :
                                  squash_uids-100 |  | all_squash | Convertit tous les UID/GID en utilisateurs anonymes. Utiles pour 
                              exporter avec NFS des  répertoires publics de FTP, des répertoires 
                              de News, etc...  L'option inverse est no_all_squash, qui s'applique 
                              par défaut. |  | map_daemon | Cette  option active la conversion dynamique des UID/GID.  
			      Chaque UID d'une requête NFS sera transformé en UID  équivalent 
                              sur le serveur, et l'UID des réponses NFS subira la transformation 
                              inverse. Ceci  nécessite que le démon rpc.ugidd(8) soit en 
                              fonctionnement sur le client. La configuration par défaut est 
                              map_identity, qui laisse les UIDs intacts. Les options de `squash' 
                              s'appliquent que la conversion dynamique soit utilisée ou non. |  
 
| anonuid | Ces options donne explicitement l'UID et le GID du compte |  | et anongid | anonyme. Ceci est surtout utiles pour les clients PC/NFS, 
                              où l'on désire que toutes les requêtes semblent provenir 
                              d'un utilisateur.  C'est le  cas de l'entrée /home/joe 
                              dans l'exemple ci-dessous, qui transforme toutes les requêtes 
                              en  UID 150 (probablement celle de l'utilisateur joe). |  
 
| ___________________________________________________________________ |  | Fichiers exemple: |  
| ________________________________________________________________ |  | fichier /etc/exports |  |  |  
| /            maitre(rw) confiance(rw,no_root_squash) |  | /projects       proj*.local.domain(rw) |  | /usr         *.local.domain(ro) |  | /home/joe       pc001(rw,all_squash,anonuid,anongid=100) |  | /pub         (ro,insecure,all_squash) |  
 
| ________________________________________________________________ |  | fichier /etc/hosts.deny |  |  |  
| On va interdire toutes les machines qui ne sont pas 
                   autorisée explicitement dans le /etc/hosts.allow. |  | ``ALL: ALL'' interdira l'accès a tous les services depuis toutes machines. |  
 
| ________________________________________________________________ |  | fichier /etc/hosts.allow |  |  |  
| portmap:192.168.1.34 |  | lockd:192.168.1.34 |  | mountd:192.168.1.34 |  | rquotad:192.168.1.34 |  | statd:192.168.1.34 |  La   première  ligne  exporte  l'ensemble  du  système  de
                fichiers vers les machines maître et confiance.  En  plus
                des  droits d'écriture, toutes conversions d'UID est abandonnée pour 
                l'hôte confiance.  La deuxième et la troisième
                lignes  montrent         des exemples de noms d'hôtes génériques.
 La quatrième ligne montre une entrée pour le client PC/NFS
                présenté plus haut.
 La  dernière  ligne exporte un répertoire public de FTP, à
                tous les hôtes dans le monde, en effectuant  les requêtes
                sous  le compte anonyme. L'option insecure permet l'accès
                aux clients dont l'implémentation  NFS  n'utilise  pas  un
                port réservé.
 
 
La philosophie reste la même néanmoins on va observer quelques petits changements
                dont voici un exemple:
| ___________________________________________________________________ |  | Sous OpenBSD |  
 
avec ``-alldirs'' pour autoriser les clients à monter n'importe quel sous répertoire.
                ``-mapall=root''  pour que toutes les modifications soient considérées comme étant faites 
                par root. ``-network 192.168.0.1'' pour n'autoriser que ``192.168.0.1'' comme client. 
                ``-mask 255.255.255.0'' pour spécifier le masque de réseaux.| /home  -alldirs -mapall=root -network 192.168.0.1 -mask 255.255.255.0 |  
 
En tant que client on peut monter un volume nfs par la commande:
| ___________________________________________________________________ |  | Utilisation |  mount -t nfs 192.168.1.217:/home/nfs /nfs
 On peut aussi l'inclure directement dans le fichier /etc/fstab:
 server:/usr/local/pub  /pub  nfs  rsize,wsize=8192,timeo=14,intr
 
Le problème de NFS est que la seule limitation que l'on peut appliquer au niveau du réseau
                est basé sur l'adresse IP du client, qui peut être usurpée par la technique du spoofing.
                Il est donc indispensable de renforcer cette sécurité par des règles  afin d'en limiter
                l'accès aux réseaux dont on peut avoir confiance.
| ___________________________________________________________________ |  | Sécurisation |  
 |