Vuoi accedere ai file del tuo VPS Windows dal tuo PC come se fosse un disco esterno - depositare un backup, leggere log, condividere file tra colleghi. La soluzione standard su Windows si chiama SMB (Server Message Block). Ma tra un VPS esposto su Internet e il tuo PC a casa, collegare SMB così com'è è una catastrofe per la sicurezza.
Questa guida spiega come condividere una cartella da un VPS Windows e montarla su Windows, macOS e Linux - con 4 metodi classificati per sicurezza: SMB tramite VPN (raccomandato), SMB tramite tunnel SSH, SFTP, WebDAV. Tornerai con una configurazione funzionante, sicura e adatta al tuo OS client.
Perché condividere una cartella da un VPS Windows
Alcuni casi d'uso comuni:
- Archiviare / recuperare backup sul VPS come se fosse un NAS remoto.
- Accedere ai log di un'applicazione ospitata senza dover aprire una sessione RDP.
- Condividere file tra colleghi tramite un VPS comune.
- Centralizzare media (foto, video, documenti) accessibili da più postazioni.
- Unità di rete per applicazioni aziendali che puntano a
\\server\folder.
Il vantaggio di un VPS rispetto a un NAS dedicato: accessibile da qualsiasi luogo (non solo dalla rete locale), per pochi euro al mese, e in grado di ospitare altri servizi in parallelo.
⚠️ La trappola SMB su Internet - da leggere prima di tutto
SMB non è mai stato progettato per Internet. Il protocollo e la sua porta 445/TCP sono il bersaglio n°1 degli attacchi massivi - dal 2017, è il vettore principale dei ransomware (WannaCry, NotPetya e i loro eredi attuali).
Se apri la porta 445 del tuo VPS direttamente su Internet:
- Migliaia di scansioni al giorno testeranno password Windows e CVE SMB conosciute (EternalBlue e varianti).
- Una sola vulnerabilità non patchata può dare accesso admin completo.
- I ransomware attuali crittografano tutti i file esposti in pochi minuti.
Regola assoluta: non esporre mai la porta 445 direttamente su Internet. Incapsula sempre SMB in una VPN, un tunnel SSH, o utilizza un'alternativa crittografata (SFTP, WebDAV/HTTPS).
Le metodologie qui sotto sono tutte conformi a questa regola.
Tabella decisionale - Quale metodo scegliere
| Metodo | Sicurezza | Performance | Complessità setup | Compatibile | Raccomandazione |
|---|---|---|---|---|---|
| A. SMB + VPN WireGuard | ★★★★★ | ★★★★★ | Media (30 min) | Win/Mac/Linux | ⭐ Riferimento |
| B. SMB + tunnel SSH | ★★★★★ | ★★★ | Alta | Win/Mac/Linux | Se già SSH |
| C. SFTP | ★★★★★ | ★★★★ | Bassa (10 min) | Win/Mac/Linux | ⭐ Il più veloce |
| D. WebDAV HTTPS | ★★★★ | ★★★ | Media | Win/Mac/Linux | Integrazione HTTP |
| SMB diretto porta 445 | ☠️ | ★★★★★ | Bassa | Win/Mac/Linux | Non FARLO MAI |
Scelta rapida:
- Vuoi un'unità di rete integrata come un NAS locale → Metodo A (SMB + VPN)
- Vuoi solo trasferire file occasionalmente → Metodo C (SFTP)
- Hai già accesso SSH al VPS → Metodo B (tunnel SSH)
- Vuoi accesso web da qualsiasi browser → Metodo D (WebDAV)
Metodo A - SMB tramite VPN WireGuard (riferimento)
Principio: installare WireGuard sul VPS, il PC si connette alla VPN, il VPS diventa accessibile tramite un'IP privata (es. 10.0.0.1). Si accede quindi alla condivisione SMB come su una LAN - ma invisibile da Internet.
A.1 - Installare WireGuard sul VPS
Scarica WireGuard da wireguard.com/install e installalo sul VPS.
Generazione delle chiavi server:
cd "C:\Program Files\WireGuard"
.\wg.exe genkey | Out-File -Encoding ascii server_private.key
Get-Content server_private.key | .\wg.exe pubkey | Out-File -Encoding ascii server_public.key
Crea C:\Program Files\WireGuard\Data\Configurations\wg0.conf:
[Interface]
PrivateKey = <contenuto di server_private.key>
ListenPort = 51820
Address = 10.0.0.1/24
[Peer]
PublicKey = <chiave pubblica del PC client>
AllowedIPs = 10.0.0.2/32
Avvia il tunnel tramite il client WireGuard grafico.
A.2 - Aprire la porta WireGuard nel firewall
New-NetFirewallRule -DisplayName "WireGuard UDP 51820" `
-Direction Inbound -Protocol UDP -LocalPort 51820 -Action Allow
A.3 - Limitare SMB solo alla rete VPN
Blocca la porta 445 su tutte le interfacce tranne che sulla VPN:
# Disabilitare SMB sulle interfacce Internet
Set-NetFirewallProfile -Profile Public,Private -Enabled True
# Consentire SMB solo dal sottorete VPN
New-NetFirewallRule -DisplayName "SMB via VPN only" `
-Direction Inbound -Protocol TCP -LocalPort 445 `
-RemoteAddress 10.0.0.0/24 -Action Allow
# Bloccare SMB da qualsiasi altra fonte
New-NetFirewallRule -DisplayName "Block SMB from Internet" `
-Direction Inbound -Protocol TCP -LocalPort 445 `
-RemoteAddress Any -Action Block -Priority 1
A.4 - Installare WireGuard sul PC client
Scarica il client WireGuard per Windows/macOS/Linux. Crea un tunnel:
[Interface]
PrivateKey = <chiave privata del client>
Address = 10.0.0.2/24
[Peer]
PublicKey = <chiave pubblica del server>
Endpoint = <ip-pubblica-vps>:51820
AllowedIPs = 10.0.0.0/24 # instrada SOLO il VPN, non tutto il tuo traffico
PersistentKeepalive = 25
Attiva il tunnel. Verifica:
ping 10.0.0.1
A.5 - Accedere alla condivisione
Apri Esplora risorse di Windows → digita nella barra degli indirizzi:
\\10.0.0.1\Condivisione
Vedi il contenuto della cartella condivisa. Inserisci le tue credenziali Windows del VPS.
Vantaggio principale: la porta 445 del VPS rimane chiusa su Internet - invisibile agli scans, immunizzata contro i ransomware SMB.
Metodo B - SMB tramite tunnel SSH
Se hai già OpenSSH installato sul VPS (da Windows Server 2019, installabile come funzionalità opzionale), puoi tunnelare SMB su SSH senza VPN.
B.1 - Installare OpenSSH Server (se non già fatto)
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server" `
-Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
B.2 - Stabilire il tunnel dal PC client
Sul tuo PC (Windows 10/11, macOS, Linux):
ssh -L 4450:127.0.0.1:445 admin@<ip-vps>
Questo comando reindirizza la porta locale 4450 verso la porta 445 del VPS tramite SSH crittografato.
B.3 - Montare la condivisione localmente
Su Windows:
net use Z: \\127.0.0.1\Condivisione\port=4450
⚠️ Limitazione Windows: il client SMB Windows non accetta facilmente una porta non standard con
net use. Soluzione: utilizzare indirizzi loopback o uno strumento come Tableau Network Drive (commerciale). Più semplice: utilizza il metodo A (VPN).
B.4 - Su Linux/macOS
sudo mount -t cifs //127.0.0.1/Condivisione /mnt/vps -o port=4450,username=admin
Questo metodo è elegante ma più complesso su Windows. Per un uso regolare, preferisci il metodo A.
Metodo C - SFTP (il più semplice sicuro)
SFTP è il protocollo di trasferimento file nativo di OpenSSH. Nessuna installazione pesante, crittografia completa, funziona con qualsiasi client (WinSCP, FileZilla, Cyberduck, Finder, Files Nautilus).
C.1 - Attivare OpenSSH con SFTP sul VPS
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server" `
-Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
SFTP è attivato per impostazione predefinita una volta installato OpenSSH. Nessuna configurazione aggiuntiva.
C.2 - Limitare l'accesso SSH per IP (raccomandato)
Set-NetFirewallRule -DisplayName "OpenSSH Server" -RemoteAddress "<tuoi-ip-autorizzati>"
Oppure cambia la porta SSH predefinita per ridurre il rumore delle scansioni.
C.3 - Lato client: configurare un client SFTP
- Windows: installa WinSCP (
winscp.net) - gratuito, interfaccia drag-and-drop. - macOS: Finder →
Cmd+K→sftp://<ip-vps>- integra il VPS come un volume montato. - Linux: Files / Nautilus → Altri luoghi → Connetti a un server →
sftp://<ip-vps>. - Tutti i sistemi operativi: FileZilla (
filezilla-project.org) - gratuito, multipiattaforma.
C.4 - Mappare SFTP come unità di rete Windows
Per avere SFTP come un disco Z: in Esplora risorse di Windows:
- Installa SFTP Net Drive (gratuito) o
rclone mount(open source). - Configura la connessione verso
sftp://<ip-vps>. - Scegli la lettera dell'unità (
Z:).
La cartella del VPS appare come un disco locale, accessibile da tutte le tue applicazioni.
Vantaggi SFTP
- ✓ Crittografia end-to-end (SSH).
- ✓ Autenticazione tramite chiave SSH (impossibile da forzare).
- ✓ Nativo multipiattaforma.
- ✓ Nessuna porta SMB esposta.
- ✓ Stessi porti di SSH = una sola porta da aprire.
Metodo D - WebDAV tramite HTTPS
WebDAV estende HTTP per consentire la lettura/scrittura di file. Vantaggio: utilizza la porta 443 HTTPS, quindi passa ovunque (aziende, hotel, hotspot che bloccano SSH/VPN).
D.1 - Installare il ruolo WebDAV su IIS
Install-WindowsFeature -Name Web-Server, Web-WebDAV-Publishing, Web-Basic-Auth `
-IncludeManagementTools
D.2 - Configurare il sito IIS
Via IIS Manager:
- Seleziona il sito → Autenticazione → attiva Basic Authentication.
- Vai in WebDAV Authoring Rules → attiva WebDAV.
- Aggiungi una regola: utenti autorizzati, permessi Lettura/Scrittura.
D.3 - Forzare HTTPS
Installa un certificato (Let's Encrypt tramite win-acme ad esempio) e configura il sito solo sulla porta 443.
D.4 - Lato client
- Windows: Esplora risorse → clic destro Questo PC → Connetti un'unità di rete →
https://tuo-dominio.com. - macOS: Finder →
Cmd+K→https://tuo-dominio.com. - Linux: pacchetto
davfs2, poimount -t davfs https://tuo-dominio.com /mnt/dav.
Limiti WebDAV
- Performance inferiori a SMB/SFTP.
- Locking meno affidabile (non usarlo per database o file concorrenti).
- Configurazione IIS più lunga.
Lato VPS - Creare la condivisione SMB in dettaglio
Qualunque sia il metodo A o B scelto, devi creare una condivisione SMB sul VPS. Ecco i due modi: GUI e PowerShell.
Metodo GUI (grafico)
- Crea la cartella da condividere in Esplora risorse:
C:\Condivisione. - Clic destro sulla cartella → Proprietà → scheda Condivisione → Condivisione avanzata.
- Seleziona Condividi questa cartella.
- Clicca su Autorizzazioni → aggiungi il tuo utente Windows → seleziona Lettura/Scrittura (Modifica + Controllo totale secondo necessità).
- Clicca su Cache → deseleziona la cache offline se desideri una reattività in tempo reale.
Metodo PowerShell (rapido)
# Creare la cartella
New-Item -Path "C:\Condivisione" -ItemType Directory -Force
# Creare la condivisione SMB
New-SmbShare -Name "Condivisione" `
-Path "C:\Condivisione" `
-FullAccess "DOMINIO\TuoAccount" `
-Description "Condivisione utente OuiHeberg"
# Verifica
Get-SmbShare -Name "Condivisione" | Format-List
Varianti utili
# Condivisione nascosta (il nome non appare nel vicinato di rete)
New-SmbShare -Name "Condivisione$" -Path "C:\Condivisione" -FullAccess "TuoAccount"
# Condivisione in sola lettura
New-SmbShare -Name "CondivisioneRO" -Path "C:\Condivisione" -ReadAccess "Tutti"
# Attivare la crittografia SMB sulla condivisione (Windows Server 2019+)
Set-SmbShare -Name "Condivisione" -EncryptData $true -Force
Attivare la crittografia SMB globale (raccomandato)
Set-SmbServerConfiguration -EncryptData $true -Force
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force
- SMB1 disabilitato = protezione contro EternalBlue.
- EncryptData = anche tramite VPN, il contenuto rimane crittografato end-to-end.
Lato client - Montare la condivisione
Su Windows 10 / 11
Metodo 1 - Esplora risorse:
- Apri Esplora file.
- Clic destro su Questo PC → Connetti un'unità di rete.
- Lettera dell'unità:
Z:. - Cartella:
\\10.0.0.1\Condivisione(IP del VPS tramite VPN). - Seleziona Riconnetti all'accesso e Connetti utilizzando altre credenziali.
- Inserisci l'account Windows del VPS.
Metodo 2 - PowerShell:
# Mappatura temporanea
New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\10.0.0.1\Condivisione" -Credential (Get-Credential)
# Mappatura persistente dopo il riavvio
New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\10.0.0.1\Condivisione" `
-Credential (Get-Credential) -Persist
Metodo 3 - net use:
net use Z: \\10.0.0.1\Condivisione /user:TuoAccount TuaPassword /persistent:yes
Su macOS
- Finder → Vai → Connetti al server (o
Cmd + K). - Inserisci:
smb://10.0.0.1/Condivisione. - Clicca Connetti, inserisci le credenziali.
- La condivisione appare nella barra laterale del Finder.
Per montaggio automatico all'avvio:
- Impostazioni di Sistema → Utenti e gruppi → scheda Accesso.
- Aggiungi il volume montato.
Su Linux (Ubuntu / Debian)
Installa cifs-utils:
sudo apt update
sudo apt install cifs-utils
Crea il punto di montaggio:
sudo mkdir /mnt/vps-condivisione
Montare manualmente:
sudo mount -t cifs //10.0.0.1/Condivisione /mnt/vps-condivisione \
-o username=TuoAccount,password=TuaPassword,uid=$(id -u),gid=$(id -g)
Per un montaggio automatico all'avvio, crea un file di credenziali:
sudo bash -c 'cat > /root/.smbcredentials << EOF
username=TuoAccount
password=TuaPassword
EOF'
sudo chmod 600 /root/.smbcredentials
Poi aggiungi a /etc/fstab:
//10.0.0.1/Condivisione /mnt/vps-condivisione cifs credentials=/root/.smbcredentials,uid=1000,gid=1000,iocharset=utf8,_netdev 0 0
Testa senza riavviare: sudo mount -a.
Permessi NTFS + permessi di condivisione: la regola che crea confusione
Due livelli di permessi si applicano a una condivisione SMB:
- Permessi di condivisione (SMB Share) - si applicano solo agli accessi di rete.
- Permessi NTFS - si applicano sempre (locale + rete).
Regola di calcolo: il permesso effettivo è il più restrittivo dei due.
| Permessi di condivisione | Permessi NTFS | Risultato effettivo |
|---|---|---|
| Lettura | Lettura/Scrittura | Lettura |
| Lettura/Scrittura | Lettura | Lettura |
| Controllo totale | Modifica | Modifica |
| Controllo totale | Controllo totale | Controllo totale |
Buona pratica raccomandata:
- Permessi di condivisione: Controllo totale per Utenti autenticati.
- Permessi NTFS: granulari (per account o per gruppo), è qui che gestisci davvero la sicurezza.
# Permessi NTFS tramite PowerShell
$acl = Get-Acl "C:\Condivisione"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
"TuoAccount", "Modify", "ContainerInherit,ObjectInherit", "None", "Allow"
)
$acl.SetAccessRule($rule)
Set-Acl "C:\Condivisione" $acl
Risoluzione dei problemi
« Accesso negato » nonostante i permessi corretti
Cause: conflitto tra permessi di condivisione e NTFS, o cache di credenziali Windows.
Soluzione:
net use * /delete /y # purgare tutte le mappature in cache
cmdkey /list # vedere le credenziali memorizzate
cmdkey /delete:<nome> # rimuovere una credenziale obsoleta
« Il percorso di rete non è stato trovato »
Cause: nessuna connettività al VPS, o nome non risolto.
Soluzione: pinga l'IP del VPS tramite VPN. Se il ping funziona ma non SMB, verifica:
- Porta 445 aperta nel firewall del VPS per l'intervallo VPN.
- Servizio LanmanServer avviato:
Get-Service LanmanServer.
Lentezza estrema in lettura/scrittura
Cause possibili:
- Mismatch MTU sulla VPN - aggiungi
MTU = 1280nella configurazione di WireGuard. - Antivirus sul client che scansiona tutto il traffico SMB.
- SMB1 attivato (sempre da disattivare):
Set-SmbServerConfiguration -EnableSMB1Protocol $false. - Crittografia attivata senza accelerazione hardware su un vecchio VPS: utilizza il tunnel VPN che già cripta, e disattiva
EncryptData.
La condivisione scompare dopo il riavvio del VPS
Get-SmbShare -Name "Condivisione"
# Se non presente, la condivisione non è stata creata in modalità persistente
Ricrea con New-SmbShare (le condivisioni create tramite PowerShell sono persistenti per impostazione predefinita, a meno che tu non abbia utilizzato uno script che le ricrea ad ogni avvio - verifica il Task Scheduler).
Errore « STATUS_USER_SESSION_DELETED » (0xC0000203)
Cause: la sessione SMB è stata persa (disconnessione VPN, timeout di rete).
Soluzione:
# Lato client, aumentare il timeout SMB
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" `
-Name "SessTimeout" -Value 600
« L'utente è bloccato »
Cause: politica di blocco attivata da troppe tentativi falliti (vedi la nostra guida brute-force RDP).
Soluzione: sbloccare tramite net user IlTuoAccount /active:yes o attendere la fine del blocco (30 min per impostazione predefinita).
FAQ - Condividere e montare una cartella VPS Windows
Posso condividere una cartella del mio VPS Windows direttamente su Internet? Tecnicamente sì, ma è estremamente pericoloso. La porta SMB 445 è il principale obiettivo dei ransomware dal 2017 (WannaCry, NotPetya). Non farlo mai: incapsula sempre SMB in un VPN (metodo A) o utilizza SFTP (metodo C).
Qual è il comando per creare una condivisione SMB in PowerShell? New-SmbShare -Name "Condivisione" -Path "C:\Condivisione" -FullAccess "IlTuoAccount". La condivisione è immediatamente disponibile e persistente tra i riavvii.
Come montare una cartella VPS su Mac? Nel Finder, fai Cmd + K poi digita smb://<ip-vps>/Condivisione (via VPN) o sftp://<ip-vps> per SFTP. Inserisci le tue credenziali. La cartella appare nella barra laterale come un volume montato.
SMB o SFTP: quale scegliere per un VPS? SFTP se vuoi solo trasferire o consultare file occasionalmente - più semplice, più sicuro per impostazione predefinita. SMB tramite VPN se vuoi un'unità di rete permanente montata come un disco locale per applicazioni che puntano a un percorso UNC.
Perché il mio VPS è lento in SMB tramite VPN? Le cause principali: (1) MTU mal configurata sulla VPN - imposta MTU = 1280 in WireGuard; (2) crittografia SMB cumulata alla crittografia VPN - disabilita EncryptData della condivisione se la VPN cripta già; (3) antivirus client che scansiona tutto il traffico. Su una buona connessione, dovresti ottenere 80 a 100 Mbits/s in SMB tramite WireGuard.
È necessario disabilitare SMB1 su un VPS? Sì, assolutamente. SMB1 è sfruttato da EternalBlue (la vulnerabilità alla base di WannaCry). Comando: Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force. Nessun client moderno ha bisogno di SMB1.
La mia condivisione Windows è accessibile da Linux? Sì, tramite cifs-utils (pacchetto cifs-utils su Debian/Ubuntu, samba-client su Fedora). Comando: sudo mount -t cifs //ip/condivisione /mnt/point -o username=X,password=Y. Per un montaggio automatico all'avvio, configura /etc/fstab con l'opzione _netdev.
Qual è la differenza tra permessi NTFS e permessi di condivisione? Permessi di condivisione = accesso solo tramite rete. Permessi NTFS = accesso in tutte le circostanze (locale + rete). Il permesso effettivo è il più restrittivo dei due. Buona pratica: impostare i permessi di condivisione su "Controllo totale" e gestire la sicurezza reale tramite i permessi NTFS.
Si può usare WebDAV invece di SMB? Sì, ed è utile se sei su una rete che blocca le porte SSH/VPN (hotel, aziende). WebDAV passa tramite HTTPS (porta 443) quindi passa ovunque. Tuttavia, prestazioni inferiori a SMB/SFTP e locking meno affidabile - da evitare per database o file concorrenti.
Come condividere una cartella VPS con più utenti in sola lettura? New-SmbShare -Name "CondivisioneRO" -Path "C:\Condivisione" -ReadAccess "Utenti". Poi configura i permessi NTFS della cartella per limitare chi vede cosa all'interno. È il livello NTFS che gestisce la sicurezza fine, non la condivisione SMB.
Conclusione
Condividere una cartella da un VPS Windows a un PC si riassume nella scelta tra SMB incapsulato (via VPN o SSH) per un'unità di rete permanente, o SFTP per trasferimenti occasionali crittografati. La regola assoluta da rispettare: non esporre mai la porta 445 direttamente su Internet - è la principale causa di ransomware sui VPS Windows dal 2017.
Con una configurazione WireGuard + SMB crittografato, ottieni un NAS remoto accessibile da Windows, macOS e Linux, con prestazioni native (80-100 Mbits/s tipici) e una sicurezza equivalente a una condivisione LAN.
Stai cercando un VPS Windows adatto per ospitare una condivisione di file remota? I VPS Windows OuiHeberg includono SSD NVMe per prestazioni ottimali in SMB, accesso RDP immediato, e VPN WireGuard preinstallabile come opzione, supporto 7 giorni su 7 basato in Francia.
