NFS consente a un server Linux di condividere directory con altri client UNIX sulla rete. Server NFS esporta una directory e un client NFS monta questa directory. RHEL 7 supporta due versioni di NFS:NFSv3 e NFSv4.
Server NFS e processi RPC
avviare il server nfs processo avvia il server NFS e altri processi RPC. I processi RPC includono:
– rpc.statd :implementa il protocollo di monitoraggio (NSM) tra il client NFS e il server NFS
– rpc.mountd :demone di montaggio NFS che implementa il lato server delle richieste di montaggio dai client NFSv3.
– rpc.idmapd :mappa i nomi NFSv4 e gli UID e GID locali
– rpc.rquotad :fornisce informazioni sulla quota utente per gli utenti remoti.
Configurazione del server NFS
1. Installa i pacchetti nfs richiesti se non sono già installati sul server:
# rpm -qa | grep nfs-utils
# yum install nfs-utils rpcbind
2. Abilita i servizi all'avvio:
# systemctl enable nfs-server # systemctl enable rpcbind
# systemctl enable nfs-lock
In RHEL7.1 (nfs-utils-1.3.0-8.el7) l'abilitazione di nfs-lock non funziona (nessun file o directory di questo tipo). non è necessario che sia abilitato poiché rpc-statd.service è statico.
# systemctl enable nfs-idmap
In RHEL7.1 (nfs-utils-1.3.0-8.el7) questo non funziona (nessun file o directory di questo tipo). non ha bisogno di essere abilitato poiché nfs-idmapd.service è statico.
3. Avvia i servizi NFS:
# systemctl start rpcbind # systemctl start nfs-server # systemctl start nfs-lock # systemctl start nfs-idmap
4. Verifica lo stato del servizio NFS:
# systemctl status nfs
5. Crea una directory condivisa:
# mkdir /test
6. Esportare la directory. Il formato del file /etc/exports è:
dir client1 (options) [client2(options)...]
Le opzioni client includono (le impostazioni predefinite sono elencate per prime):
ro / rw :
a) ro :consente ai client l'accesso in sola lettura alla condivisione.
b) rw :consente ai client l'accesso in lettura e scrittura alla condivisione.
sync / async :
a) sync :il server NFS risponde alla richiesta solo dopo che le modifiche apportate dalla richiesta precedente sono state scritte su disco.
b) async :specifica che il server non deve attendere.
wdelay / no_wdelay
a) wdelay :il server NFS ritarda il commit delle richieste di scrittura quando sospetta che un'altra richiesta di scrittura sia imminente.
b) no_wdelay :usa questa opzione per disabilitare il ritardo. L'opzione no_wdelay può essere abilitata solo se l'impostazione predefinita è sync l'opzione è abilitata.
no_all_squash / all_squash :
a) no_all_squash :non cambia la mappatura degli utenti remoti.
b) all_squash :per schiacciare tutti gli utenti remoti incluso root.
root_squash / no_root_squash :
a) root_squash :impedisce agli utenti root connessi in remoto di avere accesso come root. Eliminare efficacemente i privilegi di root remoti.
b) no_root_squash :disabilita lo schiacciamento di root.
Esempio :
# vi /etc/exports /test *(rw)
7. Esportazione della condivisione :
# exportfs -r
-r riesporta le voci in /etc/exports e sincronizza /var/lib/nfs/etab con /etc/exports. La /var/lib/nfs/etab è la tabella di esportazione principale. Altre opzioni che possono essere utilizzate con il comando exportfs sono:
-a : exports entries in /etc/exports but do not synchronize with /var/lib/nfs/etab -i : ignore entries in /etc/exports and uses command line arguments. -u : un-export one or more directories -o : specify client options on command line
8. Riavvia il servizio NFS:
# systemctl restart nfs-server
Configurazione del client NFS
1. Installa i pacchetti nfs richiesti se non sono già installati sul server:
# rpm -qa | grep nfs-utils
# yum install nfs-utils
2. Utilizzare il comando mount per montare i file system esportati. Sintassi per il comando:
mount -t nfs -o options host:/remote/export /local/directory
Esempio :
# mount -t nfs -o ro,nosuid remote_host:/home /remote_home
Questo esempio esegue le seguenti operazioni:
– Monta /home dall'host remoto (host_remoto) sul punto di montaggio locale /casa_remota.
– Il file system viene montato in sola lettura e agli utenti viene impedito di eseguire un programma setuid ( -o ro, opzioni nosuid).
3. Aggiorna /etc/fstab per montare condivisioni NFS all'avvio.
# vi /etc/fstab remote_host:/home /remote_home nfs ro,nosuid 0 0
Servizi firewall attivi sul server NFS
Affinché il server NFS funzioni, abilita i servizi nfs, mountd e rpc-bind nell'area pertinente nell'applicazione firewall-config o usando firewall-cmd :
# firewall-cmd --add-service=nfs --zone=internal --permanent # firewall-cmd --add-service=mountd --zone=internal --permanent # firewall-cmd --add-service=rpc-bind --zone=internal --permanent