Avanti Indietro Indice

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.


Avanti Indietro Indice