GNU/Linux >> Linux Esercitazione >  >> Linux

Apprendimento di NFS attraverso la configurazione di server e client

Ho usato NFS in una capacità limitata per anni. Conoscevo il concetto e stavo accedendo alle condivisioni NFS, tuttavia non ne avevo mai effettivamente configurato una. È probabile che non sono solo in questo. Ho pensato di imparare a sistemare tutto e persino di portarti con me. Iniziamo con la guida per principianti all'apprendimento di NFS.

Cos'è NFS?

Network File System (NFS), è un file system distribuito che consente a vari sistemi remoti di accedere a una condivisione di file. Sappiamo tutti che i file dovrebbero essere archiviati su un server centrale per sicurezza e facilità di backup. NFS ci fornisce un servizio di condivisione file facilmente gestibile e che controlla l'accesso del client alle risorse.

Cosa è necessario?

Prima di poter iniziare, dobbiamo definire alcuni prerequisiti. Innanzitutto, abbiamo bisogno di due diversi sistemi in grado di comunicare tra loro tramite la rete. Poiché NFS utilizza una relazione tra server e client, utilizzeremo quanto segue:

  • Server NFS - server.example.com - 172.25.1.5
  • Client NFS - client.example.com - 172.25.1.4

Puoi usare il ping comando per confermare le comunicazioni tra i due sistemi. Ho queste due macchine su una rete NAT e ho testato le connessioni in entrambi i modi.

Dopodiché, assicuriamoci che entrambi i nostri sistemi siano aggiornati. Poiché questi sistemi sono RHEL 8.2 e Fedora 32, utilizzeremo il seguente comando sia sul server che sul client:

[root@rhel tcarrigan]# sudo yum -y update

E infine, dobbiamo installare nfs-utils pacchetto su entrambi i nostri sistemi.

[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

*Nota:il pacchetto è già installato nell'esempio sopra.

Passiamo ora alla configurazione del server.

Configura il server

Passaggio 1:avvia e abilita nfs-utils appena installato servizio.

[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service

Passaggio 2:conferma il nfs-server il servizio è attivo e funzionante.

[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
   Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
 Main PID: 61026 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 50657)
   Memory: 0B
   CGroup: /system.slice/nfs-server.service
    
 Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
 Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)

Passaggio 3:verifica la versione NFS (puoi vedere queste informazioni nella colonna due).

[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl

*Nota che puoi trovare i file di configurazione del demone NFS in /etc/nfs.conf . Puoi anche trovare il file di configurazione per il montaggio in /etc/nfsmount.conf .

Il servizio NFS è ora attivo e funzionante sul tuo server. Quindi, creiamo una condivisione NFS.

Crea ed esporta la condivisione

Innanzitutto, dobbiamo designare una cartella per la condivisione. Poiché non ne esiste già uno sul mio sistema, creerò una directory da condividere.

[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs

Ora, ho imparato da alcuni tentativi ed errori e poi da risorse ben scritte che puoi evitare molti mal di testa modificando le autorizzazioni e la proprietà in modo che corrispondano a quanto segue:

[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/

*Nota:potresti non essere in grado di farlo in un ambiente di produzione per motivi di sicurezza. Assicurati di sapere cosa stai facendo prima di rimuovere tutte le restrizioni da un file o una directory.

Successivamente, dobbiamo creare un /etc/exports file.

[root@server docs]# vi /etc/exports

Inserisci la seguente voce nel nuovo file:

/test/nfs_share   172.25.1.0/24(rw,sync,no_all_squash,root_squash)

Per comprendere meglio i parametri qui utilizzati, analizziamoli uno per uno.

  • rw - Ci consente di leggere e scrivere nella condivisione NFS.
  • sincronizzazione:richiede la scrittura delle modifiche sul disco prima che qualsiasi altra operazione venga completata.
  • no_all_squash:mappa tutti gli UID e GID dalla richiesta del client agli UID e GID identici sul server NFS.
  • root_squash:mappa le richieste dall'utente root lato client a un UID/GID anonimo.

Ora che abbiamo creato la condivisione, esportiamola nei client.

[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share

Si noti che ho mappato l'intera sottorete qui. Puoi includere un solo IP o nome host qui, se preferisci.

Modifica il firewall

Abbiamo installato il server, quindi creato ed esportato la condivisione. Successivamente, configuriamo un tunnel attraverso il firewall. Aggiungeremo regole per nfs , rpc-bind e mountd . Non dimenticare di ricaricare la configurazione del firewall una volta completata.

Visto qui:

[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success

Con il lato server completato, ora possiamo concentrare la nostra attenzione sulla macchina client.

Configura il client

*Nota:tutti i passaggi futuri vengono eseguiti sulla macchina client.

Poiché abbiamo già aggiornato il nostro sistema e installato nfs-utils pacchetto, dovrebbe essere abbastanza semplice.

Iniziamo creando una voce in /etc/hosts per il server NFS. Dovrebbe essere simile a questo:

[root@client]# cat /etc/hosts
127.0.0.1  localhost
::1        localhost
172.25.1.5 localhost

Ora, vediamo se qualcosa è condiviso dal server NFS. Se hai seguito le sezioni precedenti, dovresti vedere /test/nfs_share/docs come directory condivisa.

[root@client ~]# showmount --exports nfs-server
Export list for nfs-server: 
/test/nfs_share/docs 172.25.1.0/24

Quindi, crea una directory sul computer client per montare la condivisione remota.

[tcarrigan@client ~]$ sudo  mkdir p /test/client_share

Ora che abbiamo creato una directory di montaggio, montiamo la condivisione.

[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share

Esegui il comando seguente per verificare la condivisione:

[tcarrigan@client ~]$ sudo mount | grep -i nfs

Infine, per assicurarti che il montaggio sia persistente tra i riavvii, aggiungi la seguente riga a /etc/fstab file:

172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share  nfs defaults 0 0 

Giornata facile.

Prova del concetto

Come culmine dei nostri sforzi, testiamo la condivisione configurata. Crea un file sul server in /test/nfs_share/docs denominato test_doc .

[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc

Vediamo se il nostro test_doc viene esportato sul nostro computer client tramite NFS.

Sul computer client:

[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$

Qui vediamo il test_doc esiste sul server NFS.

Per testare nell'altra direzione, creo un file sul client chiamato client-test-doc .

[tcarrigan@client docs]$ vi client-test-doc

Passiamo al server e vediamo se riusciamo a visualizzare il file appena creato.

Server NFS:

[tcarrigan@server docs]$ ls -lrt
   total 8
   -rw-r--r--. 1 root      root      39 Jun 25 16:21 test_doc
   -rw-rw-r--. 1 tcarrigan tcarrigan  5 Jul  6 13:25 client-test-doc

Possiamo vedere sia il file originale test_doc così come il file appena creato client-test-doc .

Congratulazioni per aver configurato una coppia server/client NFS funzionante.

[ Corso online gratuito:panoramica tecnica di Red Hat Enterprise Linux. ]


Linux
  1. Configurazione di un server e client NFS su Scientific Linux 6.3

  2. Configurazione di un server e client NFS su CentOS 7.2

  3. Come configurare server e client NFS su Ubuntu 20.04

  4. CentOS / RHEL 7:configurazione di un server NFS e un client NFS

  5. Sicurezza NFS di base:NFS, no_root_squash e SUID

Come installare Server e Client NFS su Ubuntu

Come configurare client e server NFS su Linux

Come configurare Server e Client NFS su Debian 10

Installa NFS Server e Client su Ubuntu

Client e server NIS

Come configurare server e client NFS su CentOS 8