NFS (Network File System) di Sun Microsystems è una struttura di file system distribuito basata su RPC che consente ai dispositivi in ​​rete di utilizzare server che eseguono NFS su una rete come unità locali.

Ecco una guida passo passo per impostare e configurare un server NFS su una macchina Linux.

Che cos'è il file system di rete?

Il file system NFS ha quattro protocolli. Quando il server è pronto, notifica portmap (il server che converte il protocollo in numeri di porta) della porta da utilizzare e fornisce il numero del programma RPC controllato.

Quando si utilizza un sistema Linux incorporato, è molto comodo avviare il dispositivo tramite una condivisione file NFS in rete invece di avviarlo direttamente dal dispositivo di archiviazione (NAND flash, eMMC, MMC, eccetera.).

Sebbene sia più raro, potresti anche voler montare una condivisione NFS ed eseguire condivisioni di file utilizzandola dopo l'avvio del sistema, anche se non avvii il sistema direttamente dalla condivisione NFS. Affinché entrambi gli scenari funzionino, devi prima installare un server NFS sul computer su cui stai sviluppando.

instagram viewer

Come installare NFS su Linux

Se stai usando un Sistema basato su Debian come Ubuntu o Linux Mint, dovresti installare il file server del kernel nfs pacchetto come segue:

sudo apt installare nfs-kernel-server

Su Arch Linux:

sudo pacman -S nfs-utils

Su Fedora, CentOS e RHEL:

sudo dnf -y installare nfs-utils

Al termine del processo, il tuo server NFS verrà eseguito automaticamente. Tuttavia, a questo punto, non sa ancora quali directory sul tuo computer desideri condividere in rete. Pertanto, non prevede alcuna condivisione per impostazione predefinita.

È possibile aprire più directory sullo stesso server per consentire la condivisione di rete con autorizzazioni e restrizioni diverse.

Configurazione del server NFS su Linux

Per condividere qualsiasi directory sul server NFS, è necessario configurare un'impostazione relativa alla directory in /etc/exports file. Apri il file con qualsiasi editor di testo di tua scelta. Assicurati di aggiungere il prefisso sudo al comando.

sudo vim /etc/esportazioni

Ti starai chiedendo cosa significano le opzioni di mappatura che vedi qui:

  • radice_zucca: Contrassegna gli utenti client autorizzati sudo come nessuno utente e gruppo su NFS
  • no_root_squash: Disabilita lo schiacciamento delle radici
  • all_squash: A differenza di root_squash, consente a tutti gli utenti di essere mappati come utente e gruppo nessuno. È generalmente utilizzato per l'accesso pubblico.
  • no_all_squash: L'opposto di all_squash; questa opzione è l'impostazione predefinita

Quando un sistema al di fuori degli intervalli IP consentiti nel file /etc/exports sul server NFS tenta di accedere alla risorsa pertinente, il server NFS rifiuterà la richiesta.

Potresti ricevere messaggi di "accesso negato dal server" durante il montaggio sul tuo sistema integrato. Alla fine del file verranno visualizzati messaggi di errore simili ai seguenti /var/log/syslog file sul computer in cui è in esecuzione il server NFS:

rpc.mountd[1041]: richiesta di montaggio rifiutata da192.168.2.2per /home/esempio/casper/bersaglio (/home/esempio/casper/target): host senza eguali

Quando vedi un messaggio di registro host non corrispondente come quello sopra, dovresti espandere la sezione IP/Netmask della regola pertinente nel file /etc/exports o usare il asterisco (*) carattere speciale se si desidera concedere l'accesso a tutti gli indirizzi IP.

È necessario riavviare il servizio NFS dopo aver apportato modifiche a /etc/exports file:

sudo service nfs-kernel-server riavvio

Oppure, se la tua distribuzione viene fornita con systemctl, esegui il comando seguente:

sudosystemctlricominciaserver nfs.servizio

Puoi anche dare il -r parametro al exportfs comando in modo che ricondivida le directory che hanno modificato le impostazioni relative alla condivisione:

sudo exportfs -r

Risolvere il problema della latenza di montaggio

Quando si utilizza il protocollo NFS versione 4 e successive sul server, potrebbero verificarsi ritardi fino a 15 secondi durante il processo di montaggio lato client negli scenari operativi tradizionali con le configurazioni predefinite di NFS server. Questo problema potrebbe verificarsi in alcune versioni di Debian, Fedora e Ubuntu.

Se stai riscontrando un ritardo di montaggio simile, puoi farlo controllare i file di registro lato server (/var/log/syslog, /var/log/messages) per un messaggio di registro simile al seguente:

... RPC: AUTH_GSS upcall scaduto

Questo messaggio indica che l'autenticazione Kerberos non è riuscita ed è scaduta. Probabilmente non avrai bisogno del protocollo Kerberos per l'autenticazione di sicurezza sulla rete nel tuo ambiente. Anche se sei su una rete configurata in questo modo, almeno con i tuoi sistemi Linux embedded, non avrai bisogno di abilitare l'autenticazione Kerberos.

Sebbene siano state offerte alternative all'esecuzione del servizio GSSD con NFS per risolvere il problema, questi approcci non lo sono lo stesso impatto in tutte le distribuzioni e le versioni dei pacchetti e, pertanto, è più razionale affrontare questo problema dal radice.

Devi bloccare (o inserire nella blacklist) il rpcsec_gss_krb5 modulo del kernel dal caricamento sul sistema Linux in cui è in esecuzione il server NFS.

Per fare in modo che questa opzione abbia effetto ogni volta che riavvii il computer, creare un nuovo file chiamato /etc/modprobe.d/nfs-gss-blacklist.conf e aggiungi le seguenti righe:

lista nera rpcsec_gss_krb5

Dopo aver salvato il file e riavviato il sistema, il problema della latenza di montaggio scomparirà.

Perché utilizzare un server NFS?

NFS è semplice e conveniente da configurare. Consente una gestione centralizzata, che riduce la necessità di software aggiuntivo e spazio di archiviazione sul PC di un singolo utente. Su una singola macchina, più utenti possono condividere lo stesso spazio su disco. Possono mettere questi dischi sopra il loro file system per estendere lo spazio di archiviazione.

La condivisione NFS consente di raggruppare su un unico server i programmi che richiedono molto spazio di archiviazione. Ciò può comportare enormi risparmi di spazio su disco. Sebbene le versioni precedenti di NFS siano vulnerabili, le versioni più recenti hanno introdotto livelli di protezione aggiuntivi, inclusa l'autenticazione Kerberos.

Tuttavia, ci sono anche alcuni svantaggi. È stato riscontrato che NFS rallenta in alcuni casi durante il traffico di rete intenso. La condivisione con Windows è possibile, ma potrebbe richiedere alcune applicazioni di terze parti. Ma questa non è una pratica molto sensata in termini di sicurezza. Se la configurazione non è corretta, potrebbe verificarsi un accesso non autorizzato.

Condivisione del file system semplificata su Linux utilizzando NFS

Conoscere i problemi di sicurezza e trovare soluzioni è una delle attività più critiche di un amministratore di sistema. È necessario conoscere le procedure di sicurezza per tutti i sistemi di condivisione file e gli strumenti di gestione e non solo NFS.