L'acronimo NFS sta per Network File System ed è un sistema di sharing utilizzato in ambiente Linux. A differenza di Samba, che consente ad un sistema *nix di fungere da file server per macchine Windows, NFS è riservato solo ed esclusivamente ai sistemi operativi Unix-like.
Configurarlo e farlo funzionare non è banale, in quanto, oltre alla configurazione del server, occorre lavorare anche sui client, facendo in modo che possano accedere alle directory condivise.
Configurazione del server
Per fare in modo che una macchina Linux possa funzionare da server NFS è necessario installare i seguenti pacchetti:
[root@server ~]# yum install nfs-server
[root@server ~]# yum install portmap
Il primo, ovviamente, è il demone che tira su il servizio NFS vero e proprio; il secondo, invece, serve a gestire le chiamate RPC.
Una volta installati i suddetti pacchetti, passiamo alla configurazione di NFS. Per fare ciò occorre editare il file /etc/exports:
[root@server etc]#nano exports
aggiungendo la directory da condividere (con pathname assoluto) e relativa ACL. Quest'ultima permetterà di fare una distinzione tra le macchine che possono avere accesso alle risorse condivise e quelle a cui l'accesso è stato negato.
/var/www/html/share 192.168.49.0/255.255.255.24 (rw,sync)
Le ultime due flag indicano che le macchine a cui è consentito l'accesso possono operare sia in lettura che in scrittura (rw) e che il contenuto della directory deve essere costantemente sincronizzato tra client e server (sync). Ovviamente, la directory da sharare deve essere esistente, dunque, se ancora non l'avete creata, fatelo mediante un banale mkdir <nomedirectory>
Inoltre, poichè il meccanismo di controllo degli accessi definito in precedenza è abbastanza blando (si basa sulo ed esclusivamente sull'indirizzo IP delle macchine che vogliono accedere agli share), è opportuno fare in modo che tali servizi non vengano esposti all'esterno, facendo uso di un firewall o di un dispositivo che implementa il NAT/PAT.
Bene, non ci resta che avviare i servizi nfs e portmap:
[root@server etc]# service portmap start
[root@server etc]# service nfs start
Se tutto è andato a buon fine, lanciando un netstat -anp, dovrebbero risultare in ascolto le seguenti porte:
111 UDP (portmap)
2049 TCP/UDP (NFS)
Abilitiamo l'avvio automatico dei suddetti servizi:
[root@server etc]# chkconfig --levels 2345 nfs on
[root@server etc]# chkconfig --levels 2345 portmap on
e lato server abbiamo finito.
Configurazione dei client
Come primo step, è necessario installare il seguente pacchetto:
[root@client ~]# yum install nfs-utils
Successivamente, la cosa più semplice da fare per consentire ai client di accedere alle directory condivise, consiste nell'editare il file /etc/fstab:
[root@client ~]# nano /etc/fstab
aggiungendo una entry del tipo:
<IP LAN server>:/var/www/html/share /var/www/html/share nfs hard,intr,rw,sync 0 0
In particolare, in questa direttiva sono presenti i seguenti campi:
1) share remota;
2) punto di mount locale (che deve essere una directory esistente);
3) tipo di file system;
4) ulteriori flag.
Per montare la share appena creata possiamo lanciare il seguente comando:
[root@linux ~]# mount -a
che monta tutte le partizioni definite nel file fstab, compresa quella NFS.
Per verificare che la share sia effettivamente up, basta digitare il comando mount (che per default mostra tutte le partizioni già montate).
Infine, se si aggiunge una nuova share e la si vuole rendere subito disponibile (senza un restart del demone NFS), è sufficiente lanciare sul server il seguente comando:
[root@server etc]# exportfs -a
Alla prossima.