Acronimo di Network File Share, NFS è un protocollo client/server multipiattaforma che consente alle macchine client di accedere ai file condivisi dal server NFS su una rete. I sistemi client possono montare localmente i filesystem dal server NFS e accedere a file e directory come se fossero montati localmente. In questa guida, ti guideremo attraverso l'installazione e la configurazione di NFS Server su CentOS 8 / RHEL 8 .
Nota: In CentOS 8 o RHEL 8 NFSv3 &v4 entrambi sono supportati. NFSv3 consente una scrittura asincrona sicura e supporta dimensioni e offset dei file a 64 bit. Considerando che NFSv4 funziona tramite il firewall del sistema operativo e supporta ACL (Access Control List) e non richiede il servizio rpcbind
Configurazione server/client NFS
Prima di iniziare, utilizzeremo la configurazione seguente per simulare il funzionamento del protocollo NFS in una configurazione client/server.
- IP macchina server:indirizzo: 192.168.2.102 CentOS 8
- IP macchina client:indirizzo: 192.168.2.103 CentOS 8
Con la nostra configurazione a portata di mano, iniziamo l'installazione di NFS sulla macchina server.
Passaggio 1) Installa e configura NFS sul server CentOS 8 / RHEL 8
Per iniziare, installeremo il pacchetto del server NFS chiamato nfs-utils che funge da demone NFS. Per installare il pacchetto nfs-utils, avvia il terminale ed esegui il comando:
$ sudo dnf install nfs-utils -y
Nell'esempio seguente, nfs-utils è già installato.
Una volta completata l'installazione, avviare e abilitare il servizio nfs-server in modo che venga eseguito automaticamente durante i riavvii. Esegui i seguenti comandi,
$ sudo systemctl start nfs-server.service $ sudo systemctl enable nfs-server.service
Per confermare che il servizio NFS è in esecuzione, eseguire:
$ sudo systemctl status nfs-server.service
Puoi verificare la versione del protocollo nfs in esecuzione eseguendo il comando:
$ rpcinfo -p | grep nfs
La versione è indicata dalla seconda colonna nell'output presentato di seguito.
Per ulteriori configurazioni del server NFS, puoi trovare i file di configurazione in /etc/nfs.conf che è il file di configurazione del demone NFS e /etc/nfsmount.conf che è il file di configurazione per il montaggio NFS.
Passaggio 2) Creazione ed esportazione della condivisione NFS
In questo passaggio creeremo un file system che verrà condiviso dal server ai sistemi client. In questa guida creeremo una directory in /mnt/nfs_share/docs come mostrato di seguito
$ sudo mkdir -p /mnt/nfs_shares/docs
Per evitare restrizioni sui file nella directory condivisa NFS, è consigliabile configurare la proprietà della directory come mostrato. Ciò consente la creazione di file dai sistemi client senza riscontrare problemi di autorizzazione.
$ sudo chown -R nobody: /mnt/nfs_shares/docs
Inoltre, puoi decidere di regolare i permessi della directory in base alle tue preferenze. Ad esempio, in questa guida, assegneremo tutti i permessi (lettura, scrittura ed esecuzione) alla cartella condivisa NFS
$ sudo chmod -R 777 /mnt/nfs_shares/docs
Per rendere effettive le modifiche, riavvia il demone NFS:
$ sudo systemctl restart nfs-utils.service
Per esportare la condivisione NFS in modo che i sistemi client possano accedervi, dobbiamo modificare /etc/exports file. Puoi consentire a più client di accedere alla condivisione specificando una sottorete come mostrato
/mnt/nfs_shares/docs 192.168.2.0/24(rw,sync,no_all_squash,root_squash
Inoltre, puoi specificare ciascun cliente su una riga separata:
/mnt/nfs_shares/docs IP client(rw,sync,no_all_squash,root_squash)
/mnt/nfs_shares/docs IP client(rw,sync,no_all_squash,root_squash)
Utilizzando la nostra configurazione, concederemo l'accesso alla nostra macchina client con un IP 192.168.2.103. Aggiungi la seguente riga nel file "/etc/exports ':
$ sudo vi /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash)
Salva ed esci dal file. Usa il comando cat per confermare la voce come mostrato
[[email protected]] cat /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash) [[email protected]]
Vediamo il significato dei parametri utilizzati:
- rw – Questo sta per lettura/scrittura. Concede i permessi di lettura e scrittura alla condivisione NFS.
- sincronizzazione – Il parametro richiede la scrittura delle modifiche su disco prima di poter eseguire qualsiasi altra operazione.
- no_all_squash – Questo mapperà tutti gli UID e GID dalle richieste del client a identici UIDS e GID che risiedono sul server NFS.
- root_squash – L'attributo associa le richieste dell'utente root sul lato client a un UID/GID anonimo.
Per esportare la cartella creata sopra, usa il comando exportfs come mostrato:
$ sudo exportfs -arv
La -a opzione implica che tutte le directory verranno esportate, -r sta per riesportare tutte le directory e infine -v flag mostra un output dettagliato.
Solo per essere assolutamente sicuro dell'elenco di esportazione, puoi visualizzare l'elenco di esportazione utilizzando il comando:
$ sudo exportfs -s
Perfetto! La nostra lista di esportazione esiste. Fin qui tutto bene. L'unica configurazione rimasta sul server NFS consente i servizi NFS sul firewall.
Fase 3) Configurazione delle regole del firewall per NFS Server
Il passaggio finale nella configurazione del server è consentire i servizi NFS attraverso il firewall sul computer server CentOS 8. Questi servizi sono nfs, rpc-bind e montato . Quindi, esegui i comandi seguenti.
$ sudo firewall-cmd --permanent --add-service=nfs $ sudo firewall-cmd --permanent --add-service=rpc-bind $ sudo firewall-cmd --permanent --add-service=mountd
Quindi ricarica il firewall per rendere effettive le modifiche
$ sudo firewall-cmd --reload
Ora andiamo al sistema client e configuriamolo per accedere alle condivisioni NFS.
Configurazione del sistema client NFS
Per configurare il sistema client per l'accesso alle condivisioni file NFS, attenersi alla procedura seguente
Fase 1) Installa i pacchetti NFS richiesti
Sul sistema client CentOS 8, installa i pacchetti necessari per accedere alla condivisione NFS che risiede sul server NFS
$ sudo dnf install nfs-utils nfs4-acl-tools -y
Per il sistema Debian o Ubuntu:
$ sudo apt install nfs-common nfs4-acl-tools -y
Per visualizzare le condivisioni NFS montate sul server, utilizza showmount comando:
$ showmount -e 192.168.2.102
Fase 2) Montaggio della condivisione NFS remota situata sul server
Successivamente, è necessario montare la directory di condivisione NFS remota che si trova sul sistema client locale. Ma prima, creiamo una directory per montare la condivisione NFS.
$ sudo mkdir p /mnt/client_share
Per montare la condivisione NFS, eseguire il comando seguente. Ricordiamo che 192.168.2.102 è l'indirizzo IP del server NFS.
$ sudo mount -t nfs 192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share
Puoi verificare che la condivisione NFS remota sia stata montata eseguendo:
$ sudo mount | grep -i nfs
Per rendere persistente la condivisione di montaggio al riavvio, è necessario modificare /etc/fstab file e aggiungi la voce di seguito.
192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share nfs defaults 0 0
Salva e chiudi il file.
Test della configurazione di server e client NFS
A questo punto abbiamo finito con tutte le configurazioni. Tuttavia, dobbiamo testare la nostra configurazione e assicurarci che tutto funzioni. Quindi, per prima cosa, creeremo un file di prova nella directory di condivisione del server NFS e verificheremo se è presente nella directory montata NFS del client.
$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt
Ora, vai al sistema client e controlla se il file esiste sul lato client.
$ ls -l /mnt/client_share/
Grande! Dall'output, possiamo vedere chiaramente che il file esiste. Ora facciamo il contrario. Creeremo un file sul sistema client NFS e verificheremo se è possibile accedervi dal server NFS.
Sul client creare il file come mostrato:
$ sudo touch /mnt/client_share/client_nfs_file.txt
Ora torna al server e controlla se il file è presente nella directory di condivisione NFS
$ ls -l /mnt/nfs_shares/docs
Eccezionale! Possiamo visualizzare e accedere al file.
Come puoi vedere, puoi facilmente creare file sia sul server NFS che sul client e condividerli senza problemi tra i due sistemi e altri sistemi client che sono stati configurati per accedere alle condivisioni. E questo ci porta alla fine del nostro tutorial oggi. In questa guida, ti abbiamo mostrato come installare e configurare il server NFS e la configurazione del sistema client su CentOS 8 e RHEL 8.