sabato 27 novembre 2021

Come gestire le regole di Windows Firewall con PowerShell

Windows contiene un firewall avanzato, robusto ma facile da usare e PowerShell 7 possiamo facilmente configurare il firewall dalla riga di comando. Questo articolo copre i comandi comuni utilizzati in Windows Firewall e dove possono essere utilizzati.

Il modulo NetSecurity è ben documentato. Tieni presente che questo articolo si applica solo al sistema operativo Windows. Per altri sistemi operativi, esistono altri strumenti da riga di comando che possono essere utilizzati per eseguire lo stesso tipo di funzioni come UFW

o IPTables su Linux.

Caricamento di

NetSecurity Modulo Il modulo NetSecurity , integrato e offerto da Microsoft, contiene tutte le funzionalità necessarie per aggiungere, rimuovere e modificare le regole del firewall. Per caricare il modulo, importa semplicemente il modulo come mostrato di seguito.

Import-Module -Name ‘NetSecurity ‘ Elenca le regole del firewall esistenti Il cmdlet,

Get-NetFirewallRule mostrerà tutte le regole del firewall esistenti. Ce ne sono molti, per impostazione predefinita, quindi per dimostrare, emettiamo il primo 03.

Get-NetFirewallRule | Select-Object DisplayName, Enabled, Direction, Action -First 03 Là sono molte proprietà restituite da

Get-NetFirewallRule. Sebbene elenchiamo solo una proprietà sopra, in esecuzione Get-NetFirewallRule | Seleziona-Oggetto -Primo 1, elencherà tutti i disponibili.

Crea una nuova regola firewall Esistono molti modi diversi per creare una nuova regola del firewall, ma il comando che lo fa è

(). Le proprietà di base che devono essere compilate sono:

DisplayName – Il nome descrittivo della regola firewall

Direzione – Se bloccare il traffico in uscita dal computer

In uscita o in entrata nel computer

In entrata

Azione – Quale azione intraprendere se la regola è soddisfatta, Consenti o Blocca

$Params = @{ “DisplayName” = ‘Block WINS’ “Direction” = ‘Inbound ‘ “Action” = ‘Block’ “RemoteAddress” = ‘WINS’ }

New-NetFirewallRule @Params

Se la Il parametro Name non viene utilizzato, quindi viene utilizzato un GUID casuale. Il

DisplayName può essere leggibile, ma il

Name stesso ha assegnato un GUID casuale. Modifica una regola del firewall esistente E se volessimo modificare una regola esistente senza rimuovere e ricreare completamente la regola. Per fare ciò, dovremmo eseguire Set-NetFirewallRule e ci consentirà di modificare la regola del firewall secondo necessità.

$Params = @{ “DisplayName” = ‘Blocca WINS’ “Azione” = ‘Consenti’ } Set-NetFirewallRule @Params

Altre abilità utili che la

Set-NetFirewallRule ha la capacità di operare su più regole contemporaneamente. Questo può essere fatto individuando le regole in base a uno dei tre parametri.

NameQuesta è l’impostazione predefinita e se i nomi vengono impostati tramite la pipeline o un array di stringhe, ciascuno di essi agirà su . Nome da visualizzare Simile a

Name, più oggetti in pipeline o un array di stringhe modificheranno tali regole di conseguenza.

DisplayGroup o GruppoSe le regole sono raggruppate insieme, è possibile agire su tutte le regole raggruppate contemporaneamente.
Rimuovi un firewall esistente Regola Infine, vorremmo rimuovere la regola esistente in quanto potrebbe non essere più necessaria. Per fare ciò, eseguire il comando

Remove-NetFirewallRule. Quando si esegue questa operazione, è spesso consigliabile utilizzare il parametro WhatIf per verificare che la regola sia quella corretta da rimuovere.

Remove-NetFirewallRule -DisplayName “Block WINS” È importante notare che Remove-NetFirewallRule può rimuovere più regole contemporaneamente. Di seguito è riportato un esempio di questo tipo di funzionalità. La regola seguente rimuoverà tutte le regole disabilitate contenute nella policy

firewall_gpo in ad.local.test dominio.

Remove-NetFirewallRule -Enabled ‘False’ -PolicyStore ‘ad.local.testfirewall_gpo’ Un comando utile, ma potenzialmente pericoloso, è in esecuzione Remove-NetFirewallFule da solo che rimuove tutte le regole del firewall locale statico che sono state create. Se disponi di un GPO di dominio che definisce le regole del firewall, verranno rimossi quelli che potrebbero entrare in conflitto con tali regole GPO definite.

Funzionalità aggiuntive Ci sono molti altri comandi disponibili all’interno del modulo

NetSecurity. Anche se non li copriamo tutti qui, alcuni comandi importanti sono mostrati di seguito per dimostrare quanto sia esteso il modulo.

Copy-NetFirewallRuleQuesto comando copierà una regola firewall esistente e tutti i filtri associati allo stesso archivio criteri o ad uno diverso.

Disable-NetFirewallRuleQuesto disabiliterà una regola firewall precedentemente abilitata. La regola continuerà a esistere, ma non modificherà attivamente i dati di rete. Se esegui questo comando senza parametri, disattiverà tutte le regole attive sul computer di destinazione. Si consiglia di eseguire sempre questo comando con il parametro

WhatIf se non ha come target una regola o un insieme di regole specifici.

Enable-NetFirewallRuleCome Disable-NetFirewallRule, questo comando abiliterà una regola o un insieme di regole precedentemente disabilitato. Se questo comando viene eseguito senza parametri, abiliterà tutte le regole precedentemente disabilitate. Si consiglia di eseguire sempre questo comando con il parametro

WhatIf se non ha come target una regola o un insieme di regole specifici.

Get-NetFirewallProfileQuesto comando mostra le opzioni attualmente configurate per un profilo specificato, come

Domain, Private, o

profili pubblici

.

Get-NetFirewallSettingLe impostazioni globali del firewall possono essere recuperato utilizzando il comando Get-NetFirewallSetting. Queste impostazioni includono opzioni come le opzioni del certificato, l’accodamento dei pacchetti o gli elenchi di autorizzazioni.

Rename-NetFirewallRulePer rinominare una regola firewall esistente, utilizzare

Rename-NetFirewallRule comando. Questo è utile se una regola è stata creata senza un nome specificato, ricevendo così un GUID casuale come nome, ed è preferibile avere un nome leggibile assegnato.

Set-NetFirewallProfilePer impostare impostazioni specifiche per i profili individuali, utilizzare il comando

Set-NetFirewallProfile. Ciò consente a ciascun profilo di avere impostazioni distinte. Set-NetFirewallSetting

Questo comando configura i comportamenti globali del firewall che si applicano indipendentemente dal profilo di rete attualmente in uso.

Show-NetFirewallRuleQuesto aiutante comando mostrerà le regole del firewall e i loro oggetti associati in un elenco formattato. C’è un’ampia funzionalità IPSec contenuta all’interno del modulo. I comandi sopra elencati sono quelli che operano sulle impostazioni standard di Windows Firewall.

Conclusione Sono disponibili molti comandi per la gestione di Windows Firewall. Questo articolo ne tocca solo alcuni, in particolare i comandi più importanti per elencare, creare, modificare e rimuovere rapidamente le regole del firewall. Anche configurazioni complesse del firewall possono essere eseguite rigorosamente tramite la riga di comando utilizzando il modulo

NetSecurity PowerShell!