GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come configurare un supporto NFS su Rocky Linux 8

Network File System o NFS è un protocollo di file system distribuito che consente agli host remoti di montare file system su una rete ed eseguire operazioni sui file come se fossero montati localmente. Ciò è particolarmente utile quando desideri condividere risorse da un server su più client o consentire a più client di scrivere su un unico spazio di archiviazione.

In questo tutorial imparerai come installare e configurare il server NFS e i client NFS basati su Rocky Linux 8. Per questo, configureremo un host o un server per condividere file e un client per accedere ai file host utilizzando un montaggio NFS .

Prerequisiti

  • Due server Rocky Linux 8. Ognuno di questi dovrebbe avere un utente non root con privilegi sudo.
  • Sia l'host che il client dovrebbero avere un indirizzo IP statico. Puoi anche configurare entrambi su una rete privata. Per il nostro tutorial utilizzeremo host_ip per indicare l'indirizzo IP dell'Host e client_ip per fare riferimento all'indirizzo IP del Cliente.

Passaggio 1:installazione di NFS su host e client

Ospite

Per installare i pacchetti NFS, devi installare nfs-utils pacchetto. Fornisce un demone per il server NFS e gli strumenti correlati.

Installa il pacchetto.

$ sudo dnf install nfs-utils

Abilita e avvia il nfs-server servizio. Servizi rimanenti necessari per il montaggio e la condivisione NFS come nfsd , nfs-idmapd , rpcbind , rpc.mountd , lockd , rpc.statd , rpc.quotad e rpc.idmapd avvia automaticamente insieme ad esso.

$ sudo systemctl enable nfs-server --now

Verifica la versione dell'installazione di NFS.

$ sudo cat /proc/fs/nfsd/versions-2 +3 +4 +4.1 +4.2

Le versioni NFS 3 e 4 sono abilitate per impostazione predefinita e la versione 2 è disabilitata. NFSv2 è piuttosto vecchio e obsoleto, e quindi puoi vedere il -ve firmare davanti ad esso.

NFS memorizza le sue configurazioni in /etc/nfsmount.conf e /etc/nfs.conf File. Il /etc/nfsmount.conf è configurare i montaggi NFS mentre /etc/nfs.conf consiste nel configurare il demone NFS e gli strumenti associati. Le impostazioni predefinite sono sufficienti per il nostro tutorial e non è richiesta alcuna modifica.

Cliente

Sul client, installa nfs-utils e nfs4-acl-tools pacchetti.

$ sudo dnf install nfs-utils nfs4-acl-tools

Fase 2:crea le directory di condivisione sull'host

Utilizzeremo due esempi con impostazioni di configurazione diverse:uno con un montaggio generico e uno condividendo la home directory dell'host.

Le directory montate NFS non fanno parte del Client. Pertanto, NFS non può eseguire attività che richiedono privilegi di superutente su di esse. Significa che il client non può cambiare la proprietà, scrivere su di esso come utente root o eseguire attività di alto livello. Tuttavia, ci sono casi in cui un utente attendibile sul client deve eseguire tali attività senza richiedere l'accesso come superutente sull'host. Il server NFS può essere configurato per consentire ciò, ma corre il rischio che un client possa accedere all'host.

Lavorare con una montatura per uso generico

Per il nostro primo caso, creeremo un montaggio semplice che utilizza il comportamento NFS predefinito, il che significa che il client non può eseguire attività che richiedono privilegi di superutente.

Crea una directory condivisa.

host:$ sudo mkdir /var/nfs/share -p

L'utente root dell'host sarà proprietario di questa directory poiché abbiamo usato sudo per crearlo.

host:$ ls -l /var/nfstotal 0drwxr-xr-x. 2 radice radice 6 13 dicembre 07:30 condividi

NFS tradurrà tutte le operazioni di root sul lato client in nobody:nobody credenziali per motivi di sicurezza. Pertanto, dobbiamo abbinarli sul lato host.

host:$ sudo chown nessuno:nobody /var/nfs/general

Lavorare con la home directory

Per il nostro secondo caso, renderemo disponibile al client la home directory sull'host. Non è necessario crearlo poiché esiste già. Non è necessario modificare alcuna autorizzazione in quanto ciò influirebbe sugli utenti sulla macchina host.

Passaggio 3 - Configurazione delle esportazioni NFS sull'host

Apri il file /etc/exports sulla macchina host per la modifica.

host:$ sudo nano /etc/exports

Incolla il codice seguente nel file.

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

Ciascuna directory e la relativa configurazione devono trovarsi su una riga separata. Sostituisci il client_ip valore con l'indirizzo IP effettivo della macchina client.

Esaminiamo tutte le opzioni per le esportazioni NFS.

  • rw - fornisce alla macchina client l'accesso in lettura e scrittura sul volume NFS.
  • sincronizzazione - questa opzione forza NFS a scrivere le modifiche sul disco prima di rispondere. Questa opzione è considerata più affidabile. Tuttavia, riduce anche la velocità delle operazioni sui file.
  • no_subtree_check - questa opzione impedisce il controllo del sottoalbero, un processo in cui l'host deve verificare se il file è disponibile insieme ai permessi per ogni richiesta. Può anche causare problemi quando un file viene rinominato sull'host mentre è ancora aperto sul client. Disabilitarlo migliora l'affidabilità di NFS.
  • no_root_squash - Per impostazione predefinita, NFS converte le richieste da un utente root sul client in un utente non privilegiato sull'host. Questa opzione disabilita tale comportamento e dovrebbe essere utilizzata con attenzione per consentire al client di accedere all'host.

Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Per esportare le condivisioni, esegui il comando seguente.

host:$ sudo exportfs -arvexporting client_ip:/homeexporting client_ip:/var/nfs/share
  • -a - questa opzione fa sì che tutte le directory vengano esportate.
  • -r - questa opzione fa sì che tutte le directory vengano esportate costruendo una nuova lista in /var/lib/nfs/etab directory. Questa opzione viene utilizzata per aggiornare l'elenco di esportazione con tutte le modifiche apportate a /etc/exports .
  • -v - abilita l'output dettagliato.

Per elencare tutte le directory esportate, eseguire il comando seguente. Mostrerà tutte le opzioni, comprese quelle predefinite che non sono state specificate in /etc/exports file.

host:$ sudo exportfs -s/var/nfs/share client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)/home client_ip(sync,wdelay,hide,no_subtree_check, sec=sys,rw,secure,no_root_squash,no_all_squash)

Fase 4 - Configurazione del firewall sull'host

Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del firewall.

host:$ sudo firewall-cmd --staterunning

Ciò indica che è attivo e funzionante correttamente.

Il firewall funziona con diverse zone e la zona pubblica è quella predefinita che useremo. Elenca tutti i servizi e le porte attive sul firewall.

host:$ sudo firewall-cmd --permanent --list-services

Dovrebbe mostrare il seguente output.

cockpit dhcpv6-client ssh

Successivamente, dobbiamo consentire il traffico ai servizi NFS necessari - mountd , nfs e rpc-bind . Dobbiamo anche consentire l'accesso dall'IP del client. Se i tuoi client e server host si trovano nella stessa sottorete, non è necessario aggiungere l'indirizzo IP del client.

host:$ sudo firewall-cmd --permanent --add-service=nfshost:$ sudo firewall-cmd --permanent --add-service=rpc-bindhost:$ sudo firewall-cmd --permanent --add -service=mountdhost:$ sudo firewall-cmd --permanent --add-source=client_IP 

Ricarica il firewall per applicare le modifiche.

host:$ sudo firewall-cmd --reload

Fase 5 - Creazione di punti di montaggio e directory sul client

Ora che il server/host NFS è configurato, il passaggio successivo consiste nell'impostare i punti di montaggio e le directory sul client. Puoi eseguire showmount comando sul client per controllare l'elenco dei file system esportati sull'Host.

client:$ showmount -e host_ipEsporta elenco per host_ip:/home host_ip/var/nfs/share host_ip

Creare sempre una nuova directory come punti di montaggio sul client o utilizzare una directory vuota esistente. Se c'è un file in una directory che monti, verrà nascosto.

Crea le directory di montaggio.

client:$ sudo mkdir -p /nfs/shareclient:$ sudo mkdir -p /nfs/home

Monta le condivisioni utilizzando l'indirizzo IP dell'host.

client:$ sudo mount host_ip:/var/nfs/share /nfs/shareclient:$ sudo mount host_ip:/home /nfs/home

Verifica che il montaggio sia riuscito.

client:$ df -hFilesystem Dimensioni utilizzate Avail Use% Ondevtmpfs montato 370M 0 370M 0% /devtmpfs 405M 0 405M 0% /dev/shmtmpfs 405M 16M 389M 4% /runtmpfs 405M 0 405M 0% /sys/fs/cgroup /dev/vda1 25G 2.4G 23G 10% /tmpfs 81M 0 81M 0% /run/user/1000host_ip:/var/nfs/share 25G 2.4G 23G 10% /nfs/sharehost_ip:/home 25G 2.4G 23G 10% / nfs/home

Entrambe le condivisioni sono montate dallo stesso file system. Quindi mostrano lo stesso utilizzo del disco.

Puoi anche usare il mount comando per verificare.

cliente:$ monta | grep nfsrpc_pipefs su /var/lib/nfs/rpc_pipefs tipo rpc_pipefs (rw,relatime)host_ip:/var/nfs/share su /nfs/share tipo nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072, namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)host_ip:/home su /nfs/home digita nfs4 (rw,relatime, vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)

Passaggio 6:verifica dell'accesso NFS

Test della condivisione per scopi generici

Scrivi un file di prova in /var/nfs/share condividi.

client:$ sudo touch /nfs/share/test.txt

Controlla la sua proprietà.

client:$ ls -l /nfs/share/test.txt-rw-r--r--. 1 nessuno nessuno 0 13 dic 08:08 /nfs/share/test.txt

Poiché abbiamo montato questo volume utilizzando le impostazioni NFS predefinite e creato il file sul client utilizzando sudo , la proprietà del file è impostata su nobody:nobody . I superutenti client non possono eseguire attività amministrative sulla condivisione.

Test della condivisione della home directory

Scrivi un file di prova su /nfs/home condividi.

client:$ sudo touch /nfs/home/home.txt

Controlla la sua proprietà.

client:$ ls -l /nfs/home/home.txt-rw-r--r--. 1 radice radice 0 13 dic 08:09 /nfs/home/home.txt

Dato che abbiamo usato il no_root_squash opzione, consentiva all'utente root del client di agire come root sulla condivisione stessa.

Fase 7 - Rendi permanenti i punti Mount

Le condivisioni NFS per impostazione predefinita sono temporanee e devono essere montate all'avvio. Possiamo renderli permanenti modificando il /etc/fstab file sul client.

Apri il file /etc/fstab per la modifica.

client:$ sudo nano /etc/fstab

Incolla le seguenti righe in fondo al file.

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

Puoi scoprire di più sulle opzioni elencate sopra eseguendo i seguenti comandi.

client:$ man nfsclient:$ man mount

Se vuoi leggerli online, puoi cercare su Google la frase man nfs e man mount per saperne di più su queste opzioni.

Passaggio 8 - Smonta la condivisione NFS

Se non desideri più i montaggi remoti sul tuo sistema, puoi smontarli usando il umount comando. Nota che il comando si chiama umount e non smontare che è un errore comune.

Esci dai supporti condivisi e smontali.

client:$ cd ~client:$ sudo umount /nfs/shareclient:$ sudo umount /nfs/home

Se non hai più bisogno che le condivisioni siano montate nuovamente al riavvio, assicurati di commentare le voci corrispondenti nel /etc/fstab file inserendo un # firmare davanti a loro.

Conclusione

In questo tutorial, abbiamo imparato come creare un server host NFS e montare directory utilizzandolo, che abbiamo condiviso con un client NFS. Se lo stai implementando in una rete privata, non dovrebbero esserci problemi, ma se lo stai utilizzando in produzione, dovresti ricordare che il protocollo non è crittografato e dovresti implementare un po' di autenticazione per proteggere i tuoi dati.

Se hai domande, pubblicale nei commenti qui sotto.


Rocky Linux
  1. Come montare una condivisione NFS in Linux

  2. Come installare Python 3.9 su Rocky Linux 8

  3. Come configurare il server VPN Pritunl su Rocky Linux 8

  4. Come configurare server e client NFS su Rocky/Alma Linux 8

  5. Come installare Redis su Rocky Linux 8

Come installare Anydesk su Rocky Linux 8

Come installare TeamViewer su Rocky Linux 8

Come impostare data e ora su desktop e server Rocky Linux 8

Come installare Anaconda su Rocky Linux 8

Come installare Snap su Rocky Linux 8

Come installare PHP 7.4 su Rocky Linux 8