Condivisione di files in una rete Linux con NFS

Posted by RedBlue on November 20, 2009 · 3 mins read

PREMESSA: questa guida è rivolta a coloro che hanno bisogno di condividere files tra due o più pc sui quali sia installato Linux (su tutti, non solo su uno).

Useremo NFS (acronimo di Network FileSystem), che, pur avendo ormai la sua età, è sempre semplice, funzionale e sicuro, oltre che rapido (che non guasta mai). Dobbiamo configurare prima il server e poi il/i client..

Cominciamo dal server, installando ovviamente il necessario:

sudo apt-get install portmap nfs-kernel-server

Poi specifichiamo quali directory sul server vogliamo condividere:

sudo gedit /etc/exports

Aggiungiamo una riga per ogni directory da condividere con la seguente sintassi:

/percorso_completo_dir indirizzo_IP_del_client(rw,sync)

Per abilitare la lettura/scrittura, oppure

/percorso_completo_dir indirizzo_IP_client(ro,sync)

Per accedere in sola lettura. Potenzialmente avremmo già finito, ma è meglio rendere più sicura questa condivisione, specificando chi può accedervi; per fare ciò digitiamo

sudo gedit /etc/hosts.allow

Ed inseriamo le seguenti righe:

portmap: indirizzi_IP_client_autorizzati
mountd: indirizzi_IP_client_autorizzati
nfsd: indirizzi_IP_client_autorizzati
statd: indirizzi_IP_client_autorizzati
lockd: indirizzi_IP_client_autorizzati
rquotad: indirizzi_IP_client_autorizzati

Se abbiamo più client, i loro indirizzi vanno separati da virgole. Specifichiamo anche quali client non sono autorizzati ad accedere alla condivisione:

sudo gedit /etc/hosts.deny

Ed inseriamo la riga:

portmap: ALL
mountd: ALL
nfsd: ALL
statd: ALL
lockd: ALL
rquotad: ALL

In questo modo ogni client non compreso tra quelli specificati in precedenza non avrà accesso alla nostra condivisione. Si può anche precludere l'accesso ad un client preciso, specificandone l'IP al posto di ALL, oppure negare l'accesso a tutti tranne uno, in questo caso si usa la sintassi:

ALL EXCEPT indirizzi_IP_client_autorizzati

Con il server abbiamo finito. Riavviamo i servizi per rendere effettive le modifiche:

sudo portmap restart
sudo /etc/init.d/nfs-kernel-server restart

Andiamo a configurare il client. Prima di tutto installiamo anche qui il necessario:

sudo apt-get install portmap nfs-common

Avremmo già finito, ma anche in questo caso è meglio rendere la condivisione più sicura.

sudo gedit /etc/hosts.deny

Inseriamo la riga:

portmap: ALL

Poi:

sudo gedit /etc/hosts.allow

Inseriamo:

portmap: indirizzo_IP_server

A questo punto abbiamo davvero finito, possiamo montare la condivisione: per farlo occorre creare una directory apposita, ad esempio

sudo mkdir /media/condivisione

Poi montiamo la condivisione con il comando:

sudo mount -t nfs indirizzo_IP_server:/percorso_completo_dir_condivisa /media/condivisione

Se tutto va bene, vedrete apparire un nuovo dispositivo montato tra le risorse del computer (es. con Gnome). Quest'ultimo comando va dato chiaramente ogni volta che si spegne e riaccende il client. Volendo però lo si può rendere permanente, editando fstab:

sudo gedit /etc/fstab

Inseriamo la riga:

# Condivisione NFS
indirizzo_IP_server:/percorso_completo_dir_condivisa /media/condivisione nfs rw,hard,intr 0 0

Chiaramente rw,hard,intr sono solo alcune opzioni possibili, come ogni altro filesystem ne esistono altre, ad esempio potremmo scrivere semplicemente defaults per montare la condivisione con le opzioni standard.

Alla prossima..