NFS (Network File System) è un protocollo di file system che consente agli utenti di visualizzare e accedere a file e cartelle su un sistema remoto come se fossero archiviati localmente. È una configurazione client-server in cui il sistema che condivide l'archiviazione è chiamato server, mentre il sistema che accede all'archiviazione archiviata su un server è chiamato client. NFS consente agli utenti o agli amministratori di sistema di montare tutto o parte del file system di un server sul sistema del client. I client possono quindi accedere ai file montati in base a autorizzazioni specifiche (lettura, scrittura) assegnate a tali file.
La creazione della configurazione client-server NFS è un'operazione semplice che può essere eseguita in pochi passaggi:installazione, esportazione, montaggio e accesso. In questo articolo, spiegheremo il processo di configurazione di un server e client NFS su un sistema Debian in modo da poter condividere file tra sistemi remoti.
Abbiamo eseguito i comandi e le procedure menzionati in questo articolo su un sistema Debian 10.
Server NFS
Per configurare un sistema host per la condivisione di directory, dovremo installare il server del kernel NFS al suo interno. Segui i passaggi seguenti per farlo:
Passaggio 1:installa il server del kernel NFS
Prima di procedere con l'installazione del server NFS, aggiorna l'indice del tuo repository di sistema eseguendo il seguente comando in Terminale:
$ sudo apt-get update
Una volta aggiornato, installa il server del kernel NFS eseguendo il seguente comando in Terminale:
$ sudo apt install nfs-kernel-system
Il sistema potrebbe fornirti un S/n opzione per confermare l'installazione. Premi y per confermare e l'installazione verrà avviata nel tuo sistema.
Fase 2:crea la directory di esportazione
Ora dobbiamo creare una directory di esportazione che verrà utilizzata per la condivisione con i sistemi del cliente. Puoi etichettarlo secondo le tue preferenze. Qui stiamo creando una directory di esportazione con il nome "cartella condivisa" nella directory /mnt.
Esegui il comando seguente menzionando il percorso della directory di esportazione come segue:
$ sudo mkdir –p /mnt/sharedfolder
Per consentire a tutti i client di accedere all'autorizzazione alla directory di esportazione, sarà necessario rimuovere le autorizzazioni restrittive. Eseguire il comando seguente per farlo:
$ sudo chown nobody:nogroup /mnt/sharedfolder
Quindi applica una nuova autorizzazione che consente a tutti di leggere, scrivere ed eseguire l'accesso.
$ sudo chmod 755 /mnt/sharedfolder
Consentirà a tutti i client di accedere alla cartella condivisa.
Fase 3:Configura la directory di esportazione
Il file di configurazione per il server NFS si trova nella directory /etc/. Qui puoi specificare le directory che desideri condividere con i tuoi clienti insieme al nome host dei client. Per modificare il file /etc/exports utilizzando l'editor nano, esegui il seguente comando come sudo in Terminale:
$ sudo nano /etc/exports
Utilizzare il seguente formato per assegnare l'accesso ai client:
directory hostname(options)
Per consentire l'accesso a un singolo client, aggiungi la seguente riga:
/mnt/sharedfolder clientIP(rw,sync,no_subtree_check)
Per consentire l'accesso a più client, aggiungi la seguente riga:
/mnt/sharedfolder client1IP(rw,sync,no_subtree_check) /mnt/sharedfolder client2IP(rw,sync,no_subtree_check)
Per consentire l'accesso a più client specificando un'intera sottorete, aggiungi la seguente riga:
/mnt/sharedfolder subnetIP/24(rw,sync,no_subtree_check)
Qui stiamo specificando l'intera sottorete per i client per consentire loro di accedere alla nostra directory condivisa.
Una volta terminata la modifica del file /etc/exports, premere ctrl+O per salvare e ctrl+X per uscire dal file.
I parametri (rw,sync,no_subtree_check) nel file sopra indicano che il client ha i seguenti permessi:
- rw :operazioni di lettura e scrittura
- sincronizzazione :scrivi qualsiasi modifica al disco prima di applicarla
- no_subtree_check :nessun controllo del sottoalbero
Fase 4:esporta la directory condivisa
Successivamente in questo passaggio, dovrai esportare la directory condivisa elencata in /etc/exports. Per farlo, esegui il seguente comando in Terminale:
$ sudo exportfs –a
Quindi riavvia il server del kernel NFS per applicare le modifiche alla configurazione.
Fase 5:configura il firewall
Ora è importante verificare che il server sia aperto per consentire ai client di accedere al contenuto condiviso. È necessario aggiungere la regola che consente il traffico dai client specificati alla porta NFS. Per farlo, usa la seguente sintassi:
$ sudo ufw allow from [client-IP or client-Subnet] to any port nfs
Nel nostro esempio, consentiremo l'intera sottorete 192.168.72.0 alla porta NF:
$ sudo ufw allow from 192.168.72.0/24 to any port nfs
Ora per verificare se la regola è stata aggiunta correttamente, esegui il seguente comando in Terminale:
$ sudo ufw status
Ora il nostro server NFS host è configurato e pronto per l'accesso da parte dei client specificati.
Configurazione della macchina client
Ora configureremo la macchina client per fargli accedere alla directory di esportazione del server. Segui i passaggi seguenti per farlo:
Fase 1:installa il client NFS
Innanzitutto, aggiorna l'indice del repository della tua macchina client eseguendo il seguente comando in Terminale:
$ sudo apt-get update
Quindi installa l'applicazione client NFS nota come NFS common eseguendo il comando seguente in Terminale:
$ sudo apt-get install nfs-common
Il sistema potrebbe fornirti un S/n opzione per confermare l'installazione. Premi y per confermare e l'installazione verrà avviata nel tuo sistema.
Fase 2:crea un punto di montaggio per la cartella condivisa del server NFS
Ora crea un punto di montaggio che verrà utilizzato per accedere al contenuto condiviso del server. Qui stiamo creando il punto di montaggio con il nome "sharedfolder_clientr" nella directory /mnt. Abbiamo usato il seguente comando per farlo:
$ sudo mkdir -p /mnt/sharedfolder_client
Fase 3:monta la directory condivisa del server sul client
Nel passaggio precedente, abbiamo creato il punto di montaggio. Ora monteremo la directory condivisa del server NFS sul punto di montaggio sopra creato. A tale scopo è possibile utilizzare la seguente sintassi:
$ sudo mount serverIP:/exportFolder_server /mnt/mountfolder_client
Ad esempio, nel nostro caso, monteremo la directory condivisa "/mnt/sharedfolder" dal server NFS al punto di montaggio "/mnt/mountfolder_client" nella nostra macchina client.
$ sudo mount 192.168.72.164:/mnt/sharedfolder /mnt/sharedfolder_client
Dove 192.168.72.164 è l'IP del nostro server NFS.
Ora la directory NFS condivisa è stata montata sulla macchina del client.
Fase 4:verifica la connessione
Ora è il momento di testare la nostra configurazione client-server NFS. Per fare ciò, crea un file o una cartella di prova nella directory condivisa del tuo server NFS. Come nell'esempio seguente, puoi vedere che abbiamo creato due cartelle denominate "documenti" e "musica" nella nostra directory condivisa del server NFS.
Ora apri il punto di montaggio sul tuo computer client. Qui vedrai gli stessi file e cartelle che sono stati creati nella directory condivisa del server.
Questo è tutto quello che c'è da fare! Spero che tu abbia imparato a installare e configurare il server e il client NFS su un sistema Debian 10. Questo articolo spiega anche come accedere all'host NFS per accedere alle informazioni condivise.