  Linux NFS HOWTO
  Nicolai Langfeldt janl@linpro.no
  v1.0, 1er octobre 1999

  (30 novembre 1999. Adaptation franaise par Christophe Deleuze,
  Christophe.Deleuze@lip6.fr).  HOWTO dcrivant l'installation de
  serveurs et clients NFS.
  ______________________________________________________________________

  Table des matires
























































  1. Prambule

     1.1 Blabla lgal
     1.2 Dngation
     1.3 Retour
     1.4 Autre blabla

  2. LISEZMOI.d_abord

  3. Installer un serveur NFS

     3.1 Conditions pralables
     3.2 Premiers pas
     3.3 Le portmapper
     3.4 Mountd et nfsd

  4. Installer un client NFS

     4.1 Options de montage
     4.2 Optimisation de NFS

  5. NFS sur les lignes  faible dbit

  6. NFS et la scurit

     6.1 Scurit du client
     6.2 Scurit du serveur : nfsd
     6.3 Scurit du serveur : le portmapper
     6.4 NFS et les coupent-feu (firewalls)
     6.5 Rsum

  7. ``Checklist'' mount

  8. FAQ

  9. Exporter un systme de fichiers

     9.1 IRIX, HP-UX, Digital-UNIX, Ultrix, SunOS 4 (Solaris 1), AIX
     9.2 Solaris 2

  10. NFS sous Linux 2.2

     10.1 Le client
     10.2 Le serveur

  11. Serveur NFS sur une disquette

     11.1 Introduction
     11.2 Attentes
     11.3 Matriel ncessaire
     11.4 Configuration du serveur
        11.4.1 Dmarrer le serveur NFS temporaire
        11.4.2 Monter la disquette et le cdrom
        11.4.3 Configurer le rseau sur le serveur provisoire
        11.4.4 Configurer le volume NFS
     11.5 Lancer le serveur NFS
        11.5.1 Prt, commencez l'installation
     11.6 Problmes
        11.6.1 Rien ici pour l'instant
     11.7  faire
        11.7.1 Disquette DOS
        11.7.2 Commandes RPC

  12. PC-NFS


  ______________________________________________________________________

  11..  PPrraammbbuullee

  11..11..  BBllaabbllaa llggaall

  (C)opyright 1997-1999 Nicolai Langfeldt et Ron Peters. Si vous
  modifiez ce document signalez le dans le copyright, sa distribution
  est libre  condition de conserver ce paragraphe. La section FAQ est
  base sur la FAQ NFS compile par Alan Cox. La section _C_h_e_c_k_l_i_s_t est
  base sur une _c_h_e_c_k_l_i_s_t des problmes de mount compile par IBM
  Corporation. La section ``NFS serveur sur disquette'' a t crite par
  Ron Peters.

  (C)opyright 1997-1999 Christophe Deleuze pour la version franaise. Si
  vous lisez ce document sous le pont de l'Alma, veillez  respecter les
  limitations de vitesse.


  11..22..  DDnnggaattiioonn

  Ni Nicolai Langfeldt, ni Ron Peters ni leurs employeurs, ni qui que ce
  soit, n'assume de responsabilit pour les consquences que les
  instructions de ce document peuvent avoir. Si vous choisissez de
  suivre ces instructions, bonne chance !



  11..33..  RReettoouurr

  Ce document ne sera jamais termin, merci de m'envoyer par mail vos
  problmes et russites, cela pourra amliorer ce HOWTO. Envoyez
  argent, commentaires et questions  janl@math.uio.no, ou
  rpeters@hevanet.com pour ce qui concerne les serveurs NFS sur
  disquette. Si vous m'envoyez un mail, par piti, _v__r_i_f_i_e_z que
  l'adresse de retour soit correcte et fonctionne. Vous ne vous imaginez
  pas combien de mes rponses sont revenues  cause d'une adresse
  incorrecte.


  11..44..  AAuuttrree bbllaabbllaa

  Si vous voulez traduire ce HOWTO merci de me le signaler, que je
  puisse savoir en quels langages j'ai t publi :-). [Ndt : c'est
  fait...]

  Remerciements  Olaf Kirch pour m'avoir convaincu d'crire ceci, puis
  fourni de bonnes suggestions.

  Les commentaires sur la traduction sont  envoyer  Christophe
  Deleuze, Christophe.Deleuze@lip6.fr.



  22..  LLIISSEEZZMMOOII..dd__aabboorrdd

  NFS, le systme de fichiers par rseau, a trois caractristiques
  importantes :


    il permet le partage de fichiers sur un rseau ;

    il marche suffisamment bien ;

    il cre tout un tas de problmes de scurit bien connus des
     crackers qui peuvent facilement les exploiter pour obtenir l'accs
     (lecture, criture et effacement)  tous vos fichiers.


  Je parlerai de ces deux aspects dans ce HOWTO. Lisez bien la section
  scurit et vous supprimerez quelques risques stupides. Ne dites pas
  que je ne vous ai pas prvenus. Les passages sur la scurit sont
  parfois assez techniques et demandent quelques connaissances en rseau
  IP. Si vous ne connaissez pas les termes utiliss vous pouvez soit
  consulter le HOWTO rseau, improviser ou vous procurer un livre sur
  l'administration de rseau TCP/IP pour vous familiariser avec TCP/IP.
  C'est une bonne ide de toutes faons si vous administrez des machines
  UNIX/Linux. Un trs bon livre sur le sujet est _T_C_P_/_I_P _N_e_t_w_o_r_k
  _A_d_m_i_n_i_s_t_r_a_t_i_o_n par Craig Hunt, publi par O'Reilly & Associates, Inc.
  Et quand vous l'aurez lu et compris, vous vaudrez plus cher sur le
  march du travail, vous ne pouvez qu'y gagner :-)


  Il y a deux sections pour vous aider  rgler vos problmes NFS, la
  _M_o_u_n_t _C_h_e_c_k_l_i_s_t et les _F_A_Q_s. Jetez-y un oeil si quelque chose ne
  marche pas comme prvu.


  Si vous voulez/avez besoin de le rcuprer et compiler vous mme, le
  site de rfrence pour le nfsd Linux 2.0 est ftp.mathematik.th-
  darmstadt.de:/pub/linux/okir.


   propos de NFS sous Linux 2.2 voir ``la section sur Linux 2.2''.



  33..  IInnssttaalllleerr uunn sseerrvveeuurr NNFFSS

  33..11..  CCoonnddiittiioonnss pprraallaabblleess

  Avant de continuer  lire ce HOWTO, vous aurez besoin de pouvoir faire
  des telnet dans les deux sens entre les machines que vous utiliserez
  comme serveur et client. Si cela ne fonctionne pas, voyez le HOWTO
  rseau (NET-3) et configurez correctement le rseau.


  33..22..  PPrreemmiieerrss ppaass

  Avant de faire quoi que ce soit d'autre, il nous faut un serveur NFS
  install. Si vous faites partie d'un dpartement rseau d'une
  universit ou autre, il y a probablement un grand nombre de serveurs
  NFS qui tournent dj. Si votre but est d'utiliser un serveur dj
  install alors vous pouvez sauter  ``la section sur l'installation
  d'un client NFS''.

  Si vous devez installer un serveur sur une machine non Linux vous
  devrez lire les pages de manuel du systme pour trouver comment
  configurer le serveur NFS et l'exportation des systmes de fichiers
  par NFS. Ce HOWTO contient une section dcrivant les manipulations
  ncessaires sur divers systmes. Ceci fait, vous pourrez passer  la
  section suivante. Ou continuer  lire cette section vu que certaines
  des choses que je vais dire sont pertinentes quel que soit le type de
  machine que vous utilisez comme serveur.

  Si vous utilisez Linux 2.2, voyez ``la section sur Linux 2.2'' avant
  de passer  la suite.

  Nous allons maintenant configurer tout un tas de programmes.



  33..33..  LLee ppoorrttmmaappppeerr

  Le portmapper de Linux est appel soit portmap soit rpc.portmap. La
  page de manuel sur mon systme dit que c'est un convertisseur de port
  DARPA vers numro de programme RPC. C'est l que se trouve la premire
  faille de scurit. La gestion de ce problme est dcrite  la section
  ``sur la scurit'', que, encore une fois, je vous invite trs
  fortement  lire.

  Lancez le portmapper. Il devrait tre dans le rpertoire /usr/sbin
  (sur quelques machines il est appel rpcbind). Vous pouvez le lancer 
  la main pour cette fois mais il devra tre lanc  chaque dmarrage de
  la machine, il faudra donc crer ou diter les scripts rc. Les scripts
  rc sont dcrits dans la page de manuel init, ils sont gnralement
  dans /etc/rc.d, /etc/init.d ou /etc/rc.d/init.d. S'il y a un script
  qui a un nom du genre inet, c'est probablement le script  diter.
  Mais ce qu'il faut crire ou faire sort du cadre de ce HOWTO. Lancez
  portmap, et vrifiez qu'il tourne avec ps -aux, puis rpcinfo -p. Il y
  est ? Benissimo.



  Encore une chose. L'accs distant  votre portmapper est contrl par
  le contenu de vos fichiers /etc/hosts.allow et /etc/hosts.deny. Si
  rcpinfo -p choue alors que le portmapper tourne, vrifiez ces
  fichiers. Voyez la section ``sur la scurit'' pour les dtails
  concernant ces fichiers.


  33..44..  MMoouunnttdd eett nnffssdd

  Les prochains programmes  lancer sont mountd et nfsd. Mais d'abord il
  faut diter un autre fichier, /etc/exports. Disons que je veux que le
  systme de fichiers /mn/eris/local qui est sur la machine eris soit
  disponible sur la machine apollon. Je l'indique dans /etc/exports sur
  eris :


  ______________________________________________________________________
  /mn/eris/local  apollon(rw)
  ______________________________________________________________________



  La ligne ci-dessus donne  apollon un accs en lecture/criture sur
  /mn/eris/local. Au lieu de rw on pourrait mettre ro pour _r_e_a_d _o_n_l_y
  (lecture seule, c'est la valeur par dfaut). D'autres options
  existent, et je parlerai de quelques unes lies  la scurit plus
  loin. Elles sont toutes dcrites dans la page de manuel exports qu'il
  faut lire au moins une fois dans sa vie. Il y a de meilleures faons
  de faire que de lister tous les hosts dans le fichier exports. Peuvent
  tre autoriss  monter un systme de fichiers NFS, des groupes
  rseaux (_n_e_t _g_r_o_u_p_s) si vous utilisez NIS (ou NYS, auparavant connu
  sous le nom YP), des noms de domaines avec jokers et des sous rseaux
  IP. Mais il faudra vrifier qui peut obtenir un accs au serveur avec
  ce type d'autorisations groupes.


  Note : ce fichier exports n'utilise pas la mme syntaxe que d'autres
  Unix. Ce HOWTO contient une section sur la faon dont les autres Unix
  exportent leurs fichiers.

  Maintenant nous sommes prts  lancer mountd (ou peut-tre s'appelle-
  t-il rpc.mountd), puis nfsd (qui s'appelle peut-tre rpc.nfsd). Ils
  liront tous deux le fichier exports.

  Si vous modifiez /etc/exports, vous devrez vous assurer que nfsd et
  mountd savent que le fichier a chang. La faon traditionnelle est de
  lancer exportfs. Beaucoup de distributions Linux n'ont pas le
  programme exportfs. Si c'est le cas sur votre machine, vous pouvez
  installer ce script :


  ______________________________________________________________________
  #!/bin/sh
  killall -HUP /usr/sbin/rpc.mountd
  killall -HUP /usr/sbin/rpc.nfsd
  echo Volumes NFS rexports
  ______________________________________________________________________



  Sauvez le dans /usr/sbin/exportfs par exemple, et n'oubliez pas de lui
  appliquer chmod a+rx. Dsormais, chaque fois que vous changez votre
  fichier exports, lancez ensuite exportfs en root.

  Maintenant, vrifiez que mountd et nfsd fonctionnent correctement.
  D'abord avec rpcinfo -p. Il devrait donner quelque chose du genre :


  ______________________________________________________________________
     program vers proto   port
      100000    2   tcp    111  portmapper
      100000    2   udp    111  portmapper
      100005    1   udp    745  mountd
      100005    1   tcp    747  mountd
      100003    2   udp   2049  nfs
      100003    2   tcp   2049  nfs
  ______________________________________________________________________



  On voit que le portmapper a annonc ses services, de mme que mountd
  et nfsd.

  Si vous obtenez : rpcinfo: can't contact portmapper: RPC: Remote
  system error - Connection refused, RPC_PROG_NOT_REGISTERED ou quelque
  chose du style c'est que le portmapper ne tourne pas. OU, vous avez
  quelques chose dans /etc/hosts.{allow,deny} qui interdit au portmapper
  de rpondre, voyez ``la section scurit''  ce propos. Si vous
  obtenez No remote programs registered alors soit le portmapper ne veut
  pas vous parler, soit quelque chose ne marche pas. Tuez nfsd, mountd
  et le portmapper et essayez de recommencer.

  Aprs avoir vrifi que le portmapper rend compte des services vous
  pouvez vrifier aussi avec ps. Le portmapper continuera  afficher les
  services mme si les programmes qui les offrent ont crash. Il vaut
  donc mieux vrifier par ps si quelque chose ne marche pas.

  Bien sur, vous devrez modifier vos fichiers systmes rc pour lancer
  mountd et nfsd au dmarrage de la mme faon que le portmapper. Il y a
  de trs fortes chances que les scripts existent dj sur votre
  machine, vous aurez juste  dcommenter les bonnes lignes ou les
  activer pour les bons _r_u_n_l_e_v_e_l_s (pardon niveaux d'excution) d'init.

  Quelques pages de manuel avec lesquelles vous devriez tre familier :
  portmap, mountd, nfsd et exports.

  Bon, si vous avez tout fait exactement comme j'ai dit vous tes prts
   enchaner sur le client NFS.


  44..  IInnssttaalllleerr uunn cclliieenntt NNFFSS

  Tout d'abord il faudra compiler un noyau avec le systme de fichiers
  NFS, soit compil dans le noyau, soit disponible sous forme de module.
  Si vous n'avez encore jamais compil un noyau vous aurez peut tre
  besoin de consulter le HOWTO du noyau. Si vous utilisez une
  distribution trs cool (comme Chapeau Rouge) et que vous n'avez jamais
  trifouill le noyau (pas toucher toucher) il y a des chances que NFS
  soit automagiquement disponible.

  Vous pouvez maintenant,  l'invite (prompt) du root, entrer la
  commande mount approprie et le systme de fichiers apparatra.
  Continuons avec l'exemple de la section prcdente, nous voulons
  monter /mn/eris/local depuis eris. La commande est :


  ______________________________________________________________________
  mount -o rsize=1024, wsize=1024 eris:/mn/eris/local /mnt
  ______________________________________________________________________



  Nous reviendrons plus tard sur les options rsize et wsize. Le systme
  de fichiers est maintenant disponible sous /mnt et vous pouvez faire
  un cd sur lui, puis un ls et regarder les fichiers individuellement.
  Vous remarquerez que ce n'est pas aussi rapide qu'avec un systme de
  fichiers local, mais beaucoup plus pratique que ftp. Si, au lieu de
  monter le systme de fichiers, mount renvoie un message d'erreur comme
  mount: eris:/mn/eris/local failed, reason given by server: Permission
  denied alors le fichier exports est incorrect, ou vous avez oubli de
  lancer exportfs aprs avoir modifi le fichier exports. S'il dit
  mount: clntudp_ipdate: RPC: Program not registered cela signifie que
  nfsd ou mountd ne tourne pas sur le serveur, ou que vous avez le
  problme avec les fichiers hosts.{allow,deny} mentionn plus haut.

  Pour vous dbarrasser du systme de fichiers, vous pouvez faire :


  ______________________________________________________________________
  umount /mnt
  ______________________________________________________________________



  Pour que le systme monte automatiquement un systme de fichiers NFS
  au dmarrage, ditez /etc/fstab de la faon habituelle. Par exemple
  avec une ligne comme celle-ci :


  ______________________________________________________________________
  # device       mountpoint    fs-type    options           dumps  sfckorder
  ...
  eris:/mn/eris/local   /mnt   nfs     rsize=1024,wsize=1024   0   0
  ...
  ______________________________________________________________________



  C'est presque tout ce qu'il y a  savoir. Vous pouvez jeter un coup
  d'oeil  la page de manuel nfs. Continuons plize.






  44..11..  OOppttiioonnss ddee mmoonnttaaggee

  Il y a trois comportements principaux des clients NFS en cas de chute
  du serveur qui sont spcifis par les options de montage :


     ssoofftt
        Le client NFS renverra une erreur au processus concern si aprs
        quelques essais le serveur NFS persiste  ne pas rpondre. Si
        vous voulez utiliser cette option, vous devez vrifier que votre
        logiciel la gre correctement. Je ne recommande pas ce rglage,
        c'est un bon moyen de perdre des donnes et corrompre des
        fichiers. En particulier, n'utilisez pas a pour les disques o
        sont stocks vos mails (si vous tenez  vos mails).


     hhaarrdd
        Le client NFS ressaiera infiniment jusqu' ce qu'il soit tu.
        Les oprations reprendront normalement si le serveur NFS se
        rtablit ou redmarre. Le client ne pourra pas tre interrompu
        ou tu.


     hhaarrdd,,iinnttrr
        Comme hard, mais Ctrl-C tuera le processus bloqu. Dans quelques
        cas, notament un disque /usr/spool/mail mont par NFS cela ne
        changera rien car le shell ignore le Ctrl-C quand il teste si
        vous avez du mail. Je recommande cette option pour ttoouuss les
        systmes de fichiers NFS, y compris le _s_p_o_o_l du mail.



  Reprenons l'exemple prcdent, votre entre fstab est maintenant :


  ______________________________________________________________________
  # device       mountpoint   fs-type    options            dumps  sfckorder
  ...
  eris:/mn/eris/local   /mnt  nfs   rsize=1024,wsize=1024,hard,intr 0   0
  ...
  ______________________________________________________________________





  44..22..  OOppttiimmiissaattiioonn ddee NNFFSS

  Normalement, si les options rsize et wsize ne sont pas prcises, NFS
  crira et lira par blocs de 4096 ou 8192 octets. Mais certaines
  combinaisons de noyau Linux et cartes rseau ne peuvent pas
  fonctionner avec ces valeurs, de plus, mme si cela marche, cela peut
  ne pas tre optimal du tout. Il nous faudra donc exprimenter et
  trouver les valeurs de rsize et wsize qui fonctionnent et donnent les
  transferts les plus rapides. Vous pouvez tester la vitesse obtenue
  avec diffrentes valeurs des options avec des commandes simples. La
  commande mount ci-dessus ayant t excute, si vous avez l'accs en
  criture sur le disque vous pouvez tester les performances en criture
  squentielle :


  ______________________________________________________________________
  time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096
  ______________________________________________________________________


  Ceci cre un fichier de 64 Mo ne contenant que des 0. Faites le
  quelques (5-10?) fois et prenez la moyenne des temps. C'est le temps
  `elapsed' ou `wall clock' qui est le plus intressant. Ensuite vous
  pouvez tester les performances en lecture en relisant le fichier :


  ______________________________________________________________________
  time dd if=/mnt/testfile of=/dev/null bs=16k
  ______________________________________________________________________



  faites le quelques fois et prenez la moyenne. Puis dmontez (umount)
  et remontez (mount) avec des valeurs plus grandes pour rsize et wsize.
  Il vaut mieux prendre des multiples de 1024, et probablement pas plus
  grand que 16384 octets, car les gros blocs ralentissent les accs
  alatoires. Immdiatement aprs avoir remount avec une taille
  suprieure, placez vous (cd) dans le systme de fichiers et faites des
  trucs comme ls, explorez un peu pour vrifier que tout est bien
  normal. Si la valeur de rsize/wsize est trop grande, les symptmes
  sont _v_r_a_i_m_e_n_t bizarres et pas vidents. Un symptme typique est une
  liste de fichiers donne par ls incomplte sans aucun message
  d'erreur. Ou la lecture de fichier qui choue mystrieusement et sans
  message d'erreur. Aprs vous tre assurs que les wsize/rsize choisis
  fonctionnent, vous pouvez faire les tests de rapidit. Diffrentes
  plateformes de serveur auront peut-tre des tailles optimales
  diffrentes. SunOS et Solaris sont rputs pour tre beaucoup plus
  rapides avec une taille de 4096 octets.


  Les noyaux Linux rcents (depuis 1.3) font parfois des lectures
  anticipes (_r_e_a_d _a_h_e_a_d) pour des rsizes suprieurs ou gaux  la
  taille de page de la machine. Sur les processeurs Untel la taille de
  la page est de 4096 octets. La lecture anticipe augmentera
  _s_e_n_s_i_b_l_e_m_e_n_t les performances en lecture. Sur une machine Untel on
  devrait donc choisir un rsize de 4096 si c'est possible.


  Un truc pour augmenter les performances d'criture de NFS est
  d'invalider les critures synchrones sur le serveur. Les
  spcifications de NFS disent que les requtes d'criture de NFS ne
  doivent pas tre considres comme termines avant que les donnes ne
  soient sur un mdium non versatile (normalement le disque). Ceci
  rduit les performances  l'criture, les critures asynchrones sont
  plus rapides. Le nfsd Linux ne fait pas d'critures synchrones car
  l'implmentation du systme de fichiers ne s'y prte pas, mais sur les
  serveurs non Linux vous pouvez augmenter les performances de cette
  faon dans votre fichier exports :


  ______________________________________________________________________
  /dir    -async, access=linuxbox
  ______________________________________________________________________




  ou quelque chose du genre. Rfrez vous  la page de manuel exports de
  la machine concerne. Notez que ceci augmente les risques de perte de
  donnes.






  55..  NNFFSS ssuurr lleess lliiggnneess  ffaaiibbllee ddbbiitt

  Les lignes lentes ( faible dbit) comprennent les modems, RNIS et
  aussi sans doute les autres connexions longue distance.


  Cette section est base sur la connaissance des protocoles utiliss
  mais pas sur des exprimentations. Faites moi savoir si vous essayez
  ceci ;-)


  La premire chose  retenir est que NFS est un protocole lent. Il a un
  grand _o_v_e_r_h_e_a_d (sur-cot en bande passante). Utiliser NFS, c'est
  presque comme utiliser kermit pour transfrer des fichiers. Il est
  _l_e_n_t. Presque tout est plus rapide que NFS. FTP est plus rapide. HTTP
  est plus rapide. rcp est plus rapide. ssh est plus rapide.


  Vous voulez toujours l'essayer ? Ok.


  Par dfaut NFS est paramtr pour des lignes rapides et  faible
  latence. Si vous utilisez les paramtres par dfaut sur des lignes 
  grande latence cela peut provoquer des erreurs, des annulations, des
  rtrcissements de fichiers, et des comportements bizarres.


  La premire chose  faire est de ne _p_a_s utiliser l'option de montage
  soft. Les temporisations retourneront des erreurs au logiciel, qui,
  dans l'immense majorit des cas, ne saura pas quoi en faire. C'est une
  bonne faon d'avoir des problmes bizarres. Utilisez plutt l'option
  de montage hard. Quand hard est actif les temporisations dclenchent
  des essais infinis au lieu d'annuler ce que le logiciel tait en train
  de faire (quoi que ce soit). C'est ce que vous voulez. Vraiment.


  La deuxime chose  faire est d'ajuster les options de montage timeo
  et retrans. Elles sont dcrites dans la page de manuel nfs(5), en
  voici un extrait (version franaise) :



























  ______________________________________________________________________
         timeo=n        La valeur,  en  dixiemes  de  secondes,  du
                        delai   avant  de  declencher  la  premiere
                        retransmission d'une RPC.   La  valeur  par
                        defaut  est 7/10 de seconde. Apres une pre
                        miere expiration, le delai  est  double  et
                        l'on recommence les retransmissions jusqu'a
                        ce que le delai atteigne la valeur maximale
                        de 60 secondes, ou que le nombre maximal de
                        retransmission soit depasse.  Il se produit
                        alors  une  erreur  d'expiration majeure de
                        delai.  Si le systeme est monte  "en  dur",
                        les  retransmissions  reprendront a nouveau
                        indefiniment.

                        On peut ameliorer les performances en  aug
                        mentant  le delai sur un  reseau charge, si
                        le serveur est un  peu  lent,  ou  si  l'on
                        traverse plusieurs routeurs ou passerelles.

         retrans=n      Le  nombre  d'expirations  mineures  et  de
                        retransmissions  qui  doivent  se  produire
                        avant de declencher une expiration majeure.
                        La  valeur  par  defaut  est  3 expirations
                        mineures.  Quand  une  erreur  d'expiration
                        majeure  se  produit,  soit l'operation est
                        abandonnee, soit  un  message  "server  not
                        responding" est affiche sur la console.
  ______________________________________________________________________




  En d'autres mots : si une rponse n'est pas reue avant la
  temporisation de 0,7 seconde (700 ms), le client NFS rptera la
  requte et doublera la temporisation  1,4 seconde. Si la rponse
  n'arrive pas dans les 1,4 seconde, la requte est rpte  nouveau et
  la temporisation est double  2,8 secondes.


  La vitesse de la ligne peut tre mesure avec un ping ayant vos
  valeurs de rsize/wsize comme taille de paquet.


  ______________________________________________________________________
  $ ping -s 8192 lugulbanda
  PING lugulbanda.uio.no (129.240.222.99): 8192 data bytes
  8200 bytes from 129.240.222.99: icmp_seq=0 ttl=64 time=15.2 ms
  8200 bytes from 129.240.222.99: icmp_seq=1 ttl=64 time=15.9 ms
  8200 bytes from 129.240.222.99: icmp_seq=2 ttl=64 time=14.9 ms
  8200 bytes from 129.240.222.99: icmp_seq=3 ttl=64 time=14.9 ms
  8200 bytes from 129.240.222.99: icmp_seq=4 ttl=64 time=15.0 ms

  --- lugulbanda.uio.no ping statistics ---
  5 packets transmitted, 5 packets received, 0% packet loss
  round-trip min/avg/max = 14.9/15.1/15.9 ms
  ______________________________________________________________________




  Le temps indiqu est celui que le paquet du ping a pris pour aller et
  revenir de lugulbanda. 15 ms, c'est assez rapide. Sur une ligne  28
  800 bps vous pouvez vous attendre  une valeur de l'ordre de 4000-5000
  ms, et si la ligne est charge ce temps sera encore plus lev,
  facilement le double. En gnral, la latence augmente avec la taille
  des paquets et la charge de la ligne. Si vous comptez utiliser FTP et
  NFS en mme temps il faudra mesurer les temps du ping pendant un
  transfert FTP et augmenter timeo en accord avec la latence de votre
  ligne.


  66..  NNFFSS eett llaa ssccuurriitt

  Je ne suis en aucun cas un expert en scurit informatique. Mais j'ai
  tran dans le secteur et j'ai un _p_e_t_i_t conseil pour ceux qui se
  proccupent de la scurit. Mais attention. Ce n'est pas absolument
  pas une liste complte des problmes lis  NFS et si vous pensez tre
  en scurit une fois que vous avez lu et mis en pratique tout ceci
  alors j'ai un pilier de pont (presque neuf)  vous vendre.


  Cette section n'a probablement pas d'intrt si vous tes sur un
  rseau _f_e_r_m_ o vous avez confiance en tous les utilisateurs, et que
  personne en qui vous n'avez pas confiance ne peut obtenir un accs sur
  les machines du rseau. I.e., il ne devrait y avoir aucun moyen de se
  connecter  votre rseau depuis l'extrieur et il ne devrait tre
  reli  aucun autre rseau o vous n'avez pas confiance en tous les
  utilisateurs et en sa scurit. Vous pensez que je suis parano ? Pas
  du tout. C'est un conseil de scurit _d_e _b_a_s_e. Et rappelez-vous que
  c'est juste le commencement. Un site _s__r ncessite un administrateur
  consciencieux et bien inform qui sait o trouver l'information sur
  les problmes de scurit existants ou potentiels.


  Un problme de base de NFS est que le client, si on ne lui demande pas
  le contraire, fera confiance au serveur NFS et vice versa. a peut
  tre mauvais. Cela signifie que si le compte root du serveur est cass
  (_b_r_o_k_e_n _i_n_t_o) il peut tre trs facile de casser le compte root du
  client. Et vice versa. Il y a quelques moyens de grer ce problme sur
  lesquels nous reviendrons.


  Les documents consultatifs (_a_d_v_i_s_o_r_i_e_s) du CERT sur NFS sont une bonne
  source d'information, la plupart des problmes (et des solutions)
  voques ci-dessous sont traits dans ces documents. Voyez
  ftp.cert.org:/01-README pour une liste  jour. En voici quelques-uns
  lis  NFS (il n'y a pas  ma connaissance de version franaise) :


  ______________________________________________________________________
  CA-91:21.SunOS.NFS.Jumbo.and.fsirand                            12/06/91
       Vulnerabilities concerning Sun Microsystems, Inc. (Sun) Network
       File System (NFS) and the fsirand program.  These vulnerabilities
       affect SunOS versions 4.1.1, 4.1, and 4.0.3 on all architectures.
       Patches are available for SunOS 4.1.1.  An initial patch for SunOS
       4.1 NFS is also available. Sun will be providing complete patches
       for SunOS 4.1 and SunOS 4.0.3 at a later date.

  CA-94:15.NFS.Vulnerabilities                                    12/19/94
       This advisory describes security measures to guard against several
       vulnerabilities in the Network File System (NFS). The advisory was
       prompted by an increase in root compromises by intruders using tools
       to exploit the vulnerabilities.

  CA-96.08.pcnfsd                                                 04/18/96
       This advisory describes a vulnerability in the pcnfsd program (also
       known as rpc.pcnfsd). A patch is included.
  ______________________________________________________________________



  66..11..  SSccuurriitt dduu cclliieenntt

  Du ct client il y a quelques options de mount qui permettent de ne
  pas faire trop confiance au serveur. L'option nosuid interdit le
  dmarrage de programmes suid depuis le systme de fichiers NFS. C'est
  une option  utiliser systmatiquement, car elle empche le root du
  serveur de crer un fichier suid sur le systme de fichiers NFS, puis
  de se loger dans le client en utilisateur et de lancer le programme
  suid pour devenir root sur le client. Il est aussi possible
  d'interdire l'excution des fichiers du systme de fichiers NFS avec
  l'option noexec. Mais ceci est beaucoup moins utile que nosuid car le
  systme de fichiers contiendra trs probablement au moins _q_u_e_l_q_u_e_s
  scripts ou programmes  excuter. Ces options se rentrent dans la
  colonne d'options, avec wsize et rsize, spares par des virgules.



  66..22..  SSccuurriitt dduu sseerrvveeuurr :: nnffssdd

  Du ct serveur on peut ne pas faire confiance au root du client, avec
  l'option root_squash (rembarrage du root :-) dans le fichier exports :


  ______________________________________________________________________
  /mn/eris/local apollon(rw, root_squash)
  ______________________________________________________________________



  Dans ce cas, si un utilisateur du client avec l'UID 0 essaye d'accder
  (en lecture, criture ou effacement) au systme de fichiers, le
  serveur remplace l'UID par celui de l'utilisateur `nobody' du serveur.
  Ceci signifie que l'utilisateur root du client ne peut
  accder/modifier les fichiers du serveur que seul le root du serveur
  peut accder/modifier. C'est bien, et vous aurez probablement 
  utiliser cette option sur tous les systmes de fichiers que vous
  exportez. J'en entends un qui me dit : ``Mais l'utilisateur root du
  client peut toujours utiliser 'su' pour devenir n'importe qui et
  accder  ses fichiers !'' Et l je rponds : ``Oui, c'est comme a,
  c'est Unix''. Ceci a une consquence importante : tous les fichiers et
  binaires importants devraient appartenir  root, et pas bin ou un
  compte autre que root, car le seul compte auquel le root du client ne
  peut pas accder est le compte root du serveur. Plusieurs autres
  options permettant de ne pas faire confiance  qui ne vous plait pas
  sont numres dans la page de manuel nfsd. Il y a aussi des options
  pour rembarrer (_t_o _s_q_u_a_s_h) des intervalles d'UID ou GID.

  Il est important aussi de s'assurer que nfsd vrifie que toutes les
  requtes viennent d'un port privilgi. S'il accepte les requtes de
  n'importe quel port du client, un utilisateur quelconque peut excuter
  un programme qu'il est facile de se procurer sur l'Internet. Il parle
  le protocole NFS et pourra prtendre tre n'importe qui et tre cru.
  a fait peur hein ? Le nfsd Linux effectue cette vrification par
  dfaut, sur d'autres systmes d'exploitation il faut la valider. a
  devrait tre dcrit dans les pages du manuel de ce systme.


  Autre chose. N'exportez jamais un systme de fichiers vers `localhost'
  ou 127.0.0.1.  Croyez-moi.



  66..33..  SSccuurriitt dduu sseerrvveeuurr :: llee ppoorrttmmaappppeerr

  Le portmapper de base, en combinaison avec nfsd prsente un problme
  de conception qui rend possible de rcuprer les fichiers d'un serveur
  NFS sans avoir aucun privilge. Heureusement le portmapper utilis par
  la plupart des distributions Linux est relativement sr vis  vis de
  cette attaque, et peut tre scuris en configurant les listes d'accs
  au moyen de deux fichiers.


  Toutes les distributions de Linux ne sont pas gales. Certaines
  apparemment  jour n'incluent _p_a_s un portmapper sur, mme aujourd'hui,
  alors que le problme est connu depuis plusieurs annes. Au moins une
  distribution contient mme la page de manuel pour un portmapper sr
  alors que le portmapper effectivement install n'est _p_a_s sr. Pour
  dterminer simplement si votre portmapper est le bon ou pas, lancez
  strings(1) et voyez s'il lit les fichiers appropris /etc/hosts.deny
  et /etc/hosts.allow. Si votre portmapper est /usr/sbin/portmap
  excutez la commande strings /usr/sbin/portmap | grep hosts. Sur ma
  machine cela donne :


  ______________________________________________________________________
  /etc/hosts.allow
  /etc/hosts.deny
  @(#) hosts_ctl.c 1.4 94/12/28 17:42:27
  @(#) hosts_access.c 1.20 96/02/11 17:01:27
  ______________________________________________________________________



  Tout d'abord, ditons /etc/hosts.deny. Il devrait contenir la ligne :


  ______________________________________________________________________
  portmap: ALL
  ______________________________________________________________________



  qui refusera l'accs  _q_u_i_c_o_n_q_u_e. Maintenant qu'il est ferm, lancez
  rpcinfo -p pour vrifier qu'il lit et se conforme au contenu du
  fichier. rpcinfo ne devrait rien renvoyer, ou peut tre un message
  d'erreur. Il ne devrait _p_a_s y avoir besoin de relancer le portmapper.


  Fermer le portmapper  tous le monde est peut tre un peu excessif,
  nous r-ouvrons donc quelque peu l'accs en ditant le fichier
  /etc/hosts.allow. Mais il faut d'abord savoir ce qu'on va y mettre. 
  la base, il devrait contenir les noms de toutes les machines qui
  doivent avoir accs  votre portmapper. Sur le systme Linux moyen  il
  y a trs peu de machines qui ont une bonne raison de demander cet
  accs. Le portmapper administre nfsd, mountd, ypbind/ypserv, pcnfsd et
  les services ``en r'' comme ruptime et rusers. Parmis ceux-ci, seuls
  nfsd, mountd, ypbind/ypserv et peut-tre pcnfsd ont de l'importance.
  Toutes les machines qui ont besoin d'accder  ces services sur votre
  machine devraient y tre autorises. Disons que votre machine est
  129.240.223.254 et que tout ce qui vit sur le sous rseau
  129.240.223.0 doit pouvoir y accder (si ceci n'est pas clair pour
  vous, voyez le HOWTO rseau). On crit :


  ______________________________________________________________________
  portmap: 129.240.223.0/255.255.255.0
  ______________________________________________________________________



  dans hosts.allow. C'est l'adresse de rseau que vous donnez aussi  la
  commande route et le masque de rseau que vous donnez  ifconfig. Pour
  le prifrique eth0 sur cette machine ifconfig devrait donner :


  ______________________________________________________________________
  ...
  eth0      Link encap:10Mbps Ethernet  HWaddr 00:60:8C:96:D5:56
            inet addr:129.240.223.254  Bcast:129.240.223.255  Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:360315 errors:0 dropped:0 overruns:0
            TX packets:179274 errors:0 dropped:0 overruns:0
            Interrupt:10 Base address:0x320
  ...
  ______________________________________________________________________



  et netstat -rn devrait donner :


  ______________________________________________________________________
  Kernel routing table
  Destination     Gateway         Genmask         Flags Metric Ref Use    Iface
  ...
  129.240.223.0   0.0.0.0         255.255.255.0   U     0      0   174412 eth0
  ...
  ______________________________________________________________________



  (Adresse rseau dans la premire colonne)

  Les fichiers hosts.deny et hosts.allow sont dcrits dans les pages de
  manuel de mmes noms.

  IIMMPPOORRTTAANNTT : ne _r_i_e_n mettre d'autre que des adresses IP (numriques)
  dans les lignes portmap de ces fichiers. Les _h_o_s_t _n_a_m_e _l_o_o_k_u_p
  (recherche d'adresse IP (numrique)  partir de l'adresse
  alphanumrique ex. ftp.lip6.fr donne 132.227.77.2) peuvent
  indirectement dclencher une activit portmap qui dclenchera un _h_o_s_t
  _n_a_m_e _l_o_o_k_u_p qui dclenchera...

  Ceci fait, votre serveur devrait tre un peu plus solide. Le dernier
  problme (mais oui !) est que quelqu'un casse le compte root (ou boute
  MS-DOS) sur une machine de confiance et utilise ce privilge pour
  envoyer des requtes depuis un port sr en se faisant passer pour
  n'importe quel utilisateur.




  66..44..  NNFFSS eett lleess ccoouuppeenntt--ffeeuu ((ffiirreewwaallllss))

  C'est une trs bonne ide de bloquer les ports NFS et portmap dans
  votre routeur ou firewall. nfsd utilise le port 2049, que ce soit avec
  tcp ou udp. Le portmapper est au port 749 (tcp et udp) et mountd aux
  port 745 et 747 (tcp et udp). Vrifiez les ports avec la commande
  rpcinfo -p.

  Si au contraire vous voulez que NFS traverse un firewall, il existe
  des options sur les nfsd et mountd rcents pour leur spcifier le port
   utiliser. Vous pouvez donc choisir un port qui ne soit pas bloqu
  par le firewall.




  66..55..  RRssuumm

  Si vous configurez correctement votre installation portmapper/NFS avec
  hosts.allow/deny, root_squash, nosuid et les ports privilgis, vous
  vitez beaucoup des bogues connues de NFS et pouvez presque vous
  sentir en scurit au moins pour __a. Mais de toutes faons : quand un
  intrus obtient l'accs  votre rseau, il/elle peut faire apparatre
  des commandes bizarres dans votre .forward ou lire votre mail quand
  /home ou /var/spool/mail sont exports. Pour la mme raison, vous ne
  devriez jamais accder  votre cl prive PGP par NFS. Ou au moins
  vous devez savoir quel est le risque. Et maintenant vous savez un peu.

  NFS et le portmapper constituent un systme complexe et il n'est donc
  pas totalement exclu que de nouvelles bogues soient dcouvertes, soit
  dans la conception soit dans l'implmentation que nous utilisons. Il
  pourrait mme y avoir des dfauts de scurit connus, que quelqu'un
  utilise. Mais c'est la vie. Pour vous tenir au courant, vous devriez
  au moins lire les forums comp.os.linux.announce et
  comp.security.announce comme minimum absolu (en franais, consultez
  fr.comp.os.linux.annonces).



  77..  ````CChheecckklliisstt'''' mmoouunntt

  Cette section est base sur la _m_o_u_n_t _c_h_e_c_k_l_i_s_t (liste des problmes
  lis  mount) de IBM Corp. Je les remercie de m'autoriser  l'utiliser
  dans ce HOWTO. Si vous avez un problme en montant un systme de
  fichiers NFS, consultez cette liste avant de poster votre problme sur
  les niouzes. Chaque point dcrit un type de problme et sa solution.


  1. Mount rpte RPC: Program not registered


     Le portmapper tourne ?

     SSoolluuttiioonn :: lancez-le.

     mountd tourne ?

     SSoolluuttiioonn :: lancez-le.

     nfsd tourne ?

     SSoolluuttiioonn :: lancez-le.

     /etc/hosts.deny empche le portmapper de rpondre ?

     SSoolluuttiioonn :: vous pouvez enlever la rgle en question dans hosts.deny
     ou en ajouter une dans hosts.allow de faon que le portmapper soit
     autoris  vous parler.


  2. Systme de fichier non export, ou non export au client en
     question.


     SSoolluuttiioonn :: exportez le [Ndt : merci IBM !]


  3. La rsolution de noms ne s'accorde pas avec la liste des exports.


     e.g.: la liste des exports dit d'exporter vers johnmad mais le nom
     de johnmad est rsolu en johnmad.austin.ibm.com. La permission de
     monter est refuse.


     SSoolluuttiioonn :: exportez vers les deux formes du nom.


     Cela peut aussi arriver si le serveur a deux interfaces avec des
     noms diffrents et que les exports n'en spcifient qu'un.


     SSoolluuttiioonn :: exportez les deux interfaces.


     Cela peut aussi se produire si le serveur ne peut pas faire un
     lookuphostbyname ou lookuphostbyaddr (ce sont des fonctions de
     bibliothque) sur le client. Assurez-vous que le client peut faire
     host <name>; host <ip_addr>; et que les deux donnent la mme
     machine.


     SSoolluuttiioonn :: mettez de l'ordre dans la rsolution de noms.


  4. Le systme de fichiers a t mont aprs que NFS soit lanc (sur ce
     serveur). Dans ce cas le serveur exporte le point de montage sous-
     jacent, pas le systme de fichiers.


     SSoolluuttiioonn :: teignez nfsd et relancez le.


     NNoottee :: les clients qui avaient mont le point de montage sous-
     jacent auront des problmes pour y accder aprs le redmarrage.



  5. La date est trs dcale sur une ou sur les deux machines (cela
     peut mettre la pagaille pour make)


     SSoolluuttiioonn :: rglez correctement la date.


     L'auteur du HOWTO recommande d'utiliser NTP pour synchroniser les
     horloges. Vu qu'il y a des restrictions  l'exportation (au sens
     commercial !) de NTP aux .U., vous devez vous procurer NTP pour
     Debian, Redhat ou Slakware depuis
     ftp://ftp.hacktic.nl/pub/replay/pub/linux ou un miroir.


  6. Le serveur ne peut pas utiliser un mount d'un utilisateur qui est
     dans plus de 8 groupes.

     SSoolluuttiioonn :: diminuez le nombre de groupes auxquels l'utilisateur
     appartient ou montez depuis un autre utilisateur.


  88..  FFAAQQ

  Voici la section FAQ. Elle est en partie base sur une vieille FAQ NFS
  crite par Alan Cox.

  Si vous avez un problme pour monter un systme de fichier, voyez si
  votre problme est dcrit dans la section ``Checklist mount''.


  1. J'obtiens un tas d'erreurs ``stale nfs handle'' quand j'utilise
     Linux comme serveur NFS.


     Cela est d  une bogue dans quelques vieilles versions de nfsd.
     Elle est corrige  partir de nfs-server2.2beta16.


  2. Quand j'essaye de monter le systme de fichiers j'obtiens



           can't register with portmap: system error on send







  Vous utilisez probablement un systme Caldera. Il y a une bogue dans
  les scripts rc. Contactez Caldera pour obtenir la solution.


  3. Pourquoi ne puis-je pas excuter un fichier aprs l'avoir copi sur
     le serveur NFS ?


     La raison est que nfsd cache les manipulations de fichiers pour des
     raisons de performances (rappelons qu'il fonctionne dans l'espace
     utilisateur). Ainsi, aprs une criture le fichier peut ne pas tre
     ferm tout de suite, et tant qu'il est ouvert le noyau ne vous
     autorisera pas  l'excuter. Les nfsd plus rcents que le printemps
     95 [Ndt : hum...] ferment les fichiers ouverts aprs quelques
     secondes, les plus vieux pouvaient ne pas les relcher avant
     plusieurs jours...


  4. Mes fichiers NFS sont tous en lecture seule.


     Le serveur NFS Linux est par dfaut en lecture seule. Voyez les
     sections ``Mountd et nfsd'' et ``Exporter des systmes de fichier''
     dans ce HOWTO et rfrez vous aux pages de manuel ``exports'' et
     ``nfsd''. Vous devrez modifier /etc/exports.


  5. Je monte depuis un serveur NFS Linux, ls marche et pourtant je ne
     peux pas lire ou crire de fichiers.


     Sur les anciennes versions de Linux il faut monter un serveur NFS
     avec rsize=1024, wsize=1024.


  6. Je monte depuis un serveur NFS Linux avec une taille de bloc
     comprise entre 3500 et 4000 et Linux crashe rgulirement.


     Bah alors ne le faites pas. Cela ne se produit pas avec les noyaux
     2.0 et 2.2 ni, autant que je sache avec les 1.2.


  7. Est-ce que Linux peut utiliser NFS sur TCP ?


     Non, pas pour le moment.


  8. J'ai des tonnes d'erreurs bizarres en essayant de monter depuis un
     serveur Linux.


     Assurez-vous que vos utilisateurs sont dans 8 groupes au maximum.
     C'est une limitation des vieux serveurs.


  9. Quand je redmarre ma machine elle se bloque parfois en essayant de
     dmonter un serveur NFS bloqu (_h_u_n_g).


     Ne dmontez ppaass les serveurs NFS en redmarrant ou arrtant la
     machine, a ne crera pas de problmes si vous ne le faites pas. La
     commande est umount -avt nonfs.


  10.
     Les clients NFS Linux sont trs lents quand ils crivent sur des
     systmes Sun ou BSD.


     Normalement les critures NFS sont synchrones (vous pouvez le
     dsactiver si vous ne craignez pas de perdre des donnes). Les
     noyaux drivs de BSD ont tendance  ne pas savoir travailler avec
     des petits blocs. Ainsi quand vous crivez 4K de donnes depuis un
     client Linux dans des paquets de 1K, BSD fait ceci :



                       lit une page de 4K
                       traite 1K
                       crit 4K sur le disque
                       lit une page de 4K
                       traite 1K
                       crit 4K sur le disque
                       ...






  11.
     Quand je connecte de nombreux clients  un serveur NFS Linux, la
     performance diminue soudainement.


     Le protocole NFS utilise les paquets UDP fragments. Le noyau ne
     conserve qu'un nombre limit de fragments de paquets incomplets
     avant de commencer  jeter des paquets. En 2.2, ce paramtre est
     rglable  l'excution au moyen du systme de fichier /proc :
     /proc/sys/net/ipv4/ipfrag_high_tresh et ipfrag_low_tresh. En 2.0 ce
     sont des constantes dfinies  la compilation dans
     .../linux/net/ipv4/ip_fragment.c, IPFRAG_HIGH_TRESH et
     IPFRAG_LOW_THRESH. La signification des ces valeurs est que quand
     la mmoire consomme par les fragments UDP non rassembls atteint
     ``ipfrag_high_thresh'' (en octets, 256K par dfaut en 2.2.3 et
     2.0.36) elle est ramene  ``ipfrag_low_tresh'' d'un coup, en
     jetant des fragments. Ainsi, si la borne suprieure (high_tresh)
     est atteinte, la performance de votre serveur diminue
     drastiquement.

     256K est suffisant pour 30 clients. Si vous en avez 60, doublez la
     valeur. Et doublez aussi la borne infrieure (low_tresh).


  12.
     J'utilise Linux 2.2 (ou suivant) avec knfsd et ma machine AIX,
     IRIX, Solaris, DEC-Unix, ... n'arrive pas  monter de volume.


     knfsd annonce qu'il implmente NFS version 3, alors que ce n'est
     pas vrai. Utilisez l'option qui permet de stopper ces annonces, ou
     mettez "vers=2" dans la liste d'options de montage de votre client.


  13.
     Ma machine AIX 4 n'arrive pas  monter depuis mon serveur NFS
     Linux. Elle dit quelque chose du genre :



               mount: 1831-011 access denied for server:/dir
               mount: 1831-008 giving up on:
               server:/dir
               The file access permissions do not allow the specified action.







  AIX 4.2 utilise des ports rservs (<1024) pour NFS. AIX 4.2.1 et 4.3
  peuvent utiliser d'autres ports, et essaient de monter par NFS3,
  NFS/TCP et finalement NFS/UDP.


  Ajouter


  ______________________________________________________________________
  nfso -o nfs_use_reserved_ports=1
  ______________________________________________________________________




   la fin de rc.tcpip la forcera  utiliser les ports rservs (truc
  fourni par Brian Gorka).





  99..  EExxppoorrtteerr uunn ssyyssttmmee ddee ffiicchhiieerrss

  Bien sur, la faon d'exporter les systmes de fichiers par NFS n'est
  pas toujours la mme sur toutes les plate-formes. Linux et Solaris 2
  sont les plus dviants. Cette section liste de manire superficielle
  la faon de procder sur la plupart des systmes. Si votre systme
  n'est pas trait ici, cherchez dans vos pages de manuel. Les mot-cls
  sont : nfsd, system administration tool, rc scripts, boot scripts,
  boot sequence, /etc/exports, exportfs. J'utiliserai le mme exemple
  tout au long de cette section : comment exporter /mn/eris/local vers
  apollon en lecture/criture.


  99..11..  IIRRIIXX,, HHPP--UUXX,, DDiiggiittaall--UUNNIIXX,, UUllttrriixx,, SSuunnOOSS 44 ((SSoollaarriiss 11)),, AAIIXX

  Ces systmes utilisent le format export traditionnel de Sun. Dans
  /etc/exports, crivez :


  ______________________________________________________________________
  /mn/eris/local -rw=apollon
  ______________________________________________________________________



  La documentation complte se trouve dans la page de manuel exports.
  Aprs avoir dit le fichier, lancez exportfs -av pour exporter les
  systmes de fichiers.


  La rigueur de la syntaxe demande par exportfs varie. Sur certains
  systmes vous verrez que la ligne prcdente peut tre :


  ______________________________________________________________________
  /mn/eris/local apollon
  ______________________________________________________________________



  ou mme quelque chose de dgnr comme :


  ______________________________________________________________________
  /mn/eris/local rw=apollon
  ______________________________________________________________________



  Je recommande d'utiliser la syntaxe stricte. Il se peut que la
  prochaine version de exportfs soit plus exigeante vis  vis de la
  syntaxe et ne fonctionne plus.


  99..22..  SSoollaarriiss 22

  Sun ont compltement rinvent la roue quand ils ont fait Solaris 2,
  et donc c'est compltement diffrent des autres systmes. Il faut
  diter le fichier /etc/dfs/dfstab et y placer les commandes de partage
  (_s_h_a_r_e) documentes dans la page de manuel share(1M), comme ceci :


  ______________________________________________________________________
  share -o rw=apollon -d "Eris Local" /mn/eris/local
  ______________________________________________________________________



  Lancez ensuite le programme shareall pour exporter les systmes de
  fichiers.



  1100..  NNFFSS ssoouuss LLiinnuuxx 22..22

  Au moment o j'cris, la version courante du noyau est 2.2.12 et
  utiliser NFS peut tre assez pnible. Ou pas. J'ignore ce qu'il en
  sera pour Linux 2.4.

  La grosse nouveaut dans Linux 2.2 c'est le support d'un serveur nfs
  dans le noyau, appel knfsd 2.2. Ce type d'implmentation a des
  avantages, principalement la rapidit, une machine Linux 2.2 avec
  knfsd est un serveur NFS respectable. Vous pouvez cependant toujours
  utiliser l'ancien nfsd avec Linux 2.2, et cela prsente quelques
  avantages aussi, dont la simplicit.

  Si vous utilisez un paquetage noyau source ou binaire fabriqu par
  quelqu'un comme RedHat (6.0 et suivantes), SuSE (6.1 et suivantes il
  me semble) ou un autre intgrateur de systme professionnel ils auront
  probablement intgr compltement ``knfsd'' et vous n'avez pas de
  soucis  vous faire, cela marchera. Pour l'essentiel. Jusqu' ce que
  vous vouliez compiler un noyau vous mme. Si vous utilisez un noyau
  2.2 standard (au moins jusqu' 2.2.12) knfsd ne fonctionnera pas.

  Pour le faire fonctionner vous mme il vous faut le paquetage knfsd de
  H.J. Lu. C'est un ensemble de patchs avec les utilitaires requis pour
  2.2 que Lu maintient bnvolement. Rcuprez le depuis votre miroir de
  noyau local, le site matre est ftp.kernel.org:/pub/linux/devel/gcc/.
  CCee nn''eesstt ppaass ddeessttiinn aauu ggrraanndd ppuubblliicc. Si vous trouvez que c'est trop
  compliqu, n'insistez pas et attentez qu'un paquetage noyau soit
  disponible auprs de votre intgrateur (Redhat, SuSE...).

  Ne m'envoyez pas de question  ce sujet, je ne peux pas vous aider, je
  n'ai aucun serveur bas sur knfsd qui tourne. Si vous trouvez des
  erreurs ou omissions dans la documentation, crivez-moi et je
  corrigerai ce HOWTO.

  Toujours l ? Ok. H.J. Lu annonce les nouvelles versions de son
  paquetage sur la liste de diffusion linux-kernel, o il passe d'autres
  choses lies  NFS dans Linux 2.2. Lisez-la.



  1100..11..  LLee cclliieenntt

  Le client est presque simple. Afin que les verrous (_l_o_c_k_s) marchent
  correctement il faut que statd (du paquetage knfsd) soit compil,
  install et lanc depuis vos scripts de dmarrage. Statd a besoin d'un
  rpertoire appel /var/lib/nfs qu'il vous faudra crer avant de le
  lancer (sans quoi il se termine immdiatement sans message d'erreur).

  Une fois que statd tourne vous pouvez utiliser le programme testlk
  (dans tools/locktest) pour tester si un verrou sur un fichier d'un
  volume mont par NFS fonctionne. a devrait. S'il affiche _N_o _l_o_c_k_s
  _a_v_a_i_l_a_b_l_e, statd ne fonctionne pas.

  En fait, vous pouvez aussi vous passer des verrous (ce que je ne
  recommande pas) en mettant "nolock" dans la liste des options de
  montage.

  Autant que je sache, c'est tout ce qu'il faut pour faire fonctionner
  correctement le client.

  Ah, si vous avez un serveur NFS Alpha ou Sparc vous verrez que le
  client nfs de Linux 2.2 est vraiment de la merde. Les dbits sont
  extrmement faibles, bien pire qu'avec Linux 2.0. Bien sur on peut
  corriger le problme. Les noyaux 2.2 d'Alan Cox (un petit peu plus
  exprimentaux que ceux de Linus) incluent un patch pour amliorer la
  performance du client 2.2 avec un serveur Alpha ou Sparc. Si vous
  voulez utiliser les noyaux d'Alan Cox, vous devriez lire la liste de
  diffusion linux-kernel, et si c'est le cas vous savez o les trouver.
  Le site de rfrence est  <http://www.uio.no/~trondmy/src/>, au cas o
  vous voudriez essayer de l'appliquer  un noyau 2.2 standard. Ce patch
  ne sera probablement pas intgr dans Linux 2.4, car il demande trop
  de changements dans le noyau pour tre accept dans le cycle de
  dveloppement actuel. Attendez Linux 2.5.

  trondmy propose des patchs pour utiliser NFS version 3 avec Linux, et
  qui permettent aussi d'utiliser TCP comme mcanisme de transport au
  lieu d'UDP. NFSv3 est trs bien pour des rseaux grande distance ou
  avec des taux de pertes non nuls, ou des temps de latence levs.

  Si vous utilisez ces patchs, il vous faut lire linux-kernel, car de
  sales bugs, qui mangent vos fichiers, sont parfois dcouverts. Alors
  ssooyyeezz pprruuddeenntt.


  1100..22..  LLee sseerrvveeuurr

  Le serveur NFS de Linux 2.2 et suivants est appel "knfsd". Il est
  difficile  configurer. Il faudra vous dbrouiller tout seul ou
  utiliser ce que SuSE, RedHat et autres fournissent dans leurs
  paquetages 2.2. Dsol, mais vous pouvez toujours utiliser l'ancien
  nfsd. Il est lent mais facile  installer.



  1111..  SSeerrvveeuurr NNFFSS ssuurr uunnee ddiissqquueettttee

  Cette section a t crite par Ron Peters, rpeters@hevanet.com. Elle
  explique comment installer un serveur NFS en dmarrant depuis une
  disquette. L'objectif initial tait de partager par NFS un cdrom
  d'une autre machine pour installer Linux sur une machine sans lecteur
  de cdrom.



  1111..11..  IInnttrroodduuccttiioonn

  Ce document a pour but d'aider ceux qui auront le mme problme que
  moi rcemment. J'installais un serveur Linux sur une machine sans
  lecteur de cdrom et sans moyen d'en installer un,  part peut tre
  un SCSI externe. Ce genre de situations sera sans doute de plus en
  plus rare et ce document perdra donc de son intrt, mais j'aurais
  bien aim l'avoir quand j'essayais d'installer ma machine.

  Vu que la machine n'avait pas de lecteur de cdrom, j'ai pens
  installer un serveur NFS pour Win95 afin de partager le lecteur de
  cdrom juste le temps d'installer ma machine et de la mettre sur le
  rseau. Je n'ai trouv que deux produits (je ne citerai pas les noms
  mais l'un est un freeware et l'autre avait une licence limite  14
  jours), l'un ne marcha pas ``cls en main'' et l'autre n'tait pas
  capable de grer les conventions de nommage Linux suffisamment bien
  pour mener  bien l'installation.

  J'ai donc dcid d'essayer de redmarrer ma machine Win95 sous Linux
  avec les disquettes boot/root et d'utiliser une disquette
  supplmentaire pour installer un serveur NFS.

  Cela a t remarquablement simple, la procdure est en fait
  probablement plus simple que de lire cette introduction. Cependant, je
  pense qu'il est intressant de rassembler les information ncessaires
  dans ce document.


  1111..22..  AAtttteenntteess

  J'ai utilis les disquettes boot/root fournies dans une des
  distributions de Slakware (InfoMagic developpers distributions). Le
  noyau utilis sur les disquettes tait un 2.0.34, et les programmes du
  serveur NFS venaient d'un serveur pour 2.0.30. J'ai toujours utilis
  la mthode d'installation Slakware, non pas qu'elle soit plus facile
  ou meilleure ou pire, mais simplement qu'elle m'est familire et que
  je n'ai jamais pris le temps d'apprendre  en utiliser une autre.

  Je ne pense pas qu'il puisse y avoir beaucoup de problmes lis  la
  version du systme. Je recommanderais simplement d'utiliser un systme
  relativement rcent, ce qui devrait tre le cas si vous utilisez les
  disquettes boot/root de la distribution  installer.


  1111..33..  MMaattrriieell nncceessssaaiirree


    Une machine et une disquette de boot supportant le rseau. La
     machine devant jouer le rle du serveur NFS doit avoir une carte
     rseau reconnue pendant le dmarrage. Pour plus d'informations,
     voir le HOWTO sur le rseau (NET4-HOWTO).

    Une deuxime disquette contenant rpc.portmap, rpc.mountd et
     rpc.nfsd. Vous pouvez trouver facilement ces fichiers par un
     ftpsearch sur le oube.

    Un cd (par exemple) Slakware (ou autre).


  1111..44..  CCoonnffiigguurraattiioonn dduu sseerrvveeuurr



  1111..44..11..  DDmmaarrrreerr llee sseerrvveeuurr NNFFSS tteemmppoorraaiirree

  Dmarrez la machine qui sera serveur NFS depuis la disquette de
  dmarrage et assurez-vous que la carte rseau est reconnue, de mme
  que le lecteur de cdrom. Dans la suite je suppose que la carte
  rseau en question est eth0.


  1111..44..22..  MMoonntteerr llaa ddiissqquueettttee eett llee ccddrroomm

  Une fois que le systme est dmarr, vous n'avez plus besoin des
  disquette boot/root, le systme tant compltement install en disque
  mmoire. Remplacez la disquette root par la disquette supplmentaire,
  et montez la :

  mount /dev/fd0 /floppy

  Ceci fonctionne pour une disquette avec un systme de fichiers ext2.
  J'imagine que la disquette pourrait utiliser un systme de fichiers
  MSDOS mais je n'ai pas essay. Je suppose que cela serait plus simple
  que de faire une image disque. Dans ce cas, il faudrait utiliser mount
  -t msdos ...etc.

  Montez le cdrom :

  mount -t iso9660 /dev/hdc /cdrom

  J'ai utilis les priphriques disquette et cdrom, on peut en
  utiliser d'autres selon ce que l'on veut faire. Les points de montage
  /floppy et /cdrom doivent exister sur l'image de la disquette root. Si
  ce n'est pas le cas, crez-les, ou bien vous pouvez utiliser n'importe
  quels autres points de montage.





  1111..44..33..  CCoonnffiigguurreerr llee rrsseeaauu ssuurr llee sseerrvveeuurr pprroovviissooiirree

  Il faut maintenant configurer le serveur NFS et le rseau. Il n'y a
  que quelques commandes  lancer, et quelques informations qu'il vous
  faudra rassembler auparavant (je donne ici des valeurs d'exemple) :


  IPADDR:172.16.5.100    #L'adresse du serveur temporaire.

  NETMASK:255.255.255.0  #Le masque de rseau (netmask).

  BROADCAST:172.16.5.255 #L'adresse de diffusion sur le rseau

  ETHNETWORK:172.16.5.0  #L'adresse rseau

  GATEWAY:172.16.5.251 #Ncessaire seulement si vous avez une
  passerelle. Si c'est le cas, vous le savez. La plupart des rseau ``
  la maison'' n'en ont pas.


  Les commandes pour se connecter au rseau (utiliser les valeurs
  donnes ci-dessus) :


  ifconfig eth0 inet IPADDR arp netmask NETMASK broadcast BROADCAST

  route add -net ETHNETWORK netmask NETMASK eth0

  Celle-ci uniquement si vous avez une passerelle et que vous devrez la
  traverser :

  route add default gw GATEWAY netmask 0.0.0.0 eth0


  Si tout va bien, vous tes maintenant sur le rseau et devriez pouvoir
  faire des ping sur les autres machines.


  1111..44..44..  CCoonnffiigguurreerr llee vvoolluummee NNFFSS

  Choisissez le rpertoire  partager. Dans mon exemple, c'tait
  /cdrom/slakware. Placez-le dans le fichier /etc/exports :

  echo "/cdrom/slakware" > /etc/exports




  1111..55..  LLaanncceerr llee sseerrvveeuurr NNFFSS

  Allez dans /floppy/usr/bin et lancez :

  ./rpc.portmap

  ./rpc.mountd

  ./rpc.nfsd



  1111..55..11..  PPrrtt,, ccoommmmeenncceezz ll''iinnssttaallllaattiioonn

  Normalement, le rpertoire /cdrom/slakware est maintenant partageable.
  Dmarrez votre machine (celle  installer) depuis les disquettes
  boot/root (j'ai utilis les mmes qui ont servi  dmarrer le serveur)
  et commencez l'installation.
  Quand il faut choisir le mdia source  utiliser, choisissez ``serveur
  NFS''. Il vous demandera l'adresse IP du serveur, qui est celle que
  vous avez appel IPADDR pour le serveur. Il vous faut aussi donner le
  rpertoire  monter, qui est celui que vous avez indiqu dans le
  fichier /etc/exports du serveur.

  Le volume NFS devrait maintenant tre mont, surveillez l'apparition
  de messages d'erreur. Si tout va bien, continuez l'installation.


  1111..66..  PPrroobbllmmeess



  1111..66..11..  RRiieenn iiccii ppoouurr ll''iinnssttaanntt

  Je n'ai rien  dire  ce sujet pour le moment. Peut tre si des gens
  utilisent cette procdure, on aura des choses  ajouter.


  1111..77..   ffaaiirree



  1111..77..11..  DDiissqquueettttee DDOOSS

  Voir si la disquette supplmentaire peut tre au format DOS.


  1111..77..22..  CCoommmmaannddeess RRPPCC

  Vrifiez l'ordre dans lequel lancer les commandes rpc.* et si toutes
  sont ncessaires.



  1122..  PPCC--NNFFSS

  Vous ne voulez pas utiliser PC-NFS, mais plutt samba.

  Samba est bien meilleur que PC-NFS, il fonctionne avec ``Windows3 for
  Workgroups'' et les versions suivantes de Windows. Il est plus rapide
  et plus sur. Utilisez plutt samba.























