Se dovete condividere file all’interno di una rete mista (Linux e/o Windows e/o Mac) dovete installare e configurare Samba.
Se invece dovete condividere file all’interno di una rete unificata Linux (solo pc con Linux), o se siete in rete mista ma la condivisione dovrà servire solo i pc Linux, vi converrà usare NFS in quanto più sicuro, performante e leggero.
Lato server
Installiamo i servizi NFS:
sudo apt-get install portmap nfs-kernel-server
Per indicare al server quali saranno le cartelle che dovranno essere condivise modifichiamo il file /etc/exports:
sudo nano /etc/exports
Per ogni cartella da condividere aggiungiamo una riga, seguendo la seguente sintassi:
/cartella_da_condividere indirizzo_ip_del_client(rw,sync)
Se volete condividere la cartella dell’esempio precedente, ma in sola lettura:
/cartella_da_condividere indirizzo_ip_del_client(ro,sync)
Adesso possiamo rendere il sistema più sicuro specificando quali client possono accedere al pc e quali invece no.
Specifichiamo i client, e relativi servizi lato server, a cui vogliamo dare l’accesso modificando il file /etc/hosts.allow:
nano /etc/hosts.allow
ed aggiungiamo la seguente riga (per specificare più indirizzi ip separarli con la virgola):
portmap mountd nfsd statd lockd rquotad : indirizzi_ip_dei_client_ammessi
Specifichiamo i client, e relativi servizi lato server, a cui vogliamo negare l’accesso modificando il file /etc/hosts.deny:
nano /etc/hosts.deny
ed aggiungiamo la seguente riga
portmap mountd nfsd statd lockd rquotad : ALL
con questa riga neghiamo a tutti l’accesso alle risorse condivise via NFS tranne che ai client specificati nel file /etc/hosts.allow
Se invece vogliamo negare l’accesso ad un preciso client, al posto di ALL, basta specificarne l’indirizzo ip.
Se invece vogliamo negare l’accesso a tutti i client tranne ad uno in particolare, la nostra riga in /etc/hosts.deny dovrà essere:
portmap mountd nfsd statd lockd rquotad : ALL EXCEPT indirizzi_ip_dei_client_ammessi
Nei file hosts.allow e hosts.deny potete specificare i client tramite indirizzo ip o tramite host e/o nome del dominio (nel caso abbiate un vostro server DNS).
Nel caso utilizziate gli host ricordate che eventuali aggressori potranno utilizzare vari exploit per aggirare la risoluzione del nome.
Inoltre, ad ogni interruzione del servizio DNS, le condivisioni non risulterebbero più disponibili nemmeno per i client ammessi.
Pertanto, dove possibile, è sempre più sicuro e funzionale specificare i client tramite indirizzo ip.
A questo punto, per rendere effettive le modifiche, dobbiamo riavviare i demoni:
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
Lato client
Installiamo, nel caso non fossero già presenti, i pacchetti necessari:
sudo apt-get install portmap nfs-common
Il client è pronto per montare la condivisione, ma possiamo rendere anch’esso più sicuro specificando delle politiche di accesso come precedentemente fatto per il server.
Modifichiamo il file /etc/hosts.deny:
sudo nano /etc/hosts.deny
ed inseriamo la seguente riga:
portmap : ALL
Adesso modifichiamo il file /etc/hosts.allow:
sudo nano /etc/hosts.allow
ed inseriamo la seguente riga:
portmap : indirizzo_ip_del_server
Adesso possiamo montare le condivisione.
Creiamo la cartella che sarà il nostro punto di mount:
mkdir /mnt/punto_di_mount
adesso montiamo la condivisione con il comando:
sudo mount -t nfs indirizzo_ip_del_server:/percorso_completo_cartella_condivisa /media/punto_di_mount
Nell’ambiente grafico Gnome, troveremo la risorsa condivisa appena montata nel menù Risorse e la voce corrisponderà al nome assegnato alla directory scelta come punto_di_mount. Questo se la directory scelta come punto_di_mount sarà all’interno della directory /media.
In ogni caso potrete accedere sia da shell che dall’ambiente grafico navigando nella directory corrispondente al punto di mount scelto.
Volendo, possiamo montare la condivisione direttamente nel file /etc/fstab per averla disponibile automaticamente all’avvio.
Per fare ciò modifichiamo il file /etc/fstab:
sudo nano /etc/fstab
ed aggiungiamo la riga:
indirizzo_ip_del_server:percorso_completo_cartella_condivisa /mnt/punto_di_mount nfs rw,hard,intr 0 0
Altre opzioni (colore blu) per il mount in /etc/fstab possono essere:
defaults Usa le impostazioni di default, ovvero rw,suid,dev,exec,auto,nouser e async
ro Monta la condivisione in sola lettura (da usare al posto di rw)
noauto Evita di montare automaticamente il filesystem all’avvio. Utile se la condivisione non è sempre disponibile
user Permette di montare la condivisione anche da utente normale
exec Permette di mantenere i privilegi per i file eseguibili
suid Permette di mantenere il suid
dev Dispositivi a blocchi
5 Febbraio 2008 alle 10:33 |
posto qui perchè sul sito di supporto per ubuntu in italiano non trovo aiuto,
non riesco a montare una condivisione NFS all’ avvio in automatico anche se ho aggiunto quella riga al file fstab, quale potrebbe essere il problema ?
9 Febbraio 2008 alle 0:51 |
Ciao con due comandi spiegati qui: http://www.pluto.it/files/ildp/HOWTO/NFS-HOWTO/NFS-HOWTO-4.html
e nella pag precedente, mi è partito subito tutto.
Forse il rsize/wsize? Non so prova.
Ciao.
9 Febbraio 2008 alle 1:03 |
Ho trovato:
nel lato server in /etc/hosts.allow
si deve mettere la riga
ALL: ip_client
Ciao.
21 Giugno 2008 alle 9:14 |
cmq NFS funziona con tutti i SO unix-like: opensolaris, freebsd, mac…
10 Agosto 2008 alle 21:38 |
Cercando di montare una condivisione nfs su un client Mandriva 2008.1 Spring viene restituito l’errore:
mount.nfs: rpc.statd is not running but is required for remote locking.
Either use ‘-o nolocks’ to keep locks local, or start statd.
Questo perchè oltre a quanto specificato nell’articolo dobbiamo installare il pacchetto nfs-utils-clients:
urpmi nfs-utils-clients
ed avviare i servizi portmap e nfs-common con i comandi:
/etc/init.d/portmap start
/etc/init.d/nfs-common start
Adesso sarà possibile montare la condivisione.
2 Novembre 2008 alle 10:10 |
Salve. Complimenti per le guide, ho scoperto il blog e me le sto leggendo tutte. Direi che hai il dono della chiarezza! Volevo saper se possono coesistere i protocolli smb e nfs. Ovvero: avendo una rete mista posso accedere alle stesse risorse tramite smb dai client microsoft e tramite nfs da quelli unix-like?
Grazie
2 Novembre 2008 alle 13:01 |
Grazie per i complimenti!
Certo. Puoi usare entrambi i protocolli contemporaneamente.