<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>NFS HOWTO: Configurare un server NFS</TITLE> <LINK HREF="NFS-HOWTO-4.html" REL=next> <LINK HREF="NFS-HOWTO-2.html" REL=previous> <LINK HREF="NFS-HOWTO.html#toc3" REL=contents> </HEAD> <BODY> <A HREF="NFS-HOWTO-4.html">Avanti</A> <A HREF="NFS-HOWTO-2.html">Indietro</A> <A HREF="NFS-HOWTO.html#toc3">Indice</A> <HR> <H2><A NAME="nfs-server"></A> <A NAME="s3">3. Configurare un server NFS</A></H2> <H2><A NAME="ss3.1">3.1 Prerequisiti</A> </H2> <P>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. <P> <H2><A NAME="ss3.2">3.2 Il primo passo</A> </H2> <P>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 <A HREF="NFS-HOWTO-4.html#nfs-client">Configurazione di un client NFS</A><P> <P>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. <P> <P>Se siete di fretta, fate riferimento alla sezione <A HREF="NFS-HOWTO-10.html#linuxtwotwo">NFS in Linux 2.2</A> prima di continuare a leggere questo HOWTO. <P> <P>Quelli di voi che continueranno a leggere, avranno bisogno di configurare alcuni programmi. <P> <H2><A NAME="portmapper"></A> <A NAME="ss3.3">3.3 Il portmapper</A> </H2> <P>Il portmapper su Linux può chiamarsi sia <CODE>portmap</CODE> sia <CODE>rpc.portmap</CODE>. 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 <A HREF="NFS-HOWTO-6.html#nfs-security">Sicurezza e NFS</A>, che vi consiglio di leggere con urgenza. <P> <P>Avvio del portmapper. Lo si può fare in due modi: <CODE>portmap</CODE> oppure <CODE>rpc.portmap</CODE> e li dovreste trovare nella directory <CODE>/usr/sbin</CODE> (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 <CODE>/etc/rc.d</CODE>, <CODE>/etc/init.d</CODE> oppure <CODE>/etc/rc.d/init.d</CODE>. Se c'è uno script che ha il nome simile a <CODE>inet</CODE> 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 <CODE>ps aux</CODE>. È partito? Bene. <P> <P>Ancora una cosa. L'accesso remoto al portmapper è regolato dal contenuto dei file <CODE>/etc/hosts.allow</CODE> e <CODE>/etc/hosts.deny</CODE>. Se <CODE>rpcinfo -p</CODE> fallisce, ma l'esecuzione del portmapper continua, esaminate questi file. Verificate la sezione <A HREF="NFS-HOWTO-6.html#nfs-security">Sicurezza e NFS</A> per dettagli su questi file. <P> <H2><A NAME="nfsd"></A> <A NAME="ss3.4">3.4 Mountd e nfsd</A> </H2> <P>I programmi successivi che devono essere avviati sono mountd e nfsd. Ma prima dobbiamo modificare un altro file. Questa volta <CODE>/etc/exports</CODE>. Supponiamo che io voglia che il file system <CODE>/mn/eris/local</CODE>, che risiede su <CODE>eris</CODE>, possa essere disponibile anche sulla macchina chiamata <CODE>apollon</CODE>. Dobbiamo quindi mettere queste righe nel file <CODE>/etc/exports</CODE> di eris: <P> <HR> <PRE> /mn/eris/local apollon(rw) </PRE> <HR> <P>Le righe sopra indicate consentono l'accesso in lettura e scrittura a <CODE>/mn/eris/local</CODE>. Invece di <CODE>rw</CODE> potremmo mettere <CODE>ro</CODE> 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 <CODE>exports</CODE> 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. <P><B>Nota: la sintassi del file exports non è la stessa di altri Unix.</B> C'è una sezione separata in questo HOWTO che riguarda il file <CODE>exports</CODE> di altri Unix. <P> <P>Ora siamo pronti per lanciare il comando mountd (oppure può chiamarsi <CODE>rpc.mountd</CODE>), successivamente nfsd (che potrebbe chiamarsi <CODE>rpc.nfsd</CODE>). Entrambi leggono il file exports. <P> <P>Se modificate il file <CODE>/etc/exports</CODE> accertatevi che nfsd e mountd sappiano che il file è stato cambiato. Il modo tradizionale consiste nel lanciare <CODE>exportfs</CODE>. Molte distribuzioni non hanno il programma exportfs, allora si può installare questo script sulla macchina: <P> <HR> <PRE> #!/bin/sh killall -HUP /usr/sbin/rpc.mountd killall -HUP /usr/sbin/rpc.nfsd echo re-exported file systems </PRE> <HR> <P> <P>Salvatelo chiamandolo <CODE>/usr/sbin/exportfs</CODE> e non dimenticate di modificare le autorizzazioni con il comando <CODE>chmod a+rx</CODE>. Ora, ogni volta che modificate il file exports, lanciate exportfs come root. <P> <P>Dovreste quindi controllare che mountd e nfsd stiano girando correttamente. Prima con <CODE>rpcinfo -p</CODE>. Dovrebbe mostrare qualcosa di simile al seguente: <P> <HR> <PRE> 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 </PRE> <HR> <P>Come si vede il portmapper ha avviato i propri servizi e così pure mountd e nfsd. <P> <P>Se invece appare l'errore: <CODE>rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused</CODE>, <CODE>RPC_PROG_NOT_REGISTERED</CODE> o qualcosa di simile, significa che il portmapper non sta girando oppure c'è qualcosa nel file <CODE>/etc/hosts.{allow,deny}</CODE> che impedisce al portmapper di rispondere. Fate riferimento alla sezione <A HREF="NFS-HOWTO-6.html#nfs-security">Sicurezza e NFS</A> per dettagli su questi file. Se appare il messaggio <CODE>No remote programs registered.</CODE> 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. <P> <P>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. <P> <P>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. <P> <P>Le pagine man che dovrebbero esservi familiari adesso, sono quelle di portmap, mountd, nfsd ed exports. <P> <P>Bene, se avete fatto tutto esattamente come ho detto probabilmente è tutto pronto per iniziare a lavorare sul client NFS. <P> <HR> <A HREF="NFS-HOWTO-4.html">Avanti</A> <A HREF="NFS-HOWTO-2.html">Indietro</A> <A HREF="NFS-HOWTO.html#toc3">Indice</A> </BODY> </HTML>