GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare client e server NFS su Ubuntu 20.04

Network File System o NFS breve è un protocollo di file system distribuito che consente di montare directory remote sul server. NFS consente di accedere a file e cartelle da un server o client diverso. Puoi scrivere su quel server da più client o sistemi remoti su una rete. Questa tecnologia ti offre la flessibilità di condividere una risorsa su più sistemi.

In questo tutorial impareremo come configurare un server NFS e come montare condivisioni NFS su un client usando Ubuntu 20.04.

Prerequisiti

  • Due sistemi Ubuntu 20.04. Ogni server dovrebbe avere un utente non root con privilegi sudo e set di firewall UFW.
  • Puoi configurare sia il server che il client su una rete privata. Per il nostro tutorial, userò host_ip per denotare host_ip indirizzo e ip_client per fare riferimento all'indirizzo IP del Cliente.

Passaggio 1 - Installa NFS su server e client

Ospite

Dobbiamo installare il nfs-kernel-server pacchetto sull'host per condividere le tue directory.

$ sudo apt update
$ sudo apt install nfs-kernel-server

Cliente

Per il client, installeremo il nfs-common pacchetto che consente al Cliente di montare la directory host ma non può ospitare la directory stessa.

$ sudo apt update
$ sudo apt install nfs-common

Passaggio 2:crea directory di condivisione sull'host

Esistono due modi per concedere l'accesso alle directory sull'host al client. Per impostazione predefinita, il server NFS non consente operazioni che richiedono privilegi sudo. Ciò significa che i superutenti sul client non possono scrivere file come root, riassegnare la proprietà o eseguire attività che richiedono privilegi elevati.

Tuttavia, a volte, un client deve eseguire determinate operazioni sull'host che richiedono privilegi elevati ma non necessita dell'accesso come superutente.

Primo metodo

Questo è il modo predefinito per condividere le directory. Rende difficile per un utente root sul client interagire con l'host utilizzando privilegi elevati.

Innanzitutto, crea la directory di condivisione.

$ sudo mkdir /var/nfs/general -p

Se esegui operazioni di root sul client, NFS le tradurrà in nobody:nogroup credenziali sulla macchina host. Pertanto, dobbiamo assegnare la proprietà appropriata alla directory condivisa.

$ sudo chown nobody:nogroup /var/nfs/general

Secondo metodo

Qui condivideremo la home directory dell'host con il client. Ciò consentirà agli utenti root sul client di accedere correttamente all'host.

Poiché la home directory esiste già sul server host, non è necessario crearla. Non è nemmeno necessario modificare le autorizzazioni su di esso poiché creerà più problemi per gli utenti sul computer host.

Passaggio 3 - Configura NFS sull'host

È ora di configurare NFS per impostare la condivisione.

Apri il file /etc/exports sul server host.

$ sudo nano /etc/exports

Aggiungi le seguenti righe in fondo, una ciascuna, per ogni directory che condividi.

/var/nfs/general    client_ip(rw,sync,no_subtree_check)
/home               client_ip(rw,sync,no_root_squash,no_subtree_check)

Esaminiamo tutte queste opzioni e cosa significano.

  • rw :Questo dà al client l'accesso in lettura e scrittura alle directory host.
  • sincronizzazione :Questa opzione forza NFS a scrivere le modifiche prima di rispondere. Significa che NFS finirà prima di scrivere nella directory host e quindi risponderà al client. Ciò garantisce che si rifletta lo stato effettivo del server host, ma può rallentare la velocità delle operazioni sui file.
  • no_subtree_check :questa opzione disabilita il controllo della sottostruttura. Il controllo del sottoalbero è un'operazione in cui ad ogni richiesta NFS, il server deve verificare che il file a cui si accede sia presente e che sia nell'albero esportato. Questa operazione causa problemi quando i file a cui accede un client vengono rinominati. Quindi è meglio lasciarlo disabilitato nella maggior parte dei casi. Ha alcune lievi implicazioni sulla sicurezza, ma può migliorare l'affidabilità.
  • no_root_squash :per impostazione predefinita, NFS converte tutte le operazioni eseguite come root dal client in un utente non privilegiato sul server. Questo viene fatto con l'intento di migliorare la sicurezza. Questa opzione disabilita tale comportamento per determinate condivisioni.

Al termine, chiudi il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia il server NFS per applicare le modifiche.

$ sudo systemctl restart nfs-kernel-server

Passaggio 4:configurazione del firewall host

La migliore pratica con NFS è abilitarlo in modo specifico per l'indirizzo IP di ciascun client separatamente invece di consentirne l'accesso da qualsiasi luogo.

NFS utilizza la porta 2049. Abilita l'accesso per NFS con il comando seguente.

$ sudo ufw allow from client_ip to any port nfs

Controlla lo stato da verificare.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                 
2049                       ALLOW       167.100.34.78        
OpenSSH (v6)               ALLOW       Anywhere (v6)

Fase 5:crea punti di montaggio sul client

Ora che il nostro host è configurato, è il momento di configurare il client.

Crea due directory per i montaggi sul client.

$ sudo mkdir -p /nfs/general
$ sudo mkdir -p /nfs/home

Ora che abbiamo impostato tutto alla fine dell'host, possiamo montare le condivisioni utilizzando l'indirizzo IP dell'host.

$ sudo mount host_ip:/var/nfs/general /nfs/general
$ sudo mount host_ip:/home /nfs/home

Puoi verificare se sono stati montati correttamente con il seguente comando.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000
123.175.112.87:/var/nfs/general  25G   18G  6.3G  74% /nfs/general
123.175.112.87:/home             25G   18G  6.3G  74% /nfs/home

Puoi vedere entrambe le condivisioni montate in fondo all'elenco. Poiché entrambi sono stati montati dallo stesso file system, mostrano l'utilizzo completo del disco e non l'utilizzo effettivo delle directory montate.

Per vedere quanto spazio effettivo viene utilizzato sotto ciascuna montatura, utilizzare il comando seguente.

$ du -sh /nfs/general
36K     /nfs/general

Passaggio 6:verifica della condivisione NFS

Crea un file di prova in /var/nfs/general condividi.

$ sudo touch /nfs/general/general.test

Controlla la sua proprietà.

$ ls -l /nfs/general/general.test
-rw-r--r-- 1 nobody nogroup 0 Aug  1 13:31 /nfs/general/general.test

Questo è stato montato utilizzando le opzioni NFS predefinite e poiché abbiamo creato il file utilizzando root dal computer client, la proprietà sull'host è stata trasferita a nobody:nogroup . In questo caso, l'utente client non può eseguire lavori di amministrazione sulla macchina dell'host.

Crea un file di prova nella condivisione /nfs/home`.

$ sudo touch /nfs/home/home.test

Controlla la sua proprietà.

$ ls -l /nfs/home/home.test
-rw-r--r-- 1 root root 0 Aug  1 13:32 /nfs/home/home.test

In questo caso, poiché abbiamo creato il file di test utilizzando root dalla macchina client, la proprietà è stata mantenuta sulla macchina host. Questo perché abbiamo usato il no_root_squash flag che ha consentito l'utente root sulla macchina client come utente root anche sulla macchina host.

Passaggio 7 - Monta condivisioni NFS durante l'avvio

Questi montaggi non verranno mantenuti una volta avviata la macchina client. Per renderli permanenti, dobbiamo modificare il /etc/fstab file.

Apri il /etc/fstab file per la modifica.

$ sudo nano /etc/fstab

Incolla le seguenti righe in fondo al file. Ogni riga corrisponde a ogni directory che vogliamo montare all'avvio.

. . .
host_ip:/var/nfs/general    /nfs/general   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
host_ip:/home               /nfs/home      nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Per conoscere queste opzioni, controlla la pagina man di nfs .

$ man nfs

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia il server per controllare i supporti.

$ sudo reboot

Accedi al client-server e verifica che i mount siano presenti.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000
123.175.112.87:/var/nfs/general  25G   18G  6.3G  74% /nfs/general
123.175.112.87:/home             25G   18G  6.3G  74% /nfs/home

Passaggio 8 - Smonta le condivisioni NFS

Una volta che non hai bisogno di montaggi NFS, puoi smontarli usando il comando seguente.

$ sudo umount /nfs/home
$ sudo umount /nfs/general

Un errore comune è usare unmount invece di umount che è il comando effettivo.

Verifica che siano stati smontati correttamente.

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
udev                            448M     0  448M   0% /dev
tmpfs                            99M  664K   98M   1% /run
/dev/vda1                        25G  3.2G   21G  14% /
tmpfs                           491M     0  491M   0% /dev/shm
tmpfs                           5.0M     0  5.0M   0% /run/lock
tmpfs                           491M     0  491M   0% /sys/fs/cgroup
tmpfs                            99M     0   99M   0% /run/user/1000

Dovrai anche eliminare le loro voci da /etc/fstab file in modo che non vengano rimontati all'avvio. Puoi anche semplicemente decommentare le loro voci inserendo un # personaggio di fronte nel caso in cui sia necessario riutilizzare nuovamente le cavalcature.

Conclusione

Questo conclude il nostro tutorial in cui abbiamo imparato come creare montaggi NFS su una macchina host e come accedervi da diverse macchine client. Se hai domande, spara loro nei commenti qui sotto.


Ubuntu
  1. Come installare Chef Server, Workstation e Chef Client su Ubuntu 18.04

  2. Come installare server e client NTP su Ubuntu 18.04 LTS

  3. Installa UrBackup Server e Client su Ubuntu 20.04 - Come farlo?

  4. Come configurare server e client NFS su Ubuntu 20.04

  5. Installa server e client vnc su Ubuntu

Come installare il server e il client UrBackup su Ubuntu 20.04

Come installare server e client Telnet su Ubuntu

Installa NFS Server e Client su Ubuntu

Come installare server e client NTP su Ubuntu 20.04 LTS

Come installare e configurare NFS su Ubuntu 22.04/20.04

Come installare il server NFS su Ubuntu 20.04 LTS