Windows contiene un robusto firewall avanzato, ma facile da usare, e con PowerShell 7 possiamo facilmente configurare il firewall dalla riga di comando. Questo post copre i comandi comuni utilizzati in Windows Firewall e dove possono essere utilizzati.
Il modulo NetSecurity è ok documentato. Si prega di notare che questo post si applica solo al sistema operativo Windows. Per altri sistemi operativi, ci sono altri strumenti da riga di comando che possono essere usati per eseguire lo stesso tipo di funzioni, Che cosa UFW
oh IPTables
en Linux.
Caricamento del NetSecurity
Modulo
il NetSecurity
Il modulo, integrato e offerto da Microsoft, Contiene tutte le funzionalità indispensabili da aggiungere, eliminare e modificare le regole del firewall. Per caricare il modulo, basta importare il modulo come mostrato di seguito.
Import-Module -Name 'NetSecurity'
Elenco delle regole firewall esistenti
Il cmdlet, Get-NetFirewallRule
mostrerà tutte le regole del firewall esistenti. Ci sono molti, predefinito, quindi per dimostrarlo, prendiamo il primo 10.
Get-NetFirewallRule | Select-Object DisplayName, Enabled, Direction, Action -First 10
Ci sono molte proprietà che vengono restituite da Get-NetFirewallRule
. Anche se elenchiamo solo una delle proprietà sopra, in esecuzione Get-NetFirewallRule | Select-Object * -First 1
, elencherà tutti disponibili.
Crea una nuova regola firewall
Esistono molti modi diversi per creare una nuova regola firewall, ma il comando che fa questo è [Net-NewFirewallRule](<https://docs.microsoft.com/en-us/powershell/module/netsecurity/new-netfirewallrule?view=win10-ps>)
. Le proprietà di base che devono essere completate sono:
DisplayName
– Il nome descrittivo della regola del firewall.Direction
– O per bloccare il traffico in uscita dal computer.Outbound
o entrando nel computerInbound
Action
– Quale azione intraprendere se la regola viene rispettata,Allow
ohBlock
$Params = @{ "DisplayName" = 'Block WINS' "Direction" = 'Inbound' "Action" = 'Block' "RemoteAddress" = 'WINS' }
New-NetFirewallRule @Params
Se lui Name
il parametro non viene utilizzato, quindi viene utilizzato un GUID casuale. il DisplayName
può essere leggibile dall'uomo, ma Name
è stato assegnato un GUID casuale.
Modifica una regola firewall esistente
E se volessimo modificare una regola esistente senza eliminare e ricreare completamente la regola?? Per farlo, dobbiamo eseguire il Set-NetFirewallRule
, e ci consentirà di modificare la regola del firewall secondo necessità.
$Params = @{
"DisplayName" = 'Block WINS'
"Action" = 'Allow'
}
Set-NetFirewallRule @Params
Altre abilità utili che il Set-NetFirewallRule
ha è la capacità di operare con più regole contemporaneamente. Questo può essere fatto individuando le regole in base a uno dei tre parametri.
Name
Questa è l'impostazione predefinita e se i nomi sono impostati tramite pipe o un array di stringhe, ognuno di loro sarà agito su.DisplayName
Simile aName
, più oggetti in pipeline o un array di stringhe modificheranno tali regole di conseguenza.DisplayGroup
ohGroup
Se le regole sono raggruppate, tutte queste regole raggruppate possono essere applicate contemporaneamente.
Elimina una regola firewall esistente
Finalmente, vorremmo eliminare la regola esistente, poiché è fattibile che non sia più necessario. Per fare questo, eseguire il comando Remove-NetFirewallRule
. Quando lo fa, spesso è consigliabile utilizzare il WhatIf
parametro per verificare che la regola sia corretta da eliminare.
Remove-NetFirewallRule -DisplayName "Block WINS"
È fondamentale prestare attenzione che il Remove-NetFirewallRule
può eliminare più regole contemporaneamente. Di seguito è riportato un esempio di questo tipo di funzionalità. La prossima regola rimuoverà tutte le regole disabilitate contenute nella policy firewall_gpo
a ad.local.test
dominio.
Remove-NetFirewallRule -Enabled 'False' -PolicyStore 'ad.local.testfirewall_gpo'
È in esecuzione un comando utile, ma potenzialmente pericoloso Remove-NetFirewallFule
si, che rimuove tutte le regole firewall locali statiche che sono state create. Se hai un GPO di dominio che imposta le regole del firewall, questo rimuoverà quelli che potrebbero entrare in conflitto con quelle regole definite dall'oggetto Criteri di gruppo.
Funzionalità aggiuntive
Ci sono molti altri comandi disponibili all'interno di NetSecurity
modulo. Anche se non li copriamo tutti qui, di seguito sono riportati alcuni comandi importanti per dimostrare quanto sia grande il modulo.
Copy-NetFirewallRule
Questo comando copierà una regola firewall esistente e tutti i filtri associati nello stesso o in un altro policy store.Disable-NetFirewallRule
Questo disabiliterà una regola del firewall precedentemente abilitata. La regola continuerà ad esistere, ma non modificherà attivamente alcun dato di rete. Se esegui questo comando senza alcun parametro, disabiliterà tutte le regole attive sul computer di destinazione. Si consiglia di eseguire sempre questo comando con ilWhatIf
parametro se non ha come target una regola specifica o un insieme di regole.Enable-NetFirewallRule
Come laDisable-NetFirewallRule
, questo comando abiliterà una regola precedentemente disabilitata o un insieme di regole. Se questo comando viene eseguito senza parametri, abiliterà tutte le regole precedentemente disabilitate. Si consiglia di eseguire sempre questo comando con ilWhatIf
parametro se non ha come target una regola specifica o un insieme di regole.Get-NetFirewallProfile
Questo comando mostra le alternative attualmente configurate per un profilo specificato, Come laDomain
,Private
, ohPublic
profili.Get-NetFirewallSetting
Le impostazioni globali del firewall possono essere recuperate utilizzando ilGet-NetFirewallSetting
comando. Queste impostazioni includono opzioni come le opzioni del certificato, coda di pacchetti o elenchi di autorizzazioni.Rename-NetFirewallRule
Per rinominare una regola firewall esistente, Utilizzare ilRename-NetFirewallRule
comando. Questo è utile se è stata creata una regola senza un nome specifico, quindi un GUID casuale viene ricevuto come nome, ed è preferibile avere un nome leggibile assegnato dall'uomo.Set-NetFirewallProfile
Per determinare impostazioni specifiche per i singoli profili, usa elSet-NetFirewallProfile
comando. Ciò consente a ciascun profilo di avere configurazioni diverse.Set-NetFirewallSetting
Questo comando configura i comportamenti del firewall globale che si applicano indipendentemente dal profilo di rete attualmente in uso..Show-NetFirewallRule
Questo comando di supporto visualizzerà le regole del firewall e i relativi oggetti associati in un elenco formattato.
C'è un'ampia funzionalità IPSec contenuta nel modulo. I comandi elencati in precedenza sono quelli che operano nella configurazione standard di Windows Firewall.
conclusione
Sono disponibili molti comandi per gestire Windows Firewall. Questo post ne tocca solo alcuni, in particolare i comandi più importanti da elencare, creare, modificare e cancellare rapidamente le regole del firewall. Anche le configurazioni complesse del firewall possono essere ottenute rigorosamente tramite la riga di comando utilizzando il NetSecurity
Modulo PowerShell!