Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113
Installiamo un network file system | HTML.it
Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Installiamo un network file system

Link copiato negli appunti

Poco tempo fa vi abbiamo parlato di SAMBA, un progetto nato per poter garantire le condivisioni di file su moltissime piattaforme e la compatibilità con il protocollo SMB. Vi avevamo accennato a NFS, sconsigliandovene l'uso su sistemi operativi non Unix Like. In questo articolo approfondiremo l'argomento, spiegandovi come configurare un server NFS (Network File System) e come accedervi dal lato client.

Sul perché evitare di utilizzare NFS su sistemi operativi non UNIX vi abbiamo già parlato in precedenza, comunque ribadiamo il concetto citando dall'NFS-HOWTO: «NFS ha un problema di sicurezza di base per cui il client, se non specificato altrimenti, si fida del server NFS e viceversa. Questo può essere negativo. Significa che se la shell di root viene compromessa sul server, viene compromessa anche quella di tutti i client. E viceversa».

Sistemi di protezione per NFS vengono dati dall'autenticazione richiesta per poter accedere a un sistema operativo Unix. In sistemi dove questo non avviene, NFS si tramuta in una gigantesca falla di sicurezza. Oltre a questo NFS crea tutta una serie di problemi legati alla sicurezza che affronteremo in seguito. Prima di tutto è bene introdurre brevemente il funzionamento di NFS. NFS (Network File System) è un protocollo ideato da Sun Microsystems.

Come avrete intuito si basa su una struttura del tipo client-server e per funzionare si appoggia a RPC (Remote Procedure Call), tramite portmap, un demone che ha il compito di gestire le richieste e la trasmissione dei dati. Se non è presente nella vostra distribuzione, occorre quindi installarlo. Altra cosa di cui avrete bisogno è il supporto a NFS all'interno del kernel, solitamente è presente con i kernel forniti di default dalle distribuzioni, ma tenetelo presente qualora decidiate di ricompilare.

In particolare prestate attenzione al menu "File systems", sottomenu "Network File Systems" (le voci sono "NFS file system support", "Provide NFSv3 client support", "NFS server support", "Provide NFSv3 server support", a seconda se vogliate configurare il vostro PC come server o come client). È anche possibile utilizzare una versione di nfs-server che gira in user-space a scapito di prestazioni, ma può risultare molto più comoda. In questo caso ci riferiremo alla versione che gira in kernel space (che è supportato a partire dal kernel 2.1.12).

Se la vostra distribuzione è Debian dovrete installare i pacchetti chiamati nfs-server (o nfs-kernel-server a seconda della versione che avete), portmap, nfs-common, libwrap0. Se utilizzate Red Hat avrete bisogno di installare i pacchetti portmap e nfs-utils. Una volta installati possiamo passare alla configurazione di NFS vera e propria.

Dal lato server avete bisogno di definire le directory che vorrete condividere con gli altri computer. Potrete definire questo nel file /etc/exports. La sintassi è del tipo:

al posto di /directorydacondividere dovrete mettere la directory scelta, al posto di 192.168.0.XXX l'IP (o la classe di IP) abilitata a utilizzare la risorsa presente sul vostro PC. Se ad esempio volessimo "esportare" la directory /usr/local/nfs

/usr/local/nfs 192.168.0.0/24(rw)

Ovviamente è anche possibile inserire più righe e quindi rendere disponibili più directory. L'opzione rw assegna il permesso di lettura e scrittura per la condivisa in questione.

Un'opzione che viene messa di default ma è risulta interessante parlarne è root_squash no_root_squash

È anche possibile impostare una condivisa in sola lettura sostituendo rw con ro. Le possibilità non finiscono qui. Esistono infatti tantissime opzioni disponibili per il files /etc/exports /etc/exports

lnxbox1:~# /etc/init.d/portmap startlnxbox1:~# /etc/init.d/nfs start

Qualora vorreste aggiungere o modificare le condivise non sarà necessario riavviare i demoni ma basterà eseguire il seguente comando:

lnxbox1:~# exportfs -a

Potrete testare che tutto sia a posto scrivendo:

lnxbox1:~# showmount -e

Se otterrete un output del tipo:

Export list for lnxbox1:/usr/local/nfs 192.168.0.0/24

Allora è tutto ok.

A questo punto non vi rimane altro che configurare la macchina dal lato client. Per far questo basterà caricare portmap come abbiamo già visto nella configurazione del server (/etc/init.d/portmap start

lnxbox1:~# mount -t nfs -o wsize=8192,rsize=8192 ipdelserver:/usr/local/nfs/mnt/condivisa

Al posto di "ipdelserver" inserite l'IP relativo al computer sul quale risiede la partizione esportata. L'opzione -o wsize=8192,rsize=8192 /mnt/ /etc/fstab

192.168.0.6:/usr/local/nfs /mnt/condivisa nfs wsize=8192,osize=8192 1 1

Configurare una condivisa con NFS non è un'impresa titanica /etc/exports /etc/hosts.allow

portmap: IP

Sostituendo ad IP l'IP numerico appartenente al PC che vogliamo "abilitare". Oppure se volessimo consentire a tutti i PC appartenenti alla rete locale di accedere alla condivisa appena creata possiamo scrivere:

portmap: LOCAL

Inoltre potrebbe essere conveniente chiudere con un firewall la porta relativa al portmapper nei confronti del traffico proveniente dall'esterno. In particolar modo portmap è in ascolto sulla porta 111 sia su protocollo TCP che UDP. Tenete in conto anche di questo quando configurate un firewall. Se volete avere maggiori delucidazioni su come configurare un firewall con IPTABLES potete consultare un nostro articolo.

Ti consigliamo anche