So verwalten Sie Windows-Firewallregeln mit PowerShell

Inhalt

Powershell-Logo

Windows enthält eine robuste erweiterte Firewall, aber einfach zu bedienen, und mit PowerShell 7 Wir können die Firewall einfach über die Befehlszeile konfigurieren. Dieser Beitrag behandelt die allgemeinen Befehle, die in der Windows-Firewall verwendet werden und wo sie verwendet werden können.

NetSecurity-Modul ist in Ordnung dokumentiert. Bitte beachten Sie, dass dieser Beitrag nur für das Windows-Betriebssystem gilt. Für andere Betriebssysteme, Es gibt andere Befehlszeilentools, die verwendet werden können, um die gleichen Funktionen auszuführen, Was UFW Ö IPTables de Linux.

Laden der NetSecurity Modul

das NetSecurity Das Modul, integriert und angeboten von Microsoft, Enthält alle unverzichtbaren Funktionen zum Hinzufügen, Firewall-Regeln löschen und ändern. Um das Modul zu laden, Importieren Sie einfach das Modul wie unten gezeigt.

Import-Module -Name 'NetSecurity'

Liste der bestehenden Firewall-Regeln

Das Cmdlet, Get-NetFirewallRule zeigt alle vorhandenen Firewall-Regeln an. Es gibt viele, Ursprünglich, also um es zu beweisen, wir nehmen den ersten 10.

Get-NetFirewallRule | Select-Object DisplayName, Enabled, Direction, Action -First 10

Es gibt viele Eigenschaften, die von . zurückgegeben werden Get-NetFirewallRule. Auch wenn wir nur eine der oben genannten Eigenschaften auflisten, Laufen Get-NetFirewallRule | Select-Object * -First 1, wird alle verfügbaren auflisten.

Erstellen Sie eine neue Firewall-Regel

Es gibt viele verschiedene Möglichkeiten, eine neue Firewall-Regel zu erstellen, aber der Befehl, der dies tut, ist [Net-NewFirewallRule](<https://docs.microsoft.com/en-us/powershell/module/netsecurity/new-netfirewallrule?view=win10-ps>). Die grundlegenden Eigenschaften, die ausgefüllt werden müssen, sind:

  • DisplayName – Der Anzeigename der Firewallregel.
  • Direction – Entweder um den Datenverkehr aus dem Computer zu blockieren. Outbound oder den Computer eingeben Inbound
  • Action – Welche Maßnahmen sind zu ergreifen, wenn die Regel erfüllt ist?, Allow Ö Block

$Params = @{ "DisplayName" = 'Block WINS' "Direction" = 'Inbound' "Action" = 'Block' "RemoteAddress" = 'WINS' }

New-NetFirewallRule @Params
Wenn er Name Parameter wird nicht verwendet, dann wird eine zufällige GUID verwendet. das DisplayName kann menschenlesbar sein, aber Name wurde eine zufällige GUID zugewiesen.

Ändern einer vorhandenen Firewall-Regel

Was ist, wenn wir eine vorhandene Regel ändern möchten, ohne die Regel vollständig zu löschen und neu zu erstellen?? Es zu tun, wir müssen das ausführen Set-NetFirewallRule, und es ermöglicht uns, die Firewall-Regel nach Bedarf zu ändern.

$Params = @{
	"DisplayName"   = 'Block WINS'
	"Action"        = 'Allow'
}

Set-NetFirewallRule @Params

Andere nützliche Fähigkeiten, die Set-NetFirewallRule hat die Möglichkeit, mit mehreren Regeln gleichzeitig zu arbeiten. Dies kann durch Lokalisieren von Regeln nach einem von drei Parametern erfolgen.

  • NameDies ist die Standardeinstellung und wenn die Namen über Pipe oder ein Array von Strings gesetzt werden, auf jeden von ihnen wird reagiert.
  • DisplayNameÄhnlich zu Name, mehrere Pipeline-Objekte oder ein Array von Strings ändern diese Regeln entsprechend.
  • DisplayGroup Ö GroupWenn die Regeln gruppiert sind, alle diese gruppierten Regeln können gleichzeitig angewendet werden.

Löschen Sie eine vorhandene Firewall-Regel

Schließlich, wir möchten die bestehende Regel löschen, da es machbar ist, dass es nicht mehr benötigt wird. Um dies zu tun, führe den Befehl aus Remove-NetFirewallRule. Wenn es geht, es ist oft ratsam, die WhatIf Parameter, um zu überprüfen, ob die Regel richtig zu löschen ist.

Remove-NetFirewallRule -DisplayName "Block WINS"

Es ist unbedingt darauf zu achten, dass die Remove-NetFirewallRule kann mehrere Regeln gleichzeitig löschen. Unten ist ein Beispiel für diese Art von Funktionalität. Die nächste Regel entfernt alle deaktivierten Regeln, die in der Richtlinie enthalten sind firewall_gpo bei ad.local.test Domain.

Remove-NetFirewallRule -Enabled 'False' -PolicyStore 'ad.local.testfirewall_gpo'

Ein nützlicher Befehl läuft, aber potentiell gefährlich Remove-NetFirewallFule selbst, wodurch alle erstellten statischen lokalen Firewall-Regeln entfernt werden. Wenn Sie ein Domänen-GPO haben, das Firewallregeln festlegt, Dadurch werden diejenigen entfernt, die mit diesen GPO-definierten Regeln in Konflikt geraten könnten.

Zusätzliche Funktionalität

Es gibt viele andere Befehle innerhalb der NetSecurity Modul. Auch wenn wir sie hier nicht alle behandeln, Unten sind einige bemerkenswerte Befehle, um zu zeigen, wie groß das Modul ist.

  • Copy-NetFirewallRuleDieser Befehl kopiert eine vorhandene Firewallregel und alle zugehörigen Filter in denselben oder einen anderen Richtlinienspeicher.
  • Disable-NetFirewallRuleDadurch wird eine zuvor aktivierte Firewallregel deaktiviert. Die Regel wird weiterhin bestehen, ändert jedoch keine Netzwerkdaten aktiv. Wenn Sie diesen Befehl ohne Parameter ausführen, deaktiviert alle aktiven Regeln auf dem Zielcomputer. Es wird empfohlen, diesen Befehl immer mit dem auszuführen WhatIf Parameter, wenn er nicht auf eine bestimmte Regel oder ein bestimmtes Regelwerk abzielt.
  • Enable-NetFirewallRuleAls die Disable-NetFirewallRule, Dieser Befehl aktiviert eine zuvor deaktivierte Regel oder einen Regelsatz. Wenn dieser Befehl ohne Parameter ausgeführt wird, aktiviert alle zuvor deaktivierten Regeln. Es wird empfohlen, diesen Befehl immer mit dem auszuführen WhatIf Parameter, wenn er nicht auf eine bestimmte Regel oder ein bestimmtes Regelwerk abzielt.
  • Get-NetFirewallProfileDieser Befehl zeigt die derzeit für ein bestimmtes Profil konfigurierten Alternativen an, Als die Domain, Private, Ö Public Profile.
  • Get-NetFirewallSettingDie globalen Firewall-Einstellungen können über die Get-NetFirewallSetting Befehl. Diese Einstellungen umfassen Optionen wie Zertifikatsoptionen, Paketwarteschlange oder Autorisierungslisten.
  • Rename-NetFirewallRuleSo benennen Sie eine vorhandene Firewallregel um, Verwenden Sie die Rename-NetFirewallRule Befehl. Dies ist nützlich, wenn eine Regel ohne einen bestimmten Namen erstellt wurde, so wird eine zufällige GUID als Name empfangen, und es wird bevorzugt, einen für Menschen lesbaren Namen zugewiesen zu haben.
  • Set-NetFirewallProfileUm spezifische Einstellungen für einzelne Profile festzulegen, benutze el Set-NetFirewallProfile Befehl. Dadurch kann jedes Profil unterschiedliche Konfigurationen haben.
  • Set-NetFirewallSettingDieser Befehl konfiguriert die globalen Firewall-Verhalten, die unabhängig vom derzeit verwendeten Netzwerkprofil gelten..
  • Show-NetFirewallRuleDieser Hilfsbefehl zeigt die Firewall-Regeln und ihre zugehörigen Objekte in einer formatierten Liste an.

Im Modul ist eine umfangreiche IPSec-Funktionalität enthalten. Die zuvor aufgeführten Befehle sind diejenigen, die in der Standardkonfiguration der Windows-Firewall ausgeführt werden.

Fazit

Es stehen viele Befehle zur Verwaltung der Windows-Firewall zur Verfügung. Dieser Beitrag berührt nur einige von ihnen, insbesondere die wichtigsten Befehle zum Auflisten, schaffen, Firewall-Regeln schnell ändern und löschen. Selbst komplexe Firewall-Konfigurationen lassen sich ausschließlich über die Kommandozeile mit dem NetSecurity PowerShell-Modul!

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.