Windows Firewall è un componente fondamentale del sistema operativo Windows, progettato per proteggere i dispositivi da minacce provenienti da reti esterne, come Internet. Il firewall agisce come una barriera di sicurezza tra il computer e la rete, monitorando e controllando il traffico in ingresso e in uscita. La sua configurazione predefinita mira a bilanciare la sicurezza e la facilità d’uso, consentendo solo il traffico di rete necessario e bloccando quello potenzialmente dannoso. In un altro articolo abbiamo visto cos’è e come funziona il firewall di Windows.
Il comportamento predefinito di Windows Firewall prevede il blocco di tutte le connessioni in ingresso non richieste. Allo stesso tempo, il firewall di Windows consente senza restrizioni la comunicazione in uscita dalle varie applicazioni installate sul sistema. In questo articolo vediamo com’è possibile attivare le funzioni di log su Windows Firewall e, ad esempio, scoprire facilmente perché un tentativo di connessione non va a buon fine.
Quando e perché attivare i log di Windows Firewall
Digitando firewall nella casella di ricerca di Windows quindi scegliendo la voce Windows Defender Firewall con sicurezza avanzata dal menu Start, si accede alla finestra che permette di controllare e configurare le regole di connessione in ingresso e in uscita.
Supponete di aver installato un software che integra funzionalità server quindi si pone in ascolto delle richieste di connessione in arrivo su una o più porte TCP/UDP. Utilizzando l’indirizzo localhost, quella funzionalità server è accessibile dal sistema locale mentre, ad esempio, non può essere raggiunta dagli altri dispositivi collegati in rete locale né dalla rete Internet.
Qualche volta, tuttavia, può essere difficile capire perché una connessione non funziona. Supponiamo, per esempio, di aver configurato un server VPN WireGuard sul router o su un altro dispositivo connesso in LAN. Grazie al server VPN è possibile collegarsi con la rete dell’azienda, dell’ufficio o di casa a distanza e accedere alla risorse condivise.
Dopo aver stabilito la connessione VPN, il dispositivo remoto riesce a raggiungere server HTTP in esecuzione sulla rete locale (ad esempio il sistema di videosorveglianza, quello per la gestione del sistema d’allarme, di una batteria di sensori,…) però, curiosamente non si riesce ad accedere alle cartelle condivise sui sistemi Windows in LAN. Com’è possibile?
Attivazione della condivisione file e stampanti
Se si avesse l’esigenza di accedere alle risorse condivise su un sistema Windows, è innanzi tutto indispensabile attivare la condivisione file e stampanti.
Dapprima, è bene accedere alle impostazioni di Windows (Windows+I
), fare clic su Rete e Internet quindi, se ci si trova nella rete locale di casa, dell’azienda o dell’ufficio, scegliere Rete privata cliccando su Proprietà.
Suggeriamo quindi di digitare condivisione nella casella di ricerca di Windows quindi scegliere Gestisci impostazioni di condivisione avanzata. In alternativa, si può premere la combinazione di tasti Windows+R
quindi digitare control /name Microsoft.NetworkAndSharingCenter
e infine fare clic su Modifica impostazioni di condivisione avanzate.
Qui si deve fare clic su Reti private quindi attivare sia l’opzione Individuazione rete che Condivisione file e stampanti.
Attivazione dei log di Windows Firewall
Abbiamo citato poco fa l’esempio del server VPN configurato in rete locale. Attivando la Condivisione file e stampanti, i dispositivi locali (fisici e virtuali) possono accedere alle risorse condivise mentre i client remoti collegati con la rete locale via VPN potrebbero non accedervi.
In ogni caso, per verificare cosa impedisce la connessione al sistema, basta attivare i log di Windows Firewall. Digitiamo cmd
nella casella di ricerca di Windows quindi scegliamo Esegui come amministratore. Creiamo quindi una cartella temporanea e attiviamo, con una manciata di semplici comandi, i log del firewall di Windows:
md C:\temp
netsh advfirewall set allprofiles logging filename "C:\temp\wf.txt"
netsh advfirewall set allprofiles logging maxfilesize 10240
netsh advfirewall set allprofiles logging droppedconnections enable
Adesso, con il comando seguente, possiamo restare in attesa delle connessioni fallite:
powershell Get-Content "C:\temp\wf.txt" -Wait
Con l’ultimo comando netsh advfirewall
, infatti, abbiamo abilitato i log delle sole connessioni fallite (droppedconnections
). Diversamente, specificando allowedconnections
, avremmo loggato le connessioni consentite (i due parametri possono essere utilizzati insieme per registrare sia le connessioni fallite che quelle consentite).
Creazione di una regola Windows Firewall dalla riga di comando
Nell’esempio visto al paragrafo precedente, per sbloccare Windows Firewall e consentire le connessioni in ingresso che arrivano dall’intervallo di IP 10.6.0.1-10.6.0.254 (rete privata della VPN), basta digitare quanto segue:
netsh advfirewall firewall add rule name="WireGuard VPN Allow 10.6.0.0/24" protocol=any dir=in action=allow remoteip=10.6.0.0/24
Per autorizzare tutte le richieste di connessione provenienti invece dalla rete locale (supponendo che gli host collegati alla stessa abbiano IP 192.168.1.1-192.168.1.254), si può digitare quanto segue:
netsh advfirewall firewall add rule name="Consenti LAN" dir=in action=allow remoteip=192.168.1.0/24
Per far emergere l’intervallo di IP utilizzati per gestire la rete locale è sufficiente usare il comando ipconfig /all
in Windows.
Se la subnet mask è 255.255.255.0
, /24
(significa che tutti gli IP da 10.6.0.1 a 10.6.0.254 o da 192.168.1.1 a 192.168.1.254, negli esempi precedenti, fanno parte della rete).
Se, ad esempio, la subnet mask fosse 255.255.0.0
, la rete è /16
: i client possono cioè avere IP negli intervalli 10.6.x.x e 192.167.x.x prendendo sempre in considerazione i due esempi precedenti.
Come disattivare il log di Windows Firewall
Una volta effettuate tutte le verifiche del caso e create eventualmente tutte le regole necessarie, si possono disattivare i log di Windows Firewall impartendo i seguenti due comandi:
netsh advfirewall set allprofiles logging allowedconnections disable
netsh advfirewall set allprofiles logging droppedconnections disable