Guida alle tecnologie

Guida completa: installare e configurare NFS su AlmaLinux 9

8 min read Linux Aggiornato 29 Sep 2025
Installare e configurare NFS su AlmaLinux 9
Installare e configurare NFS su AlmaLinux 9

Questa guida mostra come installare e configurare un server NFS e un client su AlmaLinux 9: installazione dei pacchetti nfs-utils, creazione e condivisione di directory via /etc/exports, apertura dei servizi necessari in firewalld, montaggio manuale e automatico tramite /etc/fstab e verifiche di lettura/scrittura. Include checklist operative, suggerimenti per sicurezza e risoluzione dei problemi.

Introduzione: cos’è NFS

NFS (Network File System) è un protocollo che permette a utenti locali e macchine client di accedere a file e directory su server remoti come se fossero locali. Originariamente sviluppato da Sun Microsystems, NFS è uno standard consolidato per la condivisione di file in ambienti centralizzati.

Definizione rapida: NFS espone file system remoti tramite rete TCP/IP permettendo montaggi su client e operazioni di I/O come se fossero dischi locali.

Importante: NFS non fornisce cifratura nativa; per scenari sensibili valutare tunnel (VPN) o alternative come NFS su Kerberos o soluzioni di storage distribuito con crittografia.

H2: Panoramica dell’esercitazione

Obiettivi pratici:

  • Installare nfs-utils su server e client AlmaLinux 9 (compatibile con altre distribuzioni RHEL-based);
  • Configurare /etc/idmapd.conf e /etc/exports sul server;
  • Creare directory condivise e impostare permessi adeguati;
  • Aprire i servizi necessari con firewalld;
  • Montare manualmente sul client e configurare l’automount tramite /etc/fstab;
  • Verificare lettura e scrittura e fornire checklist di sicurezza e risoluzione problemi.

Varianti di intento correlate: installare NFS su RHEL, configurare NFS con Kerberos, montaggio NFS in fstab, hardening NFS, debugging NFS.

Prerequisiti

  • Un server AlmaLinux 9 con accesso root o un utente con sudo. Nell’esempio il server ha hostname almalinux9-server e IP 192.168.10.15.
  • Uno o più client (qualsiasi distribuzione RHEL-based andrà bene).
  • Connettività di rete tra client e server e firewalld avviato se in uso.

Nota: se usate ambienti cloud o reti con restrizioni, verificate che le porte RPC e NFS siano raggiungibili (vedi box “Porte e servizi”).

Installare NFS Server e Client

Su server e client installare il pacchetto nfs-utils presente nel repository AppStream:

sudo dnf install nfs-utils

Schermata installazione nfs-utils

Configurare idmapd (mappatura utenti)

Aprire il file /etc/idmapd.conf e impostare il dominio; questo aiuta la risoluzione degli user/group tra client e server. Esempio con nano:

sudo nano /etc/idmapd.conf

Modificare la riga Domain in modo che rispecchi il FQDN o il nome host del server:

Domain = almalinux9-server

Salvare ed uscire.

Avviare e abilitare il servizio NFS

sudo systemctl start nfs-server
sudo systemctl enable nfs-server
sudo systemctl status nfs-server

Se il servizio è attivo vedrete lo stato “active (running)”.

Verifica avvio nfs-server

Creare e configurare le directory condivise

Creare le directory che si intendono condividere:

sudo mkdir -p /mnt/shared /mnt/backup

Impostare proprietà e permessi di base:

sudo chown -R nobody:nobody /mnt/shared /mnt/backup
sudo chmod 775 /mnt/shared /mnt/backup

Nota: l’utente nobody è comunemente usato per condivisioni generiche. Per scenari con utenti reali valutate l’uso di UID/GID coerenti o di idmap/SSO.

Configurare /etc/exports

Aprire /etc/exports e aggiungere le righe di condivisione. Nell’esempio condividiamo /mnt/backup e /home per un client specifico (192.168.10.21) e /mnt/shared per l’intera rete 192.168.10.0/24:

sudo nano /etc/exports

Inserire:

/mnt/backup  192.168.10.21(rw,sync,no_subtree_check)
/home 192.168.10.21(rw,sync,no_root_squash,no_subtree_check)
/mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)

Spiegazione delle opzioni principali:

  • rw: lettura e scrittura abilitata;
  • sync: scrive i dati su disco prima di rispondere al client (maggiore sicurezza, più latenza);
  • no_subtree_check: disabilita il subtree checking per migliorare le prestazioni;
  • no_root_squash: preserva i privilegi root del client nella directory condivisa (usare con cautela).

Salvare e chiudere il file, poi applicare le modifiche riavviando NFS:

sudo systemctl restart nfs-server
sudo exportfs -v

exportfs -v lista le directory esportate e le opzioni applicate.

Porte e servizi (fact box)

Porte e servizi NFS comuni (default):

  • rpcbind (portmap): TCP/UDP 111
  • NFS (nfs): TCP/UDP 2049
  • mountd: porta dinamica gestita da rpcbind (configurabile)
  • nlockmgr, statd e altri RPC: porte dinamiche

Importante: aprite i servizi tramite firewalld o il vostro firewall di rete; il comando d’esempio apre i servizi comuni (vedi sezione firewall).

Proteggere NFS con firewalld

Aprite i servizi RPC/NFS con firewalld e ricaricate la configurazione:

sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Verificate che le zone e i servizi siano quelli corretti e che il traffico sia permesso tra client e server.

Verifica regole firewalld

Nota: in ambienti più restrittivi consigliabile limitare l’accesso per IP e usare regole di zona specifiche.

Configurare il client NFS

Sul client installare nfs-utils se non già presente:

sudo dnf install nfs-utils

Verificare le condivisioni offerte dal server:

sudo showmount -e 192.168.10.15

Dovreste vedere /mnt/backup, /mnt/shared e /home come nell’esempio.

Lista condivisioni dal client

Creare i punti di mount locali sul client e montare manualmente:

sudo mkdir -p /data /backup /shared
sudo mount 192.168.10.15:/mnt/backup /backup
sudo mount 192.168.10.15:/mnt/shared /shared
sudo mount 192.168.10.15:/home /data

Verificare con df -h:

sudo df -h

Verifica mount client

Verificare l’accesso in scrittura dal client

Sul client creare file di test nelle directory montate:

echo "This file from client" > /backup/test-write1.txt
echo "This file from client" > /shared/test-write2.txt
echo "This file from client" > /data/alice/test-write3.txt

Quindi tornare sul server e verificare che i file siano presenti nelle directory esportate:

cat /mnt/backup/test-write1.txt
cat /mnt/shared/test-write2.txt
cat /home/alice/test-write3.txt

Se tutto funziona i contenuti appariranno sul server.

Verifica file sul server NFS

Configurare l’automount via /etc/fstab sul client

Smontare le condivisioni attive prima di modificare fstab:

sudo umount /data /backup /shared
sudo df -h

Smontare directory

Modificare /etc/fstab e aggiungere le righe per le condivisioni NFS. Personalizzate IP e percorsi secondo il vostro ambiente:

sudo nano /etc/fstab

Esempio di righe fstab:

192.168.10.15:/mnt/backup    /backup   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/mnt/shared    /shared  nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/home          /data    nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Spiegazione rapida delle opzioni fstab utili:

  • auto: montare al boot (o quando si usa mount -a);
  • nofail: non interrompere il boot se il mount fallisce (utile per laptop o reti intermittenti);
  • noatime: migliora le prestazioni evitando aggiornamenti di atime;
  • nolock: disabilita file locking (usare con cautela);
  • intr: consente di interrompere operazioni pendenti (opzione storica);
  • actimeo=1800: caching delle attribuzioni per 1800 secondi (regola la coerenza).

Salvare il file e applicare i mount:

sudo mount -a
sudo df -h

Dopo il riavvio il client monterà automaticamente le condivisioni specificate.

Auto-mount tramite fstab

Controlli e prove (Test cases / acceptance criteria)

  • Il servizio nfs-server è attivo: systemctl status nfs-server => active (running).
  • exportfs -v mostra le directory esportate con le opzioni desiderate.
  • showmount -e da client mostra le stesse esportazioni.
  • mount (o df -h) mostra le condivisioni montate sul client.
  • Creazione di file sul client è visibile sul server e viceversa (controllo contenuto con cat).
  • Riavvio del client monta automaticamente le condivisioni specificate in /etc/fstab.

Seguridad y buone pratiche (sicurezza e hardening)

Importante: trattare NFS come un servizio di rete non cifrato se non adeguatamente protetto. Raccomandazioni:

  • Limitare l’accesso alle reti/IP necessari nelle regole di /etc/exports;
  • Evitare no_root_squash se non richiesto; preferire mapping UID/GID coerenti;
  • Considerare NFS su Kerberos (sec=krb5/krb5i/krb5p) per autenticazione e integrità/confidenzialità;
  • Usare firewall per restringere i servizi RPC alle sole subnet di gestione;
  • Monitorare i log: /var/log/messages, journalctl -u nfs-server;
  • Per dati sensibili usare cifratura a livello di trasporto (VPN) o cifratura a riposo.

Nota GDPR/Privacy: se su condivisioni transitano dati personali, applicare controlli di accesso, logging e cifratura secondo la normativa locale.

Migrazione e compatibilità

  • NFSv3 è largamente supportato; NFSv4 migliora autenticazione, sicurezza e performance. Verificate la versione supportata da client e server con nfsstat -s o rpcinfo -p.
  • Se migrate da Samba/SMB o da soluzioni cloud, valutate differenze in permessi e locking.

Troubleshooting comune (edge-case gallery)

Problema: client non vede le esportazioni

  • Verificare che rpcbind sia attivo su server: systemctl status rpcbind.
  • Controllare che exportfs -v mostri le esportazioni.
  • Verificare il firewall e le regole di rete.

Problema: permessi file non corrispondono

  • Controllare UID/GID su server e client; usare idmap o sincronizzare UID/GID.
  • Controllare opzioni come no_root_squash.

Problema: mount lento o timeouts

  • Verificare opzioni in fstab come noatime, actimeo e scegliere tra TCP vs UDP (TCP è raccomandato);
  • Monitorare rete e latenza.

Problema: lock o file bloccati

  • Verificare servizi rpc-statd, nlockmgr; usare rpcinfo -p per vedere le porte.

Ruoli e checklist operative

Amministratore di sistema (server):

  • Installare nfs-utils e avviare nfs-server.
  • Configurare /etc/idmapd.conf Domain.
  • Creare directory e impostare permessi coerenti.
  • Definire /etc/exports con restrizioni IP e opzioni appropriate.
  • [ ] Aggiornare firewall e verificare exportfs -v.

Amministratore client / DevOps:

  • Installare nfs-utils sul client.
  • Verificare showmount -e .
  • Creare punti di mount e testare mount manuale.
  • Aggiungere righe in /etc/fstab con opzioni nofail se necessario.
  • Eseguire test di scrittura e lettura e automatizzare i controlli.

Sicurezza/Compliance:

  • Verificare esposizioni di rete e limitare gli IP autorizzati.
  • Valutare Kerberos e cifratura per dati sensibili.
  • Abilitare logging e retention in conformità alle policy.

Mini-metodologia di rollout in produzione

  1. Ambiente di test: replicare server NFS e almeno un client in laboratorio.
  2. Validare performance e integrazione applicativa (lock, throughput).
  3. Definire policy UID/GID o idmap centralizzato.
  4. Applicare regole di firewall e RBAC. Eseguire scan di sicurezza.
  5. Procedere a rollout graduale (canary) per ridurre impatto di regressioni.
  6. Monitorare metriche: IOPS, latenza I/O, errori NFS e riavvii dei servizi.

Mermaid decision flow (scelta della soluzione NFS vs alternative):

flowchart TD
  A[Hai bisogno di condivisione file di rete?] --> B{Richiedi sicurezza criptata?}
  B -- No --> C[NFS standard 'valuta NFSv4']
  B -- Sì --> D{Vuoi autenticazione forte 'Kerberos'?}
  D -- Sì --> E[NFSv4 con Kerberos 'sec=krb5/krb5i/krb5p']
  D -- No --> F[VPN o tunnel TLS + NFS]
  C --> G[Valuta limitazioni UID/GID e firewall]
  E --> G
  F --> G

Esempi rapidi e snippet (cheat sheet)

Montare manualmente (comando rapido):

sudo mount -t nfs -o rw,hard,intr 192.168.10.15:/mnt/shared /shared

Lista esportazioni server:

sudo exportfs -v

Lista export visibile dal client:

sudo showmount -e 192.168.10.15

Verificare porte RPC e servizi:

rpcinfo -p 192.168.10.15

Log utili:

journalctl -u nfs-server -b
tail -n 200 /var/log/messages

Conclusione

Hai configurato con successo un server NFS e un client su AlmaLinux 9, impostando le esportazioni, aprendo i servizi sul firewall, montando le condivisioni manualmente e automaticamente via /etc/fstab e verificando l’accesso in lettura/scrittura. Prima di mettere in produzione, applica le pratiche di hardening descritte e testa i casi limite con i tuoi carichi di lavoro.

Importante: per scenari enterprise con dati sensibili o bisogni di auditing avanzato, considera NFSv4 con Kerberos o soluzioni di storage che offrono cifratura e controllo accessi più granulare.

Riepilogo rapido

  • Installa nfs-utils su server e client;
  • Configura /etc/idmapd.conf e /etc/exports;
  • Avvia e abilita nfs-server; apri le porte con firewalld;
  • Monta manualmente le condivisioni e verifica la scrittura;
  • Configura /etc/fstab per automount; applica misure di sicurezza.

Risorse consigliate

  • Manuale man exports, man nfs e man rpcbind per opzioni avanzate;
  • Documentazione ufficiale della distribuzione per parametri firewall e gestione dei servizi.
Autore
Redazione

Materiali simili

Backup registro Windows: guida completa
Windows

Backup registro Windows: guida completa

Vedere i post che hai messo Mi piace su Instagram
Social Media

Vedere i post che hai messo Mi piace su Instagram

Dettatura vocale in WhatsApp: guida rapida
Guide.

Dettatura vocale in WhatsApp: guida rapida

Trovare collaborazioni su IMDb
Guide.

Trovare collaborazioni su IMDb

Citazione sul desktop con Rainmeter
Guida

Citazione sul desktop con Rainmeter

Installare e configurare NFS su AlmaLinux 9
Linux

Installare e configurare NFS su AlmaLinux 9