File: NFS-HOWTO

package info (click to toggle)
doc-linux-it 2000.01-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 8,136 kB
  • ctags: 19
  • sloc: perl: 249; makefile: 50; sh: 42
file content (1188 lines) | stat: -rw-r--r-- 43,853 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
  NFS HOWTO
  Nicolai Langfeldt janl@math.uio.no
  Version 1.02, 19 March 1998

  COME installare NFS su client e server. Traduzione di
  kevin@arena.sci.univr.it Versione traduzione 0.1, 26 Maggio 1998.

  1.  Introduzione

  1.1.  Note legali

  (C)opyright 1997 Nicolai Langfeldt.  Do not modify without amending
  copyright, distribute freely but retain this paragraph.  The FAQ
  section is based on a NFS FAQ compiled by Alan Cox.  The Checklist
  section is based on a mount problem checklist compiled by the IBM
  Corporation.


       L'unica licenza valida  quella originale in lingua inglese.
       Di seguito ne trovate una traduzione abbastanza fedele che
       per non ha alcun valore.


  I diritti appartengono a Nicolai Langfeldt. Non modificare nulla senza
  allegare il copyright, distribuisci liberamente ma mantieni questo
  paragrafo. La sezione sulle FAQ  basata sulle NFS FAQ di Alan Cox. La
  sezione Checklist  basata su un problema di mount compilato da IBM
  Corporation.


  1.2.  Altre questioni

  Questo non sar mai un documento finito, mandami una mail se avrai
  problemi e successi, potrebbe rendere questo documento migliore. Manda
  denaro, commenti e/o domande a janl@math.uio.no. Se mandi una E-mail
  accertati che l'indirizzo di risposta sia corretto e funzionante.
  Ricevo molte mail e accertarmi di ogni indirizzo sarebbe troppo
  oneroso.


  Se vuoi tradurre questo HOWTO fammelo sapere cos terr traccia in
  quante lingue hanno pubblicato il documento :)


  Ringrazio Olaf Kirch che mi ha dato spunto e suggerimento per
  scrivere.


  Questo HOWTO riguarda il supporto di NFS nel kernel versioni 2.0.X. Ci
  sono rilevanti migliorie e cambiamenti nella versione 2.1 del kernel.


  1.3.  Dediche

  Questo HOWTO  dedicato ad Anne Line Norheim Langfeldt. Probabilmente
  non lo legger mai perch non  quel tipo di ragazza.


  2.  LEGGIMI

  NFS, il sistema di condivisione dei dischi via rete, ha tre
  caratteristiche:


    Rende possibile la condivisione dei file in rete.

    Funziona abbastanza bene.

    Apre dei buchi di sicurezza che sono conosciuti dai cracker, e
     facilmente utilizzabili per ottenere facilmente accesso (lettura,
     scrittura e cancellazione) su tutti i tuoi file.


  Parler di questi argomenti in questo HOWTO. Accertati di leggere la
  sezione relativa alla sicurezza e sarai in grado di limitare al minimo
  la vulnerabilit ed i rischi. La sezione sulla sicurezza contiene dei
  passi piuttosto tecnici e richiede alcune conoscenze di reti IP ed i
  termini ad esse relativi. Se non capisci la terminologia utilizzata
  fai un passo indietro e leggi il Networking HOWTO oppure acquista un
  libro relativo all'amministrazione di reti TCP/IP per familiarizzare
  con TCP/IP.  comunque una buona idea se amministri macchine
  UNIX/Linux. Un ottimo libro al riguardo  TCP/IP Network
  Administration di Craig Hunt, pubblicato da O'Reilly & Associates,
  Inc. Dopo averlo letto e capito, avrai un maggior valore sul mercato
  del lavoro :)


  Ci sono due sezioni per aiutarti nella soluzione dei problemi di NFS,
  chiamate Mount Checklist e FAQs. Fai riferimento ad esse se qualcosa
  non dovesse funzionare come aspettato.


  Oh, il sito primario per nfsd per Linux 2.0  ftp.mathematik.th-
  darmstadt.de:/pub/linux/okir, nel caso tu volessi o avessi bisogno di
  scaricarlo e compilartelo.


  3.  Configurare un server NFS

  3.1.  Prerequisiti

  Prima di continuare a leggere questo HOWTO devi poter fare telnet tra
  due macchine che hai intenzione di configurare come client e server.
  Se non sei in grado di farlo, leggi il networking/NET-2 HOWTO per
  installare e configurare correttamente la rete.


  3.2.  Il primo passo

  Prima di fare qualsiasi altra cosa, abbiamo bisogno di configurare un
  server NFS. Se fai parte di un dipartimento o universit probabilmente
  ce ne saranno molti altri gi configurati. Se puoi accedervi o stai
  leggendo questo HOWTO per utilizzarli, non hai bisogno di leggere
  questa sezione e puoi saltare direttamente alla sezione
  ``Configurazione di un client NFS''


  Se hai bisogno di installare NFS su una macchina che non abbia Linux,
  allora devi leggere il manuale di sistema per scoprire come abilitare
  il servizio di NFS ed esportare i file tramite NFS. C' una sezione
  apposita in questo HOWTO su come farlo su molti sistemi diversi. Dopo
  aver configurato tutto, puoi passare alla sezione successiva. Oppure
  leggi altre parti di questa sezione poich alcune cose che saranno
  dette potrebbero essere interessanti anche per altri sistemi,
  indipendentemente dal tipo di macchina che vuoi usare come server.


  Quelli di voi che continueranno a leggere, avranno bisogno di
  configurare alcuni programmi.



  3.3.  Il portmapper

  Il portmapper su linux pu chiamarsi sia portmap o rpc.portmap. La
  pagina man sul mio sistema dice che  un "DARPA port to RPC program
  number mapper". Questo  il primo buco di sicurezza che apri. La
  descrizione per chiudere alcuni di questi buchi  nella sezione
  ``Sicurezza ed NFS'', che ti consiglio di leggere con urgenza.


  Avvio del portmapper. Lo si pu fare in due modi: portmap oppure
  rpc.portmap e li dovresti trovare nella directory /usr/sbin (su alcune
  macchine si chiama rpcbind). Per ora lo puoi lanciare a mano, ma 
  necessario che venga lanciato ogni volta che riavvii la macchina, per
  questo dovrai creare/aggiornare i tuoi scripts rc. Gli script rc sono
  descritti in maggior dettaglio nella pagina man di init, di solito si
  trovano in /etc/rc.d, /etc/init.d oppure /etc/rc.d/init.d.  Se c' uno
  script che ha il nome simile a inet probabilmente  lo script giusto
  da modificare. Ci che devi scriverci va oltre lo scopo di questo
  HOWTO.  Avvia portmap e controlla che esso sia correttamente partito
  con il comando ps aux.  partito ? Bene.


  3.4.  Mountd e nfsd

  I prossimi programmi che devono essere lanciati sono mountd e nfsd. Ma
  prima dobbiamo modificare un altro file. Questa volta /etc/exports.
  Diciamo che io voglia che il file system /mn/eris/local che risiede su
  eris possa essere disponibile anche sulla macchina chiamata apollon.
  Dobbiamo quindi mettere queste righe nel file /etc/exports di eris:


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



  Le righe sopra indicate, consentono l'accesso in lettura e scrittura a
  /mn/eris/local. Invece di rw potremmo mettere ro che vorrebbe dire
  accesso in sola lettura (se non metti nulla,  di default a sola
  lettura). Ci sono altre opzioni che puoi mettere e ne discuteremo
  alcune relative alla sicurezza pi avanti. Le opzioni sono tutte
  elencate nella pagina man di exports che dovresti leggere almeno una
  volta nella tua vita. Ci sono modi migliori che elencare gli host nel
  file exports.  Puoi per esempio usare net groups se stai usando le NIS
  (o NYS), e puoi sempre specificare domini interi oppure sottoreti IP
  come host autorizzati a montare qualcosa. Ma dovresti considerare che
  qualcuno non autorizzato potrebbe accedere al server se usi questo
  tipo di autorizzazioni.

  Nota: La sintassi del file exports non  la stessa di altri Unix.  C'
  una sezione separata in questo HOWTO che riguarda il file exports di
  altri Unix.


  Ora siamo pronti per lanciare il comando mountd (oppure pu chiamarsi
  rpc.mountd) e quindi nfsd (che potrebbe chiamarsi rpc.nfsd).  Entrambi
  leggono il file exports.


  Se modifichi il file /etc/exports accertati che nfsd e mountd sappiano
  che il file  stato cambiato. Il modo tradizionale  lanciare
  exportfs. Molte distribuzioni non hanno il programma exportfs, allora
  puoi installare questo script sulla tua macchina:


  ______________________________________________________________________
  #!/bin/sh
  killall -HUP /usr/sbin/rpc.mountd
  killall -HUP /usr/sbin/rpc.nfsd
  echo re-exported file systems
  ______________________________________________________________________




  Salvalo chiamandolo /usr/sbin/exportfs, e non dimenticare di
  cambiargli i permessi con il comando chmod a+rx. Ora, ogni volta che
  modifichi il file exports, lancia exportfs come root.


  Ora dovresti controllare che mountd e nfsd stiano girando
  correttamente.  Prima con rpcinfo -p. Dovrebbe mostrarti qualcosa
  simile a questo:


  ______________________________________________________________________
     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
  ______________________________________________________________________



  Come vedi il portmapper ha avviato i propri servizi e cos pure mountd
  e nfsd.


  Se invece ottieni l'errore: rpcinfo: can't contact portmapper: RPC:
  Remote system error - Connection refused, RPC_PROG_NOT_REGISTERED o
  qualcosa di simile, allora il portmapper non sta girando. Oppure hai
  qualcosa nel file /etc/hosts.{allow,deny} che impedisce le a
  portmapper di rispondere. Avvia il portmapper, oppure rimuovi o
  rinomina /etc/hosts.{allow,deny}. Se ottieni il messaggio No remote
  programs registered. allora o il portmapper non vuole risponderti
  oppure qualcosa non funziona. Killa nfsd, mountd ed il portmapper e
  riprova la sequenza di avvio dall'inizio.


  Dopo avere controllato che il portmapper riporti i servizi, puoi
  controllare anche con ps. Il portmapper continuer a riportare i
  servizi anche dopo che il programma che li ha utilizzati termina in
  maniera non corretta, per cui controllare con il ps pu essere utile
  che sembra che qualcosa non funzioni.


  Naturalmente, avrai bisogno di modificare i tuoi file rc per avviare
  mountd e nfsd ed il portmapper quando avvii la macchina.   probabile
  che gli scripts esistano gi sulla tua macchina, devi solo togliere il
  commento dalle parti che interessano oppure modificare il livello di
  init affinch queste vengano attivate.


  Le pagine man che dovrebbero esserti familiari adesso, sono quelle di
  portmap, mountd, nfsd ed exports.



  Bene, se hai fatto tutto esattamente come ho detto probabilmente 
  tutto a posto per iniziare a lavorare sul client NFS.


  4.  Configurazione di un client NFS

  Prima di tutto hai bisogno di un kernel che abbia il supporto per NFS
  compilato staticamente oppure come modulo. Questo lo configuri prima
  di iniziare la compilazione. Se non hai mai compilato un kernel prima,
  devi leggere il Kernel HOWTO. Se stai usando una distribuzione fatta
  bene (come Red Hat [meglio Debian N.d.T]) e non hai mai messo mano al
  kernel o ai moduli, (rovinandolo ;)), allora nfs dovrebbe essere gi
  disponibile.


  Ora, dal prompt di root, puoi lanciare il comando appropriato e vedere
  il file system apparire. Continuando l'esempio della sezione
  precedente, vogliamo montare la partizione in /mn/eris/local da eris.
  Ci  fatto con il comando:


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




  (Torneremo successivamente sulle opzioni rsize e wsize). Il file
  system  ora disponibile sotto /mnt e puoi fare cd in esso, e con un
  ls vedere tutti i file che vi sono presenti. Noterai che non  cos
  veloce come su un file system locale, ma molto pi conveniente che
  usare ftp. Se invece di montare il file system, il comando mound
  produce un errore come mount: eris:/mn/eris/local failed, reason given
  by server: Permission denied, allora il file exports  errato, oppure
  hai dimenticato di lanciare il comando exportfs dopo averlo
  modificato. Se invece dice mount clntudp_create: RPC: Program not
  registered significa che nfsd oppure mountd non stanno girando sul
  server. Oppure hai il problema nel file hosts.{allow,deny} di cui
  abbiamo parlato precedentemente.


  Per togliere il filesystem, devi usare il comando:


  ______________________________________________________________________
  umount /mnt
  ______________________________________________________________________




  Per fare in modo che il sistema monti file system al boot, devi
  modificare il file /etc/fstab. Per il nostro esempio devi aggiungere
  la seguente riga:


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



  Questo  tutto, pi o meno.


  4.1.  Opzioni del comando mount

  Ci sono alcune opzioni che dovresti guardare almeno una volta.
  Governano il modo in cui i client NFS gestiscono i crash della rete o
  del server. Una delle cose belle di NFS  che questi problemi vengono
  gestiti molto bene...se configuri i client in modo corretto.  Ci sono
  due tipi di problemi:


     software
        Il client NFS sono responsabili di riportare l'errore al
        processo che sta accedendo ad un file su un file system montato.
        Alcuni programmi gestiscono la segnalazione, altri no. Non
        raccomando l'uso di questo parametro.



     hardware
        Il programma che tenti di accedere ad un file su un file system
        NFS si bloccher quando il server ha un crash. Il processo non
        potr essere interrotto o killato a meno che tu non specifichi
        il parametro intr. Quando il server NFS torna in linea, il
        programma riprender a funzionare correttamente. Questo 
        probabilmente il funzionamento che vorresti. Raccomando di usare
        hard,intr su tutti i file system montati via NFS.



  Riprendendo l'esempio precedente, modifichiamo la linea dell'fstab:


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





  4.2.  Ottimizzare NFS

  Normalmente, se non vengono usate le opzioni rsize e wsize, NFS
  legger e scriver blocchi di 496 o 8192 bytes. Alcune combinazioni di
  kernel di linux e schede di rete possono non essere in grado di
  gestire blocchi cos grandi o potrebbero non esserlo comunque maniera
  ottimale. Quindi dobbiamo provare a sperimentare varie dimensioni per
  determinare quali siano i parametri che funzionino e garantiscano le
  migliori prestazioni.  Puoi provare l'influenza delle opzioni sulla
  velocit con alcuni semplici comandi. Se hai montato la partizione
  come sopra ed hai i diritti di scrittura, puoi provare con il seguente
  test di scrittura sequenziale:


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




  Questo crea un file di 64MB di zeri (grande abbastanza per fare in
  modo che l'uso delle cache non sia significativo sulle prestazioni,
  usa una dimensione maggiore se hai molta memoria disponibile).
  Lancialo alcune volte (5-10?) e prendi il tempo medio. Il tempo da
  tenere maggiormente in considerazione  quello indicato con 'elapsed'
  oppure 'wall clock'. Quindi puoi testare le prestazioni in lettura:


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



  Fallo alcune volte e fai la media dei tempi. Quindi smonta e rimonta
  la partizione nuovamente ma con rsize e wsize maggiori. Dovrebbero
  essere sempre multipli di 1024 e non essere pi grandi di 16384, che 
  la dimensione massima ammessa da NFS versione 2. Dopo averla montata
  nuovamente, fai un cd nel file system montato e prova qualche semplice
  comando tipo ls, esplora il file system, eccetera per vedere se il
  tutto funziona correttamente. I sintomi di rsize/wsize troppo grandi,
  sono molto strani e per nulla ovvi. Un sintomo tipico  una lista
  incompleta di file quando viene fatto un 'ls', senza alcun messaggio
  di errore. Oppure la lettura dei file fallisce miseramente senza
  messaggi di errore. Dopo avere stabilito che le dimensioni di rsize e
  wsize funzionano, allora puoi provare i test nuovamente.  Server
  diversi hanno dimensioni ottimali diverse. SunOS e solaris hanno la
  reputazione di andare molto pi veloci con blocchi di 4096 byte.


  I kernel di linux pi recenti (dal 1.3), eseguono un read-ahead per
  rsize di dimensioni maggiori o uguali alla dimensione della pagina
  della macchina. Sui processori Intel, la dimensione della pagina  di
  4096 byte. Poich l'uso del read-ahead aumenta significativamente le
  prestazioni in lettura di NFS, raccomando di settare a 4096 le
  dimensioni di rsize.


  Ricorda di modificare /etc/fstab per riflettere le dimensioni di
  rsize/wsize che hai trovato essere le migliori.


  Un trucco per accelerare le prestazioni in scrittura di NFS,  quello
  di disabilitare la scrittura in sincronia sul server. Le specifiche di
  NFS controllano che le richieste di scrittura sul server non siano
  considerate terminate finch i dati non siano memorizzati su un
  supporto non volatile (il disco). Questo limita le prestazioni in
  scrittura, per cui disabilitando questa caratteristica si otterr un
  incremento delle prestazioni. Il nfsd di linux non ha pi fatto
  scritture sincrone da quando non lo fa nemmeno il file system stesso.
  Su macchine non linux, puoi aumentare le prestazioni modificando in
  questo modo il file /etc/exports:


  ______________________________________________________________________
  /dir    -async,access=linuxbox
  ______________________________________________________________________




  o qualcosa di simile. Fai riferimento alla pagina man relativa al file
  exports della macchina in questione. Da notare che ci aumenta la
  possibilit di perdita di dati.


  5.  NFS su linee lente

  Le linee lente includono Modem, ISDN e tutte le le altre connessioni
  su lunga distanza.


  Questa sezione si basa sulla conoscenza dei protocolli usati, ma non
  su prove reali poich non ho modo di provarli. Fammi sapere le tue
  esperienze se hai la possibilit di provare ;-)


  La prima cosa da ricordare  che NFS  un protocollo lento.  Ha un
  grosso overhead di sistema. Usare NFS  come usare il kermit per i
  trasferire file.  veramente slow. Quasi tutto  pi veloce di NFS.
  FTP  pi veloce. HTTP  pi veloce.  rcp  pi veloce. ssh  pi
  veloce.


  Sei ancora convinto di volerlo provare ? Ok.


  I parametri di default di NFS sono per linee veloci e con bassa
  latenza. Se usi questi parametri su linee ad alta latenza si
  potrebbero verificare errori, operazioni non portate a termine, file
  che risultano essere pi corti di quanto siano in realt ed altri
  fatti misteriosi.


  La prima cosa da fare  di non usare l'opzione per il mount soft.
  Questo causerebbe dei timeout per ritornare degli errori alle
  applicazioni, che potrebbero non gestirli correttamente.  Questa
  potrebbe essere la causa di misteriosi fallimenti. Usa invece
  l'opzione hard. Quando l'opzione hard  attiva, i timeout generano
  infiniti tentativi invece di terminare l'operazione che il software
  voleva fare. Ed  ci di cui hai bisogno.


  La prossima cosa da fare  ingannare le opzioni timeo e retrans. Sono
  descritte nella pagina man nfs(5), che  qui riportata [tradotta NdT]:



























  ______________________________________________________________________
         timeo=n        Il valore, in decimi  di  secondo  prima di
                        tentare  una  ritrasmissione  dopo  un  RPC
                        timeout.  Il  valore  di  default    di 7
                        decimi  di  secondo. Dopo il primo timeout,
                        il  timeout  viene   raddoppiato  dopo ogni
                        successivo timeout fino ad un massino di 60
                        secondi oppure non si verifichi un  timeout
                        maggiore.  Inoltre,  se  il  filesystem  
                        montato  in  modo  hard, ogni nuovo timeout
                        avr  come  valore  di partenza, il doppio
                        del  valore  di  partenza della sequenza di
                        timeout  precedente,  che  si  raddoppia ad
                        ogni  ritrasmissione.  Il  massimo  timeout
                        rimane  di  60 secondi. Le migliori presta-
                        zioni si raggiungono incrementando il valo-
                        re  di  timeout quando si monta un disco su
                        una  rete  lenta, su un server lento oppure
                        attraverso routers e gateway.

         retrans=n      Il numero  di timeouts minori e ritrasmis-
                        sioni  che  si devono verificare prima che
                        si verifichi un timeout maggiore. Il valo-
                        re  di default  di 3 timeouts. Quando si
                        verifica  un timeout maggiore, viene bloc-
                        cata l'operazione sul file ed un messaggio
                        "server  not responding"  stampato sulla
                        console.
  ______________________________________________________________________




  In altre parole: se non viene ricevuta una risposta entro il timeout
  di 0.7 secondi (700ms) il client NFS ripeter la richiesta
  raddoppiando il timeout a 1.4 secondi. Se non si riceve risposta entro
  1.4 secondi la richiesta viene ripetuta ancora ed il timeout viene
  raddoppiato ancora a 2.8 secondi.


  La velocit di una linea pu essere misurata con un ping con le
  dimensioni del pacchetto e del rsize/wsize uguali.


  ______________________________________________________________________
  $ 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
  ______________________________________________________________________




  Il tempo qui  quanto impiega il pacchetto del ping ad andare avanti
  ed indietro da lugulbanda. 15 ms  abbastanza veloce. Su una linea a
  28.800 bps puoi aspettarti qualcosa come 4000-5000ms, e se la linea 
  molto carica questo tempo sar ancora pi alto, anche doppio. Quando
  il tempo  elevato, si dice che la linea ha elevata latenza.
  Generalmente per pacchetti pi grandi e per linee cariche, il tempo
  tende ad aumentare. Aumenta il parametro timeo per adattarlo alla
  velocit della tua linea ed al carico. E poich la latenza aumenta se
  usi la linea per altre cose: se vuoi provare FTP e NFS allo stesso
  momento, prova a misurare i tempi del ping mentre usi NFS e FTP per
  trasferire i file.



  6.  Sicurezza ed NFS

  Non sono un esperto di sicurezza, ma sono abbastanza coscio dei
  problemi di sicurezza. Ma attento: questa non  certo una lista
  completa dei problemi legati ad NFS e se pensi di essere sicuro una
  volta che avrai letto ed implementato ci che  scritto qui, avrei
  anche un ponte che vorrei venderti.


  Questa sezione non  probabilmente di utilit se sei un una rete
  chiusa, dove conosci gli utenti e nessuno che tu non conosca pu
  accedere alle macchine della rete. Ovvero, non ci dovrebbero essere
  modi per entrare nella rete in dialin (via modem) e non dovrebbe
  essere collegata ad altre reti di cui non ne conosci gli utenti. Pensi
  che io sia paranoico ?  Non lo sono per nulla. Questo  solo un aiuto
  di base sulla sicurezza.  E ricorda, le cose che dico qui sono solo
  l'inizio. Un sito sicuro necessita di un amministratore diligente e
  che conosca dove trovare informazioni e tutti i problemi relativi alla
  sicurezza.


  NFS ha un problema di sicurezza di base per cui il client, se non
  specificato altrimenti, si fida del server NFS e viceversa. Questo pu
  essere negativo. Significa che se la shell di root viene compromessa
  sul server, viene compromessa anche quella di tutti i client. E
  viceversa.  Ci sono alcune strategie di copia per questo, sulle quali
  torneremo poi.


  Qualcosa che dovresti leggere sono gli avvisi del CERT sul NFS, molto
  di ci che  qui scritto deriva con i messaggi scritti dal CERT.  Vedi
  ftp.cert.org/01-README per una lista aggiornata degli avvisi del CERT.
  Ecco qui alcuni avvisi relativi ad NFS.


  ______________________________________________________________________
  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.1.  Sicurezza del Client

  Sul client possiamo decidere di non volere dare troppa fiducia al
  server in un paio di modi con delle opzioni del mount. Per esempio
  possiamo vietare l'uso di programi SUID su partizioni NFS con
  l'opzione nosuid. Questa  una buona idea e dovresti considerarne
  l'uso con tutti i dischi che monti via NFS. Significa che gli utenti
  root del server non possono fare programmi SUID-root sul file system,
  entrare come utenti normali sui client e quindi usare i programmi SUID
  per diventare root anche sui client. Possiamo anche vietare
  l'esecuzione di file sulla partizione montata usando anche l'opzione
  noexec, ma  sicuramente meno pratico di nosuid, poich  naturale
  pensare che una partizione debba avere dei file eseguibili o degli
  script. Puoi inserire queste opzioni nella colonna opzioni, assieme a
  rsize e wsize, separati da virgole.


  6.2.  Sicurezza del server: nfsd

  Sul server possiamo decidere che non vogliamo dare fiducia all'account
  root dei client. Possiamo farlo usando l'opzione root_squash nel file
  exports:


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



  Ora, se l'utente con UID 0 sul client cerca di accedere (lettura,
  scrittura, cancellazione) il file system sostituisce l'UID con quello
  dell'utente 'nobody' del server. Ci significa che il root dei client
  non pu accedere o modificare i file del server che solo root pu
  accedere o modificare. Ci  positivo, e probabilmente dovresti usare
  root_squash su tutti i file systems che esporti. Potresti dire: "Ma
  l'utente root dei client pu usare il comando 'su' per diventare un
  altro utente e accedere e cambiare i file di quell'utente!". La
  risposta : S, questo  ci che avviene e quello che che deve
  avvenire su Unix e NFS. Questo ha un importante conseguenza: i file
  importanti devono essere di propriet di root, e non di bin o altri
  utenti non root, poich il solo utente che l'utente root dei client
  non pu divenire  l'utente root del server. Nella pagina del man di
  NFSd ci sono molte altre opzioni squash, e quindi puoi decidere di non
  dare fiducia a qualsiasi utente dei client. Puoi anche applicare lo
  squash a gruppi di UID o GID. Tutto ci  descritto nella pagina man
  di NFSd.


  root_squash  realt un'opzione di default con Linux NFSd, per
  garantire accesso come root ai filesystem, utilizza l'opzione
  no_root_squash.


  Un'altra cosa importante  assicurarsi che nfsd controlli che tutte le
  richieste provengano da una porta privilegiata. Se accetta richieste
  da qualsiasi porta un utente senza privilegi particolari potrebbe
  lanciare un programma facilmente ottenibile su Internet che comunica
  con il server nfs e gli fa credere di essere chiunque.  L'nfsd di
  Linux fa questo controllo per default, ma su altri Sistemi Operativi
  devi fare questo controllo da solo e dovrebbe essere descritto nella
  pagina man di nfsd del Sistema Operativo usato.


  Un'altra cosa: mai esportare un filesystem a 'localhost' o 127.0.0.1.
  Credimi.
  6.3.  Sicurezza del server: il portmapper

  Il portmapper di base ha problemi se usato con nfsd che rendono
  possibile prendere dei file dal server NFS senza alcun privilegio.
  Fortunatamente il portmapper che viene distribuito con Linux 
  relativamente sicuro contro questo attacco e pu essere reso
  maggiormente sicuro configurando la lista degli accessi in due file.


  Non tutte le distribuzioni di linux sono uguali. Alcune distribuzioni
  apparentemente aggiornate non includono un portmapper sicuro nemmeno
  oggi, a distanza di anno da quando il problema  stato reso noto.
  Almeno una distribuzione contiene ancora un portmapper non sicuro. Un
  modo facile per controllare se il tuo portmapper  buono oppure no, 
  quello di lanciare il comando strings(1) per vedere se il portmapper
  legge i file (importanti per gestire la sicurezza), /etc/hosts.deny e
  /etc/hosts.allow. Posto che il portmapper  /usr/sbin/portmap puoi
  controllarlo con il seguente comando: strings /usr/sbin/portmap | grep
  hosts.  Sulla mia macchina il risultato :


  ______________________________________________________________________
  /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
  ______________________________________________________________________




  Per prima cosa editiamo il file /etc/hosts.deny. Dovrebbe contenere la
  riga:


  ______________________________________________________________________
  portmap: ALL
  ______________________________________________________________________



  che nega l'accesso a chiunque. Poich  l'accesso  chiuso, prova il
  comando rpcinfo -p per testare se il tuo portmapper legge ed obbedisce
  realmente a questo file. rpcinfo non dovrebbe dare alcun risultato
  oppure un messaggio di errore. Non dovrebbe essere necessario
  riavviare il portmapper.


  Chiudere il portmapper a chiunque  un po' troppo drastico, quindi
  riapriamolo modificando il file /etc/hosts.allow, ma prima cerchiamo
  di capire che cosa metterci dentro. Il file dovrebbe semplicemente
  avere una lista di tutte le macchine che dovrebbero avere accesso al
  tuo portmapper. Ci sono comunque pochissimi casi di macchine che
  necessitano di un accesso totale per qualsiasi ragione. Il portmapper
  amministra nfsd, mountd, ypbind/ypserv, pcnfsd ed i servizi 'r', come
  ruptime e rusers.  Di questi, solo nfsd, mountd, ypbind/ypserv e forse
  pcnfsd possono avere qualche conseguenza. Tutte le macchine
  necessitano accessi ai servizi della tua macchina dovrebbero essere
  autorizzati a farlo. Diciamo che l'indirizzo della tua macchina 
  129.240.223.254 e che  in una sottorete 129.240.223.0 che deve poter
  accedere ai servizi della macchina (questa  la terminologia
  introdotta da networking HOWTO, se non ti ricordi rileggilo).
  Scriviamo quindi:



  ______________________________________________________________________
  portmap: 129.240.223.0/255.255.255.0
  ______________________________________________________________________



  in hosts.allow. Questo  lo stesso che scrivi come subnet mask in
  ifconfig. Per il dispositivo eth0 di questa macchina, ifconfig
  dovrebbe essere:


  ______________________________________________________________________
  ...
  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
  ...
  ______________________________________________________________________



  e netstat -rn dovrebbe mostrare:


  ______________________________________________________________________
  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
  ...
  ______________________________________________________________________



  (l'indirizzo di rete  nella prima colonna).

  I file hosts.deny e hosts.allow sono descritti nelle pagine man con lo
  stesso nome.


  IMPORTANTE: non mettere nient'altro che NUMERI IP nelle linee del
  portmapper di questi file. La risoluzione dei nomi pu indirettamente
  causare attivit del portmapper che pu causare attivit del
  portmapper che pu indirettamente causare attivit del portmapper...


  Le cose che abbiamo visto rendono il server pi chiuso. Il solo
  problema che ora rimane (eh gi :))  che qualcuno riesca a corrompere
  la shell di root (o che riesca a far partire la macchina con un floppy
  MS-DOS) su una macchina fidata e usando questo privilegio spedisca da
  una porta sicura come richieste come utente qualsiasi.


  6.4.  NFS e firewalls

   una buona cosa proteggere con un firewall le porte di nfs e del
  portmapper sul tuo router o firewall. L'nfsd lavora sulla porta 2049,
  sia udp che tcp. Il portmapper lavora sulla porta 111, sia tcp che
  udp.  Di solito. Controlla le porte usate con il comando rpcinfo -p.


  Se invece NFS deve attraversare un firewall, ci sono delle opzioni sui
  demoni nfsd e mountd pi recenti per usare porte non standard che
  possono essere tenute aperte attraverso il firewall.


  6.5.  Riassunto

  Se usi hosts.allow/deny, root_squash, nosuid e l'opzione per le porte
  privilegiate nei programmi portmapper/nfs, eviti la maggior parte dei
  bugs conosciuti di nfs e puoi stare abbastanza sicuro.  Comunque ci
  sono altri problemi: se qualcuno ha accesso alla rete pu far apparire
  strani comandi nel tuo .forward o leggere la tua posta se le directory
  /home o /var/spool/mail sono esportate via NFS. Per la stessa ragione,
  non dovresti mai lasciare le tue chiavi private di PGP su un disco
  esportato via NFS. O almeno ora sai i rischi che corri.


  NFS ed il portmapper formano un sottosistema complesso e quindi non 
  improbabile che nuovi bugs vengano scoperti, sia nella progettazione
  che nell'implementazione. Ci possono sempre essere buchi di cui
  qualcuno sta abusando. Ma questa  a vita. Per tenerti aggiornato su
  questo genere di problemi dovresti leggere almeno alcuni newsgroup
  come comp.os.linux.announce e comp.security.announce.


  7.  Lista di problemi: Mount

  Questa sezione  basata sulla lista di problemi di NFS mount di IBM
  Corp. I miei ringraziamenti a loro per averla resa disponibile per
  questo HowTo. Se rilevi alcuni problemi montando un file system via
  NFS, guarda questa lista prima di postare il tuo problema. Ognuno
  descrive un problema e come risolverlo.


  1. Il File system non viene esportato:


     Fix: Esportalo.


  2. La risoluzione del nome non corrisponde con la lista di exports


     Esempio: la lista di export dice di esportare a johnmad ma il nome
     di johnmad  risolto in johnmad.austin.ibm.com e quindi il mount
     viene negato.


     Fix: Metti nell'export entrambi i nomi.


     Pu anche accadere se il client ha due interfacce con nomi diversi
     e l'exports ne specifica una sola


     Fix: metti nell'exports entrambi i nomi.


     Pu anche accadere se il server non riesce ad eseguire le funzioni
     lookuphostbyname o lookuphostbyaddr sul client. Accertati che il
     client possa fare host <name>; host <ip_addr>; e che entrambe
     mostrino la stessa macchina.


     Fix: metti a posto la risoluzione dei nomi.



  3. Il file system  stato montato dopo che l'NFS  partito (sul
     server). In questo caso il server sta esportando la directory
     sottostante NFS e non il filesystem esportato.


     Fix: Riavvia NFSd.


     Nota: I client che abbiano gi montato il filesystem avranno
     problemi dopo il riavvio del server.


  4. La data  sbagliata su una o entrambe le macchine (ci pu dare
     problemi usando il comando make)


     Fix: Correggi la data.


     L'autore dell'HOWTO raccomanda di usare NTP per sincronizzare gli
     orologi.  Poich ci sono delle restrizioni su NTP negli USA, devi
     prelevare le versioni per debian, redhat o slackware da
     ftp://ftp.hacktic.nl/pub/replay/pub/linux o qualche mirror.


  5. Il server non accetta il mount da un utente che  in pi di 8
     gruppi.


     Fix: Diminuisci il numero di gruppi cui appartiene o usa un altro
     utente.


  6. Il portmapper del server non  disposto a parlare con te.


     Fix: Sposta, rimuovi o rinomina /etc/hosts.{allow,deny}.  Almeno su
     Linux questo funziona.  Su altri Unix potrebbe trattarsi di altri
     file.



  8.  FAQs

  Questa  la sezione delle FAQ.  basta su una vecchia FAQ di NFS di
  Alan Cox.


  1. Ho un gran numero di errori 'stale nfs handl quando uso Linux come
     server NFS



     Ci  causato da un bug in alcune vecchie versioni di nfsd.  
     stato corretto a partire da nfs-server2.2beta16



  2. Quando provo a montare un filesystem ottengo




         can't register with portmap: system error on send


  Probabilmente stai usando un sistema basato sulla distribuzione
  Caldera.  C' un bug negli script rc. Contatta Caldera per ottenere la
  versione corretta.



  3. Perch non posso eseguire un file dopo averlo copiato sul server
     NFS ?



     Il fatto  che nfsd tiene una cache dei file aperti per motivi di
     prestazioni (ricorda, gira in un'ambiente utente). Mentre nfsd ha
     un file aperto (come nel caso di una scrittura), il kernel non ne
     consente l'esecuzione. Le versioni di nfsd pi recenti di  spring
     95 rilasciano i file aperti dopo qualche secondo, versioni pi
     vecchie possono impiegare anni...



  4. I miei file su NFS sono a sola lettura



     Il default per il server NFS di Linux  di montare i filesystem a
     sola lettura. RTFM del file exports e nfsd. Avrai bisogno di
     modificare /etc/exports.



  5. Monto una partizione da un server linux, e mentre il comando ls
     funziona, non riesco a leggere o scrivere i file.



     Su versioni pi vecchie di Linux devi lanciare il server NFS con
     rsize=1024,wsize=1024.



  6. Monto in server NFS Linux con la dimensione dei blocchi tra
     3500-4000 regolarmente smette di rispondere.



     Allora semplicemente non farlo



  7. Pu Linux gestire NFS via TCP ?



     Al momento no.



  8. Ottengo numerosi strani errori se provo a montare una macchina
     usando Linux.



     Accertati che l'utente sia in 8 gruppi o meno. Server pi vecchi lo
     richiedono.


  9. Quando riavvio la mia macchina a volte smette di rispondere
     provando a smontare un NFS server che non risponde.



     Non smontare un server NFS quando riavvii, ignorali, non causano
     problemi se non li smonti. Il comando  umount -avt nonfs.



  10.
     I client NFS Linux sono molto lenti quando scrivono su NFS server
     Sun o BSD.



     Normalmente NFS scrive i dati in modo sincrono (puoi disabilitare
     questa modalit se vuoi, ma rischi di perdere dei dati). Peggio
     lavorano i kernel derivati da BSD, che tendono ad non essere in
     grado di lavorare in piccoli blocchi, quindi quando tu scrivi 4K di
     dati da una macchina linux in pacchetti da 1K, BSD fa questo:




               lettura di una pagina da 4K
               modifica di 1K
               scrittura di 4K sul disco fisico
               lettura di una pagina da 4K
               modifica di 1K
               scrittura di 4K sul disco fisico
               ecc..








  9.  Esportare i filesystem

  Il modo di esportare i filesystem attraverso NFS non  completamente
  coerente tra le varie piattaforme. In questo caso Linux e Solaris 2
  sono le eccezioni. Questa sezione propone una breve lista di modi di
  farlo sui vari sistemi. Se il tuo sistema non  riportato devi
  controllare sulle pagine del manuale. Prova a cercare parole come:
  nfsd, system administration tool, rc scripts, boot scripts, boot
  sequence, /etc/exports, exportfs. User un esempio durante questa
  sezione: come esportare /mn/eris/local ad apollon in lettura e
  scrittura.


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

  Questi Sistemi Operativi usano il tradizionale formato di Sun per il
  file export. In /etc/exports scrivi:


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




  La documentazione completa la trovi nella pagina del manuale di
  exports.  Dopo avere modificato il file, lancia exportfs -av per
  esportare i filesystem.


  Quanto sono legate le varie versioni di exportfs circa le variazioni
  di sintassi ? Su alcuni sistemi troverai che le righe precedenti
  vengano lette come:


  ______________________________________________________________________
  /mn/eris/local apollon
  ______________________________________________________________________



  oppure possano degenerare in:


  ______________________________________________________________________
  /mn/eris/local rw=apollon
  ______________________________________________________________________



  Raccomando di essere formali, altrimenti rischi che la versione
  successiva di exportfs sia pi sensibile e che quindi non funzioni pi
  nulla.


  9.2.  Solaris 2

  Sun ha completamente reinventato la ruota quando fecero Solaris 2.
  Quindi la loro sintassi  completamente diversa da quella di tutti gli
  altri. Ci che devi fare  modificare il file /etc/dfs/dfstab. Questo
  file deve contenere i comandi share, come descritto nella pagina del
  manuale share(1M).  Ad esempio:


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



  Dopo avere modificato il file, lancia il programma shareall per
  esportare il filesystem.


  10.  PC-NFS

  Non dovresti usare PC-NFS, ma samba.


  Mi spiace, non conosco nulla di PC_NFS. Se qualcuno vuole scriverci
  qualcosa lo faccia, ed io lo includer qui.