Prima di continuare a leggere questo HOWTO dovete essere in grado di fare telnet tra due macchine che avete intenzione di configurare come client e server. Se non siete in grado di farlo, leggete il networking/NET-2 HOWTO per installare e configurare correttamente la rete.
Prima di fare qualsiasi altra cosa, abbiamo bisogno di configurare un server NFS. Se fate parte di un dipartimento o università probabilmente ce ne saranno molti altri già configurati. Se avete accesso a tali server o state leggendo questo HOWTO per utilizzarli, non avete bisogno di leggere questa sezione e potete passare direttamente alla sezione Configurazione di un client NFS
Se avete bisogno di installare NFS su una macchina che non abbia Linux, allora dovete 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, potete passare alla sezione successiva. Oppure leggete altre parti di questa sezione poiché alcune cose che saranno dette potrebbero essere interessanti anche per altri sistemi, indipendentemente dal tipo di macchina che volete usare come server.
Se siete di fretta, fate riferimento alla sezione NFS in Linux 2.2 prima di continuare a leggere questo HOWTO.
Quelli di voi che continueranno a leggere, avranno bisogno di configurare alcuni programmi.
Il portmapper su Linux può chiamarsi sia portmap
sia
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 aprite. La descrizione per chiudere alcuni di questi buchi è nella sezione
Sicurezza e NFS, che vi consiglio
di leggere con urgenza.
Avvio del portmapper. Lo si può fare in due modi: portmap
oppure
rpc.portmap
e li dovreste trovare nella directory /usr/sbin
(su alcune macchine si chiama rpcbind). Per ora lo potete avviare manualmente,
ma è necessario che venga lanciato ogni volta che si riavviia la macchina e per
questo motivo dovrete creare/modificare i vostri script rc. Gli script rc sono descritti
in maggior dettaglio nella pagina man di init, in genere 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 dovete scriverci va oltre lo scopo di questo HOWTO.
Avviate portmap e controllate che esso sia correttamente partito con il comando
ps aux
. È partito? Bene.
Ancora una cosa. L'accesso remoto al portmapper è regolato dal
contenuto dei file /etc/hosts.allow
e
/etc/hosts.deny
. Se rpcinfo -p
fallisce, ma l'esecuzione
del portmapper continua, esaminate questi file. Verificate la sezione
Sicurezza e NFS per dettagli su questi
file.
I programmi successivi che devono essere avviati sono mountd e nfsd. Ma prima
dobbiamo modificare un altro file. Questa volta /etc/exports
.
Supponiamo 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 indica l'accesso in sola lettura (se non si mette nulla, è di default
a sola lettura). Ci sono altre opzioni che è possibile inserire e ne discuteremo
alcune relative alla sicurezza più avanti. Le opzioni sono tutte elencate
nella pagina man di exports
che dovreste leggere almeno una volta
nella vita. Ci sono modi migliori che elencare gli host nel file exports.
Potete, per esempio, usare net groups se state utilizzando le NIS (o NYS), e potete sempre
specificare domini interi oppure sottoreti IP come host autorizzati
a montare qualcosa. Ma dovreste considerare che qualcuno non autorizzato
potrebbe accedere al server se usate 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
), successivamente nfsd (che potrebbe chiamarsi rpc.nfsd
).
Entrambi leggono il file exports.
Se modificate il file /etc/exports
accertatevi che nfsd e
mountd sappiano che il file è stato cambiato. Il modo tradizionale
consiste nel lanciare exportfs
. Molte distribuzioni non hanno il programma
exportfs, allora si può installare questo script sulla macchina:
#!/bin/sh killall -HUP /usr/sbin/rpc.mountd killall -HUP /usr/sbin/rpc.nfsd echo re-exported file systems
Salvatelo chiamandolo /usr/sbin/exportfs
e non dimenticate
di modificare le autorizzazioni con il comando chmod a+rx
. Ora,
ogni volta che modificate il file exports, lanciate exportfs come root.
Dovreste quindi controllare che mountd e nfsd stiano girando correttamente.
Prima con rpcinfo -p
. Dovrebbe mostrare qualcosa di simile al seguente:
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 si vede il portmapper ha avviato i propri servizi e così pure mountd e nfsd.
Se invece appare l'errore: rpcinfo: can't contact portmapper: RPC: Remote
system error - Connection refused
,
RPC_PROG_NOT_REGISTERED
o qualcosa di simile, significa che il
portmapper non sta girando oppure c'è qualcosa nel file
/etc/hosts.{allow,deny}
che impedisce al portmapper di
rispondere. Fate riferimento alla sezione
Sicurezza e NFS per dettagli su questi file. Se appare il messaggio
No remote programs registered.
significa che il portmapper non
vuole rispondere oppure qualcosa non funziona. Interrompete nfsd, mountd e il
portmapper e riprovate la sequenza di avvio dall'inizio.
Dopo avere controllato che il portmapper riporti i servizi, si può 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 se sembra che qualcosa non funzioni.
Naturalmente, avrete bisogno di modificare i file rc per avviare mountd e nfsd e il portmapper quando si avvia la macchina. È probabile che gli script esistano già sulla macchina, dovrete solo togliere il commento dalle parti interessate oppure modificare il livello di init affinché queste vengano attivate.
Le pagine man che dovrebbero esservi familiari adesso, sono quelle di portmap, mountd, nfsd ed exports.
Bene, se avete fatto tutto esattamente come ho detto probabilmente è tutto pronto per iniziare a lavorare sul client NFS.