Server NFS con Windows clients

Nel vasto panorama dei servizi di rete fruibili in ambiente *nix spesso si parla di NFS. Questo genere di File System permette di scambiare ad elevatissima velocità e con ottime performace file attraverso la rete. La configurazione e la realizzazione di un sistema client e server in ambito *nix è relativamente semplice. Sembra però che nel caso di di Windows questo genere di servizio sia difficile da configurare.

Ecco di seguito una guida su come poter ottenere una rete eterogenea di S.O.:

Installazione del servizio di NFS su Debian:

#apt-get install nfs-common
#apt-get install nfs-kernel-server

un volta installato il servizio lo si deve avviare lanciando il comando:

#/etc/init.d/nfs-kernel-server start

lo stesso di può fermare con stop o riavviare con restart.

Una volta avviato il servizio si possono indicare le condivisioni che il server NFS deve mettere a disposizione ai vari client.

Per esempio, dobbiamo condividere le cartelle create in /var/:

/var/nfshare
e
/var/nfshare1

le condivisioni vengono aggiunte andando a modificare il file:

#nano /etc/exports

se si vuole una spiegazione più completa sul file di configurazione /etc/exports si rimanda alla pagina del manuale online:

#man exports

andiamo ad indicare al nostro NFS server quali sono le cartelle condivise aggiungendo al nostro file /etc/expots le seguenti righe:

/var/nfshare 192.168.0.15(rw,sync,no_subtree_check)
/var/nfshare1 *(rw,sync,no_subtree_check)

in definitiva aggiungiamo la path delle condivisioni alle quali gli utenti possono accedere:

/var/nfshare e /var/nfshare1

per ogni singola condivisione indiciamo chi può avere accesso alle risorse condivise. In questo caso a /var/nfshare può accedere solo la macchina con indirizzo Ip 192.168.0.15 mentre alla condivisione /var/nfshare1, avendo specificato il carattere wildcard * a quella condivisione possono accedere tutte le macchine in rete. Per ogni condivisione abbiamo specificato dei parametri:

rw accesso alla cartella condivisa in lettura e scrittura
sync avremo un controllo sulla scrittura del dato nello storage condivisa da NFS server
no_subtree_check non viene eseguito il controllo sul file system o nelle sottodirectory esportate dall’NFS server

Una volta implementato il file di configurazione non ci resta che attivare tutte le condivisioni attraverso il nostro NFS server:

#exportfs -a

ecco che le nostre condivisioni sono attive!!! Ultimo controllo che si può fare è controllare se il nostro NFS server è attivo e su che porta è in ascolto:

#netstat -na

Ecco, ora non ci resta con il nostro client, in questo caso Windows, collegarci alle condivise del nostro NFS server. Intanto si deve installare il client NFS per Windows che si chiama Windows Service For Unix che da questo punto in poi lo chiameremo SFU. Questo programma installa dei servizi base per il collegamento a delle condivisioni NFS e per la gestione degli utenti abilitati alla connessione sul server.

Il servizio, una volta installato lo si trova nel pannello di controllo -> strumenti di amministrazione alla voce Services for Unix Administration anche se si può raggiungere facilmente dal menu start.

Per prima cosa si abilita il Name Mapping visto questo servizio all’installazione è disabilitato. Per fare ciò sempre attraverso il pannello di controllo -> strumenti di amministrazione -> servizi cerchiamo la voce User Name Mapping e andiamo ad abilitarlo e successivamente avviarlo in automatico.

Un volta fatto questo siamo quasi pronti per connetterci al nostre NFS server ma prima di fare ciò dovremo procuraci dall’amministratore del nostro server NFS i file passwd e group che si trovano nella nostra macchina Debian nella cartella /etc/.
Una volta in possesso dei file passwd e group andremo a copiarli in un cartella in c:/ dove li potremo trovare agevolmente.

Utilizziamo ora il Services For UNIX Administrator! Alla voce User Name Mapping come configurazione (Configuration) selezioniamo Use Password and Group files ed andremo a selezionare il file delle Password denominato passwd e successivamente il file dei gruppi denominato group, precedentemente salvati in c:\, ed applichiamo le modifiche cliccando sul tasto in alto a destra.

Passiamo ora alla schermata Maps, spuntiamo la voce Simple maps e come dominio di windows potremo scegliere la macchina locale o eventualmente un dominio se nell’eventualità ci fosse un Active Directory. Nel nostro esempio useremo gli utenti presenti nella nostra macchina locale.

Su Advanced maps andremo ad associare l’utente Windows con l’utente presente sul server NFS da noi creato, in questo modo andremo a dare i diritti di accesso, lettura, scrittura ed esecuzione al nostro utente Windows ed il nostro server NFS lo vedrà come un suo utente locale associato. Quindi come Windows Domain sceglieremo la macchina locale e cliccheremo su List Windows Users e selezioneremo l’utente Windows poi cliccheremo su List UNIX Users e selezioneremo l’utente Linux a cui vorremmo associare il nostro utente Windows. Una volta selezionati gli utenti lo aggiungeremo nella Mapped users cliccando il tasto Add.

N.B. se associamo il nostro utente Windows all’utente root sul server i file creati saranno tutti associati all’utente root del server, quindi per chi amministra il server NFS sarebbe bene creare degli utenti non con diritti amministrativi sul server NFS in modo da avere, oltre ai file di log del server NFS, anche una diretta associazione file e utente creato. Per finire ora basta solo connettere le unità di rete delle nostre condivisioni dell’NFS Server da risorse del computer.

Una volta connesso avremo la nostra unità di rete pronta all’uso:

Buon NFS!