Avanti Indietro Indice

3. Configurare un server NFS

3.1 Prerequisiti

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.

3.2 Il primo passo

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.

3.3 Il portmapper

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.

3.4 Mountd e nfsd

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.


Avanti Indietro Indice