Windows Server arriva con il firewall acceso, ed è l'impostazione predefinita giusta: tutto ciò che prova a collegarsi dall'esterno viene respinto, a meno che una regola non lo lasci passare. Dovrai modificarlo quando farai girare qualcosa di tuo, come un'app web sulla porta 8080 o un servizio che solo il tuo ufficio deve raggiungere. Questa guida fa tutto con PowerShell su Windows Server 2022. Abbiamo provato ogni regola sulla nostra immagine e l'abbiamo verificata da una seconda macchina, quindi sai che apre o chiude davvero la porta.
Apri PowerShell come amministratore. Se non l'hai ancora fatto, metti prima in sicurezza RDP: quella guida spiega come limitare il Desktop remoto stesso.
1. Guarda cosa è attivo
Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Get-NetConnectionProfile | Format-Table InterfaceAlias, NetworkCategory
Sul nostro server appena creato tutti e tre i profili (Domain, Private, Public) erano attivi e la scheda di rete era in Public. DefaultInboundAction mostra NotConfigured, cioè il comportamento predefinito di Windows: bloccare l'ingresso, consentire l'uscita. Contano quindi le regole del profilo Public.
Per vedere cosa è consentito in ingresso:
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
Group-Object DisplayGroup | Sort-Object Count -Descending |
Select-Object Count, Name -First 8
Abbiamo contato 54 regole in ingresso attive. La maggior parte appartiene a Windows stesso (Core Networking, Cast to Device, mDNS), più le tre regole del Desktop remoto. Il ping non c'era.
2. Apri una porta
Supponiamo che la tua app ascolti sulla porta TCP 8080:
New-NetFirewallRule -DisplayName 'Web app 8080' -Direction Inbound `
-Protocol TCP -LocalPort 8080 -Action Allow
La regola funziona dal momento in cui viene creata. Dalla nostra seconda macchina, la porta 8080 è passata da bloccata ad aperta, mentre la 8081, su cui ascoltava anch'essa un programma, è rimasta bloccata. Una regola senza -Profile vale per tutti i profili, Public compreso.
Per un intervallo o un elenco usa -LocalPort 8000-8010 o -LocalPort 80,443. Per l'UDP cambia -Protocol.
3. Consenti solo certi indirizzi
La maggior parte dei servizi non ha bisogno di accettare tutto internet. Limita la regola agli indirizzi che devono collegarsi:
Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10
Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10, 198.51.100.0/24
Abbiamo provato entrambi i casi. Con un indirizzo estraneo in -RemoteAddress, la nostra macchina di prova non riusciva più a collegarsi. Aggiungendo il suo indirizzo, ci riusciva. Usa lo stesso parametro sulle regole del Desktop remoto per tenere RDP solo per il tuo ufficio. Se l'IP di casa tua cambia spesso, pensaci due volte prima di farlo per RDP.
4. Attiva il ping
Di fabbrica Windows non risponde al ping. La regola c'è, ma è spenta:
Enable-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)'
Dopo questo il nostro server ha risposto subito al ping. Ne hanno bisogno gli strumenti di monitoraggio che controllano la disponibilità via ping. Per disattivarlo di nuovo, usa Disable-NetFirewallRule con lo stesso nome.
5. Registra cosa viene bloccato
Quando qualcosa non riesce a collegarsi e non sai perché, fai annotare al firewall ciò che scarta:
Set-NetFirewallProfile -Profile Public -LogBlocked True -LogMaxSizeKilobytes 4096
Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -Tail 20
Ogni tentativo bloccato diventa una riga come questa:
2026-10-25 02:07:25 DROP TCP 198.51.100.7 203.0.113.25 43386 445 60 S 2112839481 0 64240 - - - RECEIVE 4
Si legge così: data e ora, azione, protocollo, indirizzo di origine, indirizzo del tuo server, porta di origine, porta di destinazione. Abbi pazienza: Windows scrive il log a blocchi, e le nostre voci di prova sono comparse circa un minuto dopo i tentativi. Il limite di 4 MB impedisce al file di crescere all'infinito.
6. Salva e fai pulizia
Prima di una modifica importante, salva tutte le regole in un file:
netsh advfirewall export C:\fw-backup.wfw
La nostra esportazione pesava 148 KB. netsh advfirewall import C:\fw-backup.wfw ripristina esattamente quell'insieme, sostituendo ciò che c'è. Elimina per nome una regola che non ti serve più:
Remove-NetFirewallRule -DisplayName 'Web app 8080'
Se ti sei chiuso fuori
Se una regola taglia il tuo stesso Desktop remoto, apri la console nella tua dashboard. Non passa da RDP, quindi puoi accedere ed eseguire Remove-NetFirewallRule o Set-NetFirewallRule per annullare.
NAT o IP tuo
Sui piani NAT, internet raggiunge il tuo server attraverso un'unica porta personale, che porta al Desktop remoto. Le altre porte restano irraggiungibili dall'esterno, qualunque cosa consenta Windows Firewall. Per servire un sito o accettare connessioni su altre porte ti serve un IPv4 tuo: Windows Small-IP (4 vCPU, 4 GB, 50 GB, $28/mese) te ne dà uno con tutte le porte aperte, e a quel punto decide Windows Firewall. Windows-Small costa $11/mese in NAT. Tutti e quattro i piani Windows sono nella pagina Windows VPS, e il pagamento è in USDT, USDC o ETH su Base, Ethereum o Polygon.
Commenti
Ancora nessun commento. Sii il primo.