GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare e configurare un server NFS Ubuntu Linux

Stai cercando un'applicazione che ti permetta di condividere file e directory in rete? Per più clienti? Probabilmente hai bisogno di NFS (Network File System)! Un server Ubuntu NFS ti consente di creare directory condivise per vari client con un controllo di accesso aggiuntivo.

Non sei un lettore? Guarda questo video tutorial correlato! Non vedi il video? Assicurati che il blocco degli annunci sia disattivato.

In questo tutorial imparerai come configurare un server NFS e condividere file in modo sicuro tra più macchine.

Pronto? Continua a leggere e inizia la condivisione sicura dei file!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Per seguire, assicurati di avere i seguenti requisiti:

  • Un server Linux e un client sulla stessa rete:questa demo utilizza un server Ubuntu 20.04 con nome host come nfs-server e un client Ubuntu 20.04 con nome host come client . Ma puoi usare un'altra distribuzione Linux, come Debian, CentOS o Fedora.
  • Un utente non root con privilegi sudo.

Installazione di un server NFS Ubuntu

NFS consente agli utenti l'accesso sicuro ai file su sistemi remoti come se fossero solo file archiviati localmente. Ma prima di condividere file e directory, installerai prima un server Ubuntu NFS. Su Ubuntu, installerai nfs-kernel-server pacchetto sul nfs-server macchina.

Alcuni comandi nel tutorial non hanno output. Ma un risultato dei passaggi accumulati che hai eseguito viene visualizzato nell'ultimo passaggio di ciascuna sezione.

1. Accedi al tuo server Linux ed esegui sudo su comando seguente per ottenere i privilegi di root.

sudo su

2. Esegui i comandi seguenti su update l'indice del pacchetto per il tuo repository e installa il pacchetto del server Ubuntu NFS (nfs-kernel-server ).

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

3. Infine, esegui systemctl comandi seguenti per avviare e abilitare il servizio NFS nfs-kernel-server , quindi verifica il nfs-kernel-server lo stato del servizio è attivo.

# start and enable NFS service
sudo systemctl enable --now nfs-kernel-server.service

# verify status NFS service
sudo systemctl status nfs-kernel-server.service

Come puoi vedere di seguito, attivo (chiuso) lo stato indica che il servizio NFS è in esecuzione. Gli usciti messaggio ti dice che systemd manager non riesce a trovare alcun demone da monitorare.

Configurazione della directory condivisa NFS

Dopo aver installato il pacchetto del server NFS, ora configurerai la directory condivisa NFS creando nuove directory. Condividerai queste directory con i clienti e aggiungerai nuove configurazioni a /etc/exports file.

1. Eseguire il comando seguente per creare una nuova directory condivisa NFS. In questo esempio, condividerai il /srv/data directory e /srv/test ai clienti.

sudo mkdir -p /srv/{data,test}

2. Quindi, esegui chown comando seguente per modificare la proprietà della directory condivisa NFS /srv/data/srv/test all'utente nobody e gruppo nogroup . Questo comando assicura che la directory condivisa NFS sia scrivibile dai client. sudo chown -R nobody:nogroup /srv/{data,test}

Questo comando assicura che la directory condivisa NFS sia scrivibile dai client.

sudo chown -R nobody:nogroup /srv/{data,test}

3. Modifica la configurazione NFS /etc/exports utilizzando il tuo editor preferito e popola il file con la seguente configurazione.

La configurazione seguente consente alle macchine client di accedere alla directory condivisa NFS con l'accesso utente specificato in lettura e scrittura (rw ) o di sola lettura (ro ). Assicurati di modificare gli indirizzi IP (172.16.1.25 e 172.16.1.0/24 ) con gli indirizzi IP delle macchine client.

# sync - forces NFS to write change from the shared directory to disk immediately.
# no_subtree_check - disabling the subtree checking to get more performance.

# rw - set read/write access to NFS shared directory for clients.
# share /srv/data to client 172.16.1.25 with read and write access.
/srv/data 172.16.1.25(rw,sync,no_subtree_check,root_squash)

# r0 - set read-only access to NFS shared directory for clients.
# share /srv/test to network 172.16.1.0/24 with read only access.
/srv/test 172.16.1.0/24(ro,sync,no_subtree_check)

4. Eseguire il comando seguente per applicare la directory condivisa e verificare il /etc/exports file di configurazione. Se non ricevi alcun messaggio di output, la configurazione NFS è corretta.

sudo exportfs -a

5. Ora esegui il systemctl comando seguente per riavviare il nfs-kernel-server servizio.

sudo systemctl restart nfs-kernel-server

6. Infine, esegui showmount comando seguente per elencare le directory condivise sul server Ubuntu NFS. Assicurati di modificare l'indirizzo IP (172.16.1.20 ) con l'indirizzo IP del server NFS.

showmount --exports 172.16.1.20

Ora dovresti vedere l'elenco delle directory condivise sul server NFS con l'indirizzo IP che ti ha permesso di accedere al server Ubuntu NFS.

Protezione della directory condivisa NFS con UFW Firewall

Hai configurato la directory condivisa NFS, ma in genere vorresti impedire agli utenti casuali di accedere alla directory condivisa.

Assicurarsi che solo l'indirizzo IP consentito possa accedere alla directory condivisa. Come? Configurando il firewall UFW e specificando l'indirizzo IP sulla porta NFS.

1. Esegui i seguenti comandi per aprire la porta NFS (2049 ) e consenti ai client sugli indirizzi IP 172.16.1.25172.16.1.0/24 accesso al server Ubuntu NFS. Assicurati di sostituire l'indirizzo IP con l'indirizzo IP del tuo client.

# allow client IP 172.16.1.25 to access NFS server
sudo ufw allow from 172.16.1.25 to any port nfs

# allow network 172.16.1.0/24 to access NFS server
sudo ufw allow from 172.16.1.0/24 to any port nfs

2. Quindi, esegui ufw comando seguente per ricaricare il firewall UFW e applicare una nuova configurazione.

sudo ufw reload

3. Infine, esegui ufw comando seguente per verificare lo stato del firewall UFW.

sudo ufw status

Di seguito, puoi vedere che la porta del server NFS 2049 è aggiunta al firewall e accessibile solo dall'indirizzo IP del client 172.16.1.25 e dalla rete 172.16.1.0/24.

Montaggio della directory condivisa NFS sul computer client

A questo punto, hai completamente configurato il server Ubuntu NFS. Ma come possono le macchine client accedere alla directory condivisa NFS? Esecuzione di mount il comando per accedere alla directory condivisa NFS farà il trucco. Ma prima installerai nfs-common (per la distribuzione Debian Linux) o nfs-utils (per RHEL, distribuzione CentOS) al computer client.

1. Accedi al tuo computer client, apri il terminale ed esegui sudo su comando per ottenere i privilegi di root.

sudo su

2. Quindi, esegui uno dei comandi seguenti per installare i pacchetti NFS sul computer client, a seconda del tuo sistema operativo.

# for Ubuntu/Debian based distribution
sudo apt install nfs-common -y

# for RHEL/CentOS/Fedora Linux distribution
sudo dnf install nfs-utils -y

3. Eseguire il comando seguente per creare la directory di montaggio di destinazione. La directory condivisa NFS verrà montata sulla macchina client /data/test directory in questo esempio.

mkdir -p /{data,test}

4. Esegui ogni mount comandi seguenti per accedere alla directory condivisa NFS.

Il -t nfs l'opzione specifica che il tipo di file system è il server NFS. Questo comando monta il /srv/data directory condivisa sul server NFS di Ubuntu nella directory del client locale (/data ). E il /srv/test directory condivisa nella directory locale del clic /test .

# mount shared directory `/srv/data on the nfs server 172.16.1.20
# to the local client directory /data
sudo mount -t nfs 172.16.1.20:/srv/data /data

# mount shared directory `/srv/test on the nfs server 172.16.1.20
# to the local client directory /test
sudo mount -t nfs 172.16.1.20:/srv/test /test

5. Esegui il df comando seguente per verificare l'elenco dei file system montati sulla macchina client.

sudo df -h

Nell'output di seguito, vedrai che la directory condivisa NFS /srv/data è montata nella directory /data sul computer client. Allo stesso tempo, la directory condivisa (/srv/test) viene montata nella directory locale (/test) sul computer client.

6. Quindi, esegui i comandi seguenti per passare alla directory di montaggio di destinazione (/data ) e crea un file chiamato file.txt .

Dalla directory condivisa (/srv/data ) ha i permessi di lettura e scrittura, puoi creare un nuovo file.

# navigate to /data directory
cd /data

# create a new file with "This file from client machine!" as content
echo "This file from client machine!" > file.txt

7. Esegui il lscat comandi seguenti per verificare che il file sia disponibile nella directory di montaggio /data .

# list files on the current directory
ls -lah

# showing the content of the file.txt
cat file.txt

8. Infine, esegui ogni comando seguente per passare alla directory di montaggio (/test) e crea un file chiamato file.txt . Questo comando ti consente di testare le restrizioni di accesso in scrittura sul filesystem di sola lettura.

# navigate to /test directory
cd /test

# create new file
echo "Test create a file on Read-only filesystem" > file.txt

Come l'output di seguito, riceverai un messaggio di errore perché la directory condivisa (/srv/test) ha solo l'autorizzazione di sola lettura.

Montaggio permanente della directory condivisa NFS

Ora hai montato correttamente la directory condivisa NFS sul computer client, ma non sarà più dopo aver riavviato il sistema. Come montare la directory condivisa NFS in modo permanente? Definendo la directory condivisa NFS su /etc/fstab file.

1. Modifica /etc/fstab file di configurazione utilizzando il tuo editor preferito e aggiungi la configurazione seguente. Modificare l'indirizzo IP con l'indirizzo IP del server NFS, la directory condivisa e la directory di destinazione del montaggio.

# rw/ro - allow read and write or read-only to the target mount.
# hard - enable client machine to always try to connect to the NFS whenever fail.
# noexec - disable binary file execution on the file system.
# rsize - maximum READ requests that client machine can handle.
# wzise - maximum WRITE requests that client machine can handle.
# timeo - timeout for NFS client before retries requests to the NFS server.

# NFS Shared Directory - target - type - options - dump - pass
172.16.1.20:/srv/data /data nfs rw,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0
172.16.1.20:/srv/test /test nfs ro,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0

2. Quindi, esegui mount comando seguente per montare tutto il filesystem su /etc/fstab file e verifica il /etc/fstab configurazione. Se non viene visualizzato alcun messaggio di errore, la configurazione è corretta.

sudo mount -a

3. Esegui il df comando seguente per verificare il file system montato sulla macchina client.

sudo df -h

Simile all'output seguente, dovresti vedere che la directory condivisa NFS è montata automaticamente sul tuo computer client.

4. Infine, esegui reboot comando per riavviare la macchina client. Una volta riavviato, accedi ed esegui nuovamente il df comando come hai fatto nel passaggio tre per verificare la directory condivisa NFS.

sudo df -h

Come puoi vedere di seguito, la directory condivisa NFS è ancora montata in modo permanente sulla macchina client.

Conclusione

Durante questo tutorial, hai imparato come configurare un server NFS su un server Linux per condividere una directory in modo sicuro. Hai anche accennato al montaggio permanente della directory condivisa NFS, quindi non dovrai montare manualmente la directory condivisa ogni volta che riavvii la macchina.

A questo punto, hai un server NFS completamente funzionante. Allora, qual è il prossimo? Forse impari ad aggiungere un livello di sicurezza per NFS usando l'autenticazione Kerberos?


Linux
  1. Come installare e configurare Nginx su Ubuntu 20.04

  2. Come installare e configurare un server NFS su Ubuntu 20.04

  3. Come installare e configurare VNC su Ubuntu 20.04

  4. Come installare e configurare il server SVN su Ubuntu e LinuxMint

  5. Come installare e configurare server e client NTP Linux

Come installare e configurare un server NFS su un sistema Linux

Come installare e configurare KVM su Ubuntu Linux

Come installare e configurare Parse Server su Ubuntu 20.04

Come installare e configurare un TeamSpeak Server su Ubuntu 18.04

Come installare e configurare un server Minecraft su Ubuntu 18.04

Come installare e configurare il server DNS in Linux