Come creare un server di file sicuro su Ubuntu usando Samba e NFS [Guida passo passo]

目次

1. Perché creare un file server con Ubuntu?

Che cos’è un file server?

Un file server è un server che consente a più dispositivi su una rete di archiviare e condividere file in un luogo centralizzato. È un ottimo modo per semplificare i trasferimenti di file all’interno di una rete domestica o d’ufficio e offre vantaggi come la gestione centralizzata dei dati e backup semplificati.

Ad esempio, se diverse persone devono lavorare sullo stesso documento, salvarlo su un file server garantisce che tutti accedano alla versione più aggiornata, anziché scambiarsi file sui PC locali. Riduce inoltre il rischio di perdita di dati rispetto al salvataggio dei file su computer individuali.

Perché usare Ubuntu?

Esistono molti sistemi operativi che è possibile utilizzare per creare un file server, ma Ubuntu è una delle scelte più popolari. Ecco perché:

1. È gratuito

Ubuntu è una distribuzione Linux open‑source senza costi di licenza. Questo lo rende un’opzione attraente per privati o aziende che desiderano allestire un ambiente server con un budget limitato.

2. Leggero e stabile

Ubuntu utilizza poche risorse di sistema e può funzionare senza problemi su PC più vecchi o dispositivi come il Raspberry Pi. Con le versioni a supporto a lungo termine (LTS) riceverai aggiornamenti di sicurezza e correzioni di bug per anni, ideale per l’uso server.

3. Ampio supporto per strumenti come Samba e NFS

Ubuntu supporta i protocolli di condivisione file più diffusi, come Samba (per la condivisione con Windows) e NFS (per la condivisione Linux/Unix), subito pronto all’uso. Dispone di un’ampia selezione di pacchetti e documentazione, rendendo l’installazione adatta ai principianti.

4. Comunità forte e risorse abbondanti

Poiché Ubuntu è ampiamente usato in tutto il mondo, è facile trovare soluzioni online quando si presentano problemi. Il vasto supporto della community garantisce che non rimarrai bloccato a lungo. Anche i non anglofoni possono trovare guide utili in varie lingue.

Ideale per uso domestico e piccole uffici

I file server basati su Ubuntu sono perfetti per condividere dati tra dispositivi in casa o per la collaborazione in piccoli uffici o ambienti SOHO (Small Office/Home Office). Rispetto all’acquisto di un NAS (Network Attached Storage), offrono maggiore flessibilità a un costo inferiore.

Ecco alcuni casi d’uso comuni:

  • Un server multimediale per condividere foto e video con la famiglia
  • Uno spazio di lavoro condiviso per fatture e preventivi in una piccola impresa
  • Un’area collaborativa per codice e documenti all’interno di un team di sviluppo

2. Confronto tra metodi di condivisione file: Samba vs NFS

Quando si configura un file server con Ubuntu, due metodi principali sono comunemente usati: Samba e NFS. Entrambi consentono la condivisione di file su una rete, ma differiscono per i sistemi operativi supportati e per le loro caratteristiche tecniche. In questa sezione confronteremo entrambi per aiutarti a scegliere quello più adatto alle tue esigenze.

Che cos’è Samba? Compatibilità eccellente con Windows

Samba è un pacchetto software che implementa il protocollo SMB (Server Message Block), utilizzato da Windows per la condivisione di file. Installando Samba su Ubuntu, puoi creare un file server accessibile da PC Windows come se fosse un’unità di rete.

Caratteristiche principali di Samba

  • Elevata compatibilità con i sistemi Windows
  • Accesso facile alle cartelle condivise da Esplora Risorse di Windows
  • Controllo dettagliato sull’autenticazione degli utenti e sui permessi
  • Strumenti di configurazione basati su interfaccia grafica (es. Webmin) disponibili

Quando usare Samba

  • Vuoi condividere file con client Windows
  • Hai bisogno di condividere file tra diversi OS (es. Windows e Linux)
  • Desideri una configurazione user‑friendly per ambienti domestici o d’ufficio

Che cos’è NFS? Condivisione veloce ed efficiente per Linux/Unix

NFS (Network File System) è un protocollo di condivisione file utilizzato principalmente tra sistemi Linux e Unix. Dal punto di vista del client, una cartella condivisa via NFS appare come una directory locale montata sul sistema.

Caratteristiche principali di NFS

  • Ideale per condividere file tra sistemi Linux
  • Leggero con velocità di trasferimento elevate
  • Configurazione semplice che supporta la condivisione su larga scala
  • Richiede impostazioni di sicurezza accurate (controllo accessi basato su IP)

Quando usare NFS

  • Ambienti server che condividono file tra macchine Linux
  • Directory condivise all’interno di un team di sviluppo
  • Scenari che richiedono trasferimenti leggeri e ad alta velocità

Tabella di confronto: Samba vs NFS

CategorySambaNFS
Supported OSWindows / Linux / macOSLinux / Unix (Windows not recommended)
ProtocolSMB (CIFS)NFS
SpeedModerate (depends on settings)Fast
Security FeaturesUser authentication, encryption supportedIP-based access control, supports Kerberos
Ease of SetupSlightly complexSimple
Best Use CaseCross-platform sharingEfficient sharing among Linux systems

Quale dovresti scegliere?

In definitiva, la tua scelta dipende da qual è il sistema operativo con cui condividi i file, come intendi utilizzare il server e quali sono le tue priorità.

  • Scegli Samba se il tuo obiettivo principale è condividere file con dispositivi Windows
  • Scegli NFS se lavori in un ambiente Linux‑to‑Linux e hai bisogno di velocità e semplicità
  • Se il tuo ambiente include entrambi, considera di usare Samba e NFS insieme

Grazie alla flessibilità di Ubuntu, puoi facilmente configurare entrambi i protocolli e usarli affiancati a seconda delle tue esigenze.

3. [Samba Edition] Come configurare un file server su Ubuntu

In questa sezione, ti guideremo passo passo su come configurare un file server su Ubuntu usando Samba. Questo metodo è particolarmente utile se desideri condividere file con PC Windows.

Preparazione: Aggiorna Ubuntu e controlla i pacchetti

Prima di tutto, assicurati che il tuo sistema Ubuntu sia aggiornato. Apri il terminale e esegui i seguenti comandi:

sudo apt update
sudo apt upgrade

Successivamente, verifica se i pacchetti necessari sono installati, incluso Samba:

smbclient --version

Se non viene mostrata alcuna versione, procedi all’installazione di Samba nel passaggio successivo.

Installazione di Samba

Usa il seguente comando per installare il pacchetto Samba:

sudo apt install samba -y

Dopo l’installazione, verifica se il servizio Samba è attivo:

sudo systemctl status smbd

Se mostra “active (running)”, sei a posto.

Modifica di smb.conf e creazione di una cartella condivisa

Il file di configurazione di Samba si trova in /etc/samba/smb.conf. Prima, crea la cartella condivisa. In questo esempio, useremo /srv/samba/shared come directory da condividere:

sudo mkdir -p /srv/samba/shared
sudo chmod 777 /srv/samba/shared

Quindi modifica il file di configurazione:

sudo nano /etc/samba/smb.conf

Aggiungi la seguente sezione alla fine del file:

[Shared]
   path = /srv/samba/shared
   browseable = yes
   read only = no
   guest ok = yes

Questa configurazione crea una cartella pubblica dove chiunque può leggere e scrivere file. Per una maggiore sicurezza, considera di impostare l’autenticazione utente (spiegata di seguito).

Per applicare le modifiche, riavvia il servizio Samba:

sudo systemctl restart smbd

Creazione di un utente Samba e impostazione dei permessi di accesso

Per rendere sicura la cartella condivisa, è consigliato creare un utente Samba e limitare l’accesso.

  1. Crea un utente locale Ubuntu (salta questo passaggio se l’utente esiste già):
    sudo adduser sambauser
    
  1. Aggiungi l’utente a Samba:
    sudo smbpasswd -a sambauser
    
  1. Cambia la proprietà della cartella e restringi i permessi:
    sudo chown sambauser:sambauser /srv/samba/shared
    sudo chmod 770 /srv/samba/shared
    
  1. Aggiorna smb.conf per richiedere l’autenticazione:
    [SecureShared]
       path = /srv/samba/shared
       browseable = yes
       read only = no
       valid users = sambauser
    

Come connettersi da un client Windows

Una volta configurato il server Samba, puoi connetterti da un PC Windows seguendo i passaggi seguenti:

  1. Apri Esplora file di Windows
  2. Nella barra degli indirizzi, digita \[Ubuntu server IP]Shared
  3. Se richiesto, inserisci il nome utente sambauser e la password che hai creato

Se la connessione ha successo, potrai leggere e scrivere file come con una cartella normale.

4. [NFS Edition] Come configurare un file server su Ubuntu

NFS (Network File System) è un protocollo di condivisione di file di rete leggero e ad alta velocità ampiamente usato negli ambienti Linux e Unix. È facile da implementare su Ubuntu e consente una condivisione fluida dei file tra più macchine Linux.

In questa sezione, illustreremo i passaggi per configurare un server NFS su Ubuntu.

Come installare il server NFS

Per prima cosa, installa il pacchetto del server NFS. Sul tuo server Ubuntu, esegui i seguenti comandi:

sudo apt update
sudo apt install nfs-kernel-server -y

Dopo l’installazione, verifica se il servizio NFS è in esecuzione:

sudo systemctl status nfs-server

Se vedi “active (running)”, l’installazione è avvenuta con successo.

Configurare /etc/exports e definire la directory condivisa

Successivamente, crea la directory che desideri condividere con i client. In questo esempio, useremo /srv/nfs/shared:

sudo mkdir -p /srv/nfs/shared
sudo chown nobody:nogroup /srv/nfs/shared
sudo chmod 755 /srv/nfs/shared

Quindi modifica il file di configurazione NFS /etc/exports:

sudo nano /etc/exports

Aggiungi la riga seguente (sostituisci 192.168.1.0/24 con l’intervallo di rete effettivo):

/srv/nfs/shared 192.168.1.0/24(rw,sync,no_subtree_check)

Per applicare le modifiche, esegui i seguenti comandi:

sudo exportfs -a
sudo systemctl restart nfs-server

Il tuo server NFS è ora configurato e pronto all’uso.

Montare la condivisione NFS su un client (Linux)

Sul computer client Linux, installa il pacchetto client NFS:

sudo apt update
sudo apt install nfs-common -y

Crea la directory in cui desideri montare la cartella condivisa (ad esempio, /mnt/nfs_shared):

sudo mkdir -p /mnt/nfs_shared

Ora monta la cartella condivisa usando il comando seguente:

sudo mount -t nfs 192.168.1.10:/srv/nfs/shared /mnt/nfs_shared

*Sostituisci 192.168.1.10 con l’indirizzo IP del tuo server NFS.

Questo renderà la cartella condivisa del server NFS accessibile come una directory locale sul client.

Opzionale: montaggio automatico all’avvio del sistema

Se vuoi che la condivisione NFS venga montata automaticamente all’avvio, aggiungi la riga seguente a /etc/fstab:

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults 0 0

In questo modo la cartella condivisa verrà montata automaticamente ogni volta che il sistema si avvia.

Restrizioni di accesso specifiche per NFS e considerazioni

A differenza di Samba, NFS utilizza il controllo degli accessi basato su IP. In /etc/exports, specifica sempre solo le reti o gli host di fiducia.

Inoltre, se l’UID (User ID) e il GID (Group ID) tra client e server non corrispondono, la proprietà dei file potrebbe non essere riconosciuta correttamente. Per evitare questo problema, è consigliabile mantenere gli stessi UID e GID per gli utenti che accedono alle cartelle condivise su entrambi i sistemi.

Con questo, la configurazione del tuo server NFS su Ubuntu è completa. Rispetto a Samba, NFS è più semplice e veloce, rendendolo un’ottima opzione per la condivisione file Linux‑to‑Linux.

5. Sicurezza e migliori pratiche per la gestione di un file server

I file server sono estremamente utili per condividere dati in rete, ma senza le dovute precauzioni possono diventare vulnerabili a violazioni di dati e accessi non autorizzati. In questa sezione, esamineremo le migliori pratiche di sicurezza e gestione per l’esecuzione di un file server su Ubuntu.

Limitare l’accesso tramite firewall (ufw)

Ubuntu include uno strumento firewall integrato chiamato ufw (Uncomplicated Firewall). Quando usi Samba o NFS, assicurati di aprire esplicitamente solo le porte necessarie per bloccare il traffico indesiderato.

Esempio: aprire le porte per Samba

sudo ufw allow Samba

Questo comando apre tutte le porte richieste da Samba (137, 138, 139, 445) con una singola regola.

Esempio: aprire le porte per NFS

NFS può utilizzare porte diverse a seconda della configurazione, quindi puoi aprire quelle specifiche o configurarle come statiche. Ecco un esempio comune:

sudo ufw allow from 192.168.1.0/24 to any port nfs

*192.168.1.0/24 rappresenta l’intervallo di rete di fiducia.

Rafforzare il controllo degli accessi e l’autenticazione degli utenti

Restrizioni di accesso Samba

  • Usa valid users per specificare quali utenti possono accedere a ciascuna cartella condivisa
  • Imposta read only = yes per consentire solo l’accesso in lettura
  • Usa hosts allow o hosts deny per limitare l’accesso in base all’indirizzo IP

Esempio di configurazione in smb.conf:

[SecureShared]
   path = /srv/samba/secure
   read only = no
   valid users = user1
   hosts allow = 192.168.1.

Restrizioni di Accesso NFS

  • Usa /etc/exports per specificare quali IP o reti possono accedere a ciascuna condivisione
  • Definisci chiaramente rw (lettura-scrittura) o ro (sola lettura)
  • Abilita root_squash per limitare l’accesso root dai client

Example configuration:

/srv/nfs/secure 192.168.1.0/24(rw,sync,no_subtree_check,root_squash)

Monitorare i Log e Rilevare Attività Anomale

Il monitoraggio dei log è essenziale per rilevare accessi non autorizzati o errori del server.

  • Log di Samba: /var/log/samba/log.smbd
  • Log di NFS: /var/log/syslog o journalctl -u nfs-server

Puoi anche usare strumenti come fail2ban per bloccare gli IP dopo più tentativi di accesso falliti automaticamente.

Configurare Backup Automatici

Cancellazioni accidentali o guasti hardware possono verificarsi in qualsiasi momento, quindi i backup regolari automatizzati sono indispensabili.

Esempi di Strategie di Backup

  • Usa rsync per backup incrementali
  • Automatizza con cron per programmare i backup
  • Archivia i backup su un HDD esterno o NAS
  • Sincronizza con lo storage cloud (es., Google Drive, Dropbox) usando strumenti come rclone

Esempio: programma un backup giornaliero alle 2:00 usando rsync e cron

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/shared/

Mantenere il Software Aggiornato

Mantenere il sistema aggiornato aiuta a prevenire vulnerabilità e mantenere la sicurezza.

sudo apt update && sudo apt upgrade -y

Inoltre, utilizzare una versione Ubuntu Long Term Support (LTS) garantisce di ricevere aggiornamenti di sicurezza per un periodo prolungato.

Ricorda, gestire un file server non è un compito “imposta e dimentica”. Per garantire che funzioni in modo sicuro e fluido, resta al passo con sicurezza, backup e manutenzione come parte delle tue operazioni regolari.

6. Problemi Comuni e Come Risolverli

Anche dopo aver configurato il tuo file server, potresti incontrare problemi comuni o errori di configurazione. Questa sezione riassume i problemi frequenti con i file server Ubuntu che usano Samba o NFS e come risolverli.

Impossibile Connettersi / Cartella Condivisa Non Visibile

Sintomi

  • Impossibile accedere alle cartelle condivise da client Windows o Linux
  • Il server non appare nella rete

Possibili Cause e Soluzioni

CauseSolution
Blocked by firewallRun sudo ufw allow Samba or sudo ufw allow from [IP] to any port nfs
Hostname resolution failureAccess the server directly using its IP: \192.168.1.10Shared
Samba/NFS service is not runningRestart services: sudo systemctl restart smbd or nfs-server
Incorrect network settings on the clientCheck subnet and gateway configurations

Errori di Permessi

Sintomi

  • Impossibile creare o modificare file
  • Appare l’errore “Accesso negato”

Possibili Cause e Soluzioni

CauseSolution
Incorrect directory ownershipRun sudo chown -R user:group /shared-folder
Insufficient permissionsSet permissions using sudo chmod -R 770 /shared-folder
Samba config errorEnsure read only = no is set in the [shared] section
UID/GID mismatch in NFSMatch user IDs between client and server using id command

Montaggio Non Persistente / Condivisione Scompare Dopo il Riavvio

Sintomi

  • La cartella condivisa scompare dopo il riavvio sui client Linux
  • È necessario eseguire manualmente il comando di mount ogni volta

Possibili Cause e Soluzioni

CauseSolution
Missing fstab entryAdd an auto-mount entry to /etc/fstab
Network is not ready before mountingAdd nofail,_netdev to mount options
Slow response from serverInclude timeout settings like timeo=14 in mount options

Esempio di voce fstab per NFS:

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults,_netdev,nofail 0 0

File Non Visibili / Modifiche Non Riflesse

Sintomi

  • I file salvati da un altro client non compaiono
  • Le modifiche non vengono aggiornate immediatamente

Possibili Cause e Soluzioni

CauseSolution
Delayed updates due to cachingOften temporary—refresh with Ctrl + F5 or reconnect
Client-side buffering (NFS)Use actimeo=0 mount option for immediate sync
Write delay in SambaAdd strict sync = yes in smb.conf

Controllare i Log e Diagnosticare i Problemi

Quando si diagnosticano problemi in Ubuntu, la revisione dei log è estremamente utile.

Log di Samba

cat /var/log/samba/log.smbd

Log di NFS

journalctl -u nfs-server

I log mostreranno dettagli come fallimenti di accesso, problemi di autenticazione o configurazioni errate. Spesso è possibile cercare i messaggi di errore su Google per trovare soluzioni.

Consigli per un Troubleshooting Efficace

  • Apporta modifiche alla configurazione passo dopo passo e testa man mano
  • Fai sempre il backup dei file di configurazione prima di modificarli
  • Usa strumenti di validazione come testparm o exportfs -v
  • Dopo aver apportato modifiche, non dimenticare di riavviare o ricaricare i servizi

7. FAQ: Domande Frequenti sui File Server Ubuntu

Quando si costruisce e gestisce un file server con Ubuntu, molti utenti—soprattutto principianti e intermedi—tendono ad avere domande e preoccupazioni comuni. Questa sezione risponde a quelle domande frequenti per rendere più fluida la configurazione e la manutenzione del tuo server.

Q1. Devo usare Samba o NFS?

A. Scegli in base ai sistemi operativi dei tuoi clienti.

  • Se la maggior parte dei tuoi clienti usa Windows, Samba (SMB) è l’opzione migliore → Consente un facile accesso tramite Esplora file di Windows
  • Se condividi file tra sistemi Linux, scegli NFS → È leggero, veloce e stabile

In ambienti misti, puoi eseguire sia Samba che NFS contemporaneamente. Non è necessario limitarsi a uno solo se entrambi sono utili.

Q2. Come condivido un dispositivo di archiviazione esterno come un HDD USB?

A. Prima, monta il dispositivo esterno, poi impostalo come cartella condivisa.

  1. Controlla i dispositivi collegati:
    lsblk
    
  1. Crea un punto di mount e monta il dispositivo:
    sudo mkdir /mnt/usb
    sudo mount /dev/sdX1 /mnt/usb
    
  1. Quindi, configura Samba o NFS per condividere la directory /mnt/usb.

Per montare automaticamente il dispositivo USB all’avvio, aggiungi una voce a /etc/fstab.

Q3. Non riesco ad accedere al server Samba da Windows 11

A. Potrebbe dipendere dalla versione del protocollo SMB o dalle impostazioni di autenticazione.

Ecco come risolvere:

  • Modifica il file di configurazione di Samba /etc/samba/smb.conf e aggiungi quanto segue:
    client min protocol = SMB2
    server min protocol = SMB2
    
  • Disabilita l’accesso guest e richiedi login con nome utente e password
  • Se “SMB 1.0” è abilitato in Windows, considera di disabilitarlo per una maggiore sicurezza

Q4. Qual è il modo migliore per eseguire il backup del mio file server?

A. Automatizzare backup regolari è la pratica migliore.

Metodi consigliati:

  • Backup incrementali usando rsync
  • Pianificazione con cron per esecuzione automatica
  • Salvataggio su unità esterne o NAS
  • Sincronizzazione con storage cloud (es. Google Drive) usando rclone

Esempio: esegui un backup ogni notte alle 2 AM

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/

Q5. Devo usare Ubuntu Desktop o Ubuntu Server per il mio file server?

A. Per un utilizzo stabile a lungo termine, Ubuntu Server è l’ideale. Se preferisci la facilità d’uso, Ubuntu Desktop va bene lo stesso.

CategoryUbuntu ServerUbuntu Desktop
GUINone (lightweight)Included (beginner-friendly)
Resource UsageLowerHigher
UsabilityCommand-line basedSupports GUI operations
Recommended UseProduction server environmentsHome, learning, or light use

Se non ti serve un’interfaccia grafica, Ubuntu Server è più efficiente e sicuro. Ma se sei nuovo a Linux o preferisci un’interfaccia visuale, Ubuntu Desktop funziona altrettanto bene.

Configurare un file server con Ubuntu è semplice ma potente. Con le informazioni fornite qui, puoi costruire un ambiente di condivisione file sicuro, flessibile ed efficiente, su misura per le tue esigenze.

8. Conclusione: Ottieni una condivisione file flessibile con Ubuntu

Creare un file server con Ubuntu è un modo conveniente e affidabile per impostare un ambiente di condivisione file stabile su una rete. Questa guida ha coperto argomenti pratici, tra cui Samba e NFS, istruzioni di configurazione, pratiche di sicurezza e suggerimenti per la risoluzione dei problemi.

Scegli tra Samba e NFS in base alle tue esigenze

Quando si tratta di metodi di condivisione file, la scelta giusta dipende dal tuo caso d’uso specifico.

  • Usa Samba per la condivisione con sistemi Windows
  • Accessibile direttamente da Esplora file di Windows
  • Autenticazione flessibile e gestione delle cartelle
  • Usa NFS per la condivisione ad alta velocità tra sistemi Linux
  • Leggero e ad alte prestazioni
  • Perfetto per ambienti server e team di sviluppo

Puoi anche usare entrambi i protocolli insieme a seconda dell’ambiente di rete e dei requisiti degli utenti. Ubuntu rende facile creare una configurazione mista.

Concentrati su sicurezza e manutenibilità

Dopo la configurazione, mantenere il server sicuro e stabile si riduce a pochi punti chiave:

  • Configura firewall e controlli di accesso per prevenire accessi non autorizzati
  • Mantieni il sistema aggiornato e monitora i log per garantire la stabilità continua
  • Automatizza i backup così sei pronto a eventuali perdite di dati o guasti del sistema

Ubuntu offre una vasta gamma di strumenti e documentazione per supportare tutte queste pratiche—anche i principianti possono gradualmente acquisire competenze operative solide.

Perché costruire il tuo file server?

Acquistare un NAS (Network Attached Storage) preassemblato è un’opzione, ma costruire il proprio file server con Ubuntu offre vantaggi unici:

  • Installa solo le funzionalità di cui hai realmente bisogno
  • Hai il pieno controllo sull’hardware e sulla capacità di archiviazione
  • Acquisisci conoscenze preziose che possono essere applicate al lavoro o a progetti personali

Se temevate che potesse essere difficile, speriamo che questa guida vi abbia dimostrato che configurare tutto da zero non è così difficile come sembra.

Un file server costruito con Ubuntu è uno strumento versatile che può soddisfare le esigenze sia degli utenti personali che professionali. Sfrutta la sua flessibilità e progetta una configurazione che si adatti al tuo ambiente e ai tuoi obiettivi specifici.