Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
WindowsFirewallRuleset — PowerShell-Skripte zum automatischen Erstellen von Regeln für die Windows-Firewall | Kitploit
Tools/GitHubGitHub/metablaster/windowsfirewallruleset
Scripting & AutomatisierungKonfigurationsprüfungNetzwerksicherheitArchived
GitHubmetablaster/windowsfirewallruleset

WindowsFirewallRuleset

PowerShell-Skripte zum automatischen Erstellen von Regeln für die Windows-Firewall

Repository anzeigen
17941vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Windows Firewall Ruleset

Alternativtext

Inhaltsverzeichnis

  • Windows Firewall Ruleset
    • Inhaltsverzeichnis
    • Über Windows Firewall Ruleset
      • Firewall-Regeln
      • Firewall-Framework
    • Die Vision dieser Firewall
    • Lizenz
    • Anforderungen
      • Anforderungen im Detail
      • Ich erfülle die Anforderungen nicht
    • Erstbenutzer
      • Warnung
      • Hinweis
      • Schnellstart
    • Firewall-Verwaltung
      • Automatisierte und interaktive Firewall-Bereitstellung
      • GPO-Regeln verwalten
      • Einzelne Regelsets bereitstellen
      • Regeln löschen
      • Regeln exportieren/importieren
    • Remote-Firewall-Bereitstellung
    • Support, Updates und Dokumentation
    • Die Zukunft

Über Windows Firewall Ruleset

Alpha-Version

Eine vollautomatische Lösung für die Windows-Firewall mit PowerShell

Windows Firewall Ruleset konfiguriert die Windows-Firewall automatisch und wendet restriktive Firewall-Regeln an, die spezifisch für das Zielsystem und die darauf installierte Software sind.

Der Status dieses Projekts ist noch Alpha. Klicken Sie auf das "Status"-Abzeichen oben, um mehr zu erfahren.
Dieses Projekt besteht aus zwei Hauptteilen: Firewall-Regeln und Firewall-Framework, wie folgt:

Firewall-Regeln

Windows-Firewall-Regeln, sortiert in einzelne PowerShell-Skripte nach:

  • Regelgruppe
  • Verkehrsrichtung (z.B. eingehend, ausgehend oder IPSec)
  • Softwaretyp und Herausgeber
  • IP-Version (IPv4 / IPv6)

Zum Beispiel:

  • ICMP-Verkehr
  • Browser-Regeln
  • Integrierte Betriebssystemsoftware
  • Store-Apps
  • Windows-Dienste
  • Multiplayer-Spiele
  • Microsoft-Programme
  • Drittanbieter-Programme
  • Broadcast-Verkehr
  • Multicast-Verkehr

Firewall-Framework

  • Das Firewall-Framework besteht aus mehreren PowerShell-Modulen, Skripten und Dokumentationen, die dazu dienen, Umgebungsinformationen zu sammeln, die für den Aufbau und die Bereitstellung einer auf das Zielsystem zugeschnittenen Firewall relevant sind, wie z.B.:

    • Computer im Netzwerk
    • Installierte Programme
    • IP-Subnetz-Mathematik
    • Remote- oder lokale Systembenutzer
    • Netzwerkkonfiguration
    • GPO-Konfiguration
    • Firewall-Verwaltung
    • Schnelle Analyse von Paketablaufverfolgungen und Audit-Logs
    • Verschiedene Fehlerbehebungs-, Firewall-, System- und Netzwerk-Hilfsfunktionen
  • Daher ist dieses Repository ein guter Ausgangspunkt, um Ihre Firewall einfach um weitere Regeln und Funktionalitäten nach Wunsch zu erweitern.

  • Derzeit gibt es etwa 800+ Firewall-Regeln, 10+ Module mit 100+ Funktionen, mehrere Skripte und eine gute Portion nützlicher Dokumentation.

  • Sie können interaktiv auswählen, welche Regeln Sie möchten, und nur diese bereitstellen, oder Sie können den Prozess automatisieren und alle notwendigen Regeln und Einstellungen in Ihrer Firewall bereitstellen.

Inhaltsverzeichnis

Die Vision dieser Firewall

Verwaltet in VSCode PowerShell

  1. Eine detaillierte Firewall-Konfiguration ist zeitaufwändig, erfordert viel Fehlerbehebung, Änderungen erfordern Tests und Sicherheitsüberprüfungen, und es wird noch schlimmer, wenn Sie eine Firewall auf Hunderte oder Tausende von entfernten Computern bereitstellen müssen, da z.B. nicht alle Computer die gleiche Software oder die gleichen Einschränkungsanforderungen haben.

  2. Anders als Firewall-Regeln in der Systemsteuerung werden diese Regeln in die GPO-Firewall (Lokale Gruppenrichtlinie) geladen, was bedeutet, dass Änderungen an Systemeinstellungen oder zufällige Programme, die im Rahmen ihrer Installation Regeln installieren, keine Auswirkungen auf die Firewall haben, es sei denn, Sie machen explizit eine Ausnahme.

  3. Regeln, die auf Programmen und Diensten basieren, überprüfen die angegebene ausführbare Datei auf digitale Signatur und werden auf VirusTotal gescannt, wenn die digitale Signatur fehlt. Aus Sicherheitsgründen wird die Regel nicht erstellt oder in die Firewall geladen, wenn diese Überprüfung fehlschlägt. (kann erzwungen werden)

  4. Standardmäßig ist ausgehend "blockieren", es sei denn, es gibt eine Regel, die Netzwerkverkehr zulässt. In den meisten Firewalls ist dies nicht möglich, es sei denn, Sie pflegen Regeln für jedes mögliche Programm oder jeden Dienst. Dank dieser Regelsammlung erfordert das Setzen des Standard-Ausgehend auf Blockieren sehr wenig oder keine zusätzliche Arbeit.

  5. Anders als im üblichen Szenario werden Sie wissen, welche Regeln keine Wirkung mehr haben oder redundant sind aufgrund z.B. eines deinstallierten Programms, eines nicht mehr vorhandenen Systemdienstes, einer umbenannten ausführbaren Datei nach einem Windows-Update und ähnlichen Gründen.

  6. Anders als vordefinierte Windows-Firewall-Regeln sind diese Regeln restriktiver, z.B. an explizite Benutzerkonten gebunden, Regeln gelten für bestimmte Ports, Netzwerkschnittstellen, bestimmte ausführbare Dateien, Dienste usw., was alles automatisch vom Zielsystem gelernt wird.

  7. Das Aktualisieren, Filtern oder Durchsuchen von Regeln und Attributen wie Ports, Adressen und ähnlichem ist viel einfacher, da diese Regeln in Skripten vorliegen. Sie können Editor-Tools wie regex, Multicursor oder STRG + F verwenden, um Bulk-Operationen an Ihren Regeln durchzuführen. Dies ist in jeder Firewall-Benutzeroberfläche aufgrund von Einschränkungen der Benutzeroberfläche nicht möglich.

Inhaltsverzeichnis

Lizenz

MIT-Lizenz

Dieses Projekt Windows Firewall Ruleset ist unter der MIT-Lizenz lizenziert.

Einige Skripte, Dateien oder Module sind nicht unter der MIT-Lizenz lizenziert oder haben möglicherweise eigene Copyright-Inhaber. Aus diesem Grund werden Lizenz- und Copyright-Hinweise "pro Datei" geführt.

Anforderungen

Windows

Die folgende Tabelle listet Betriebssysteme auf, auf denen Windows Firewall Ruleset getestet wurde


  1. Windows PowerShell 5.1 oder PowerShell Core 7.3.x PowerShell Core herunterladen
  2. .NET Framework 4.5 (nur Windows PowerShell) .NET Framework herunterladen
  3. sigcheck64.exe (stark empfohlen) sigcheck herunterladen
  4. Git (optional) Git herunterladen
  5. Visual Studio Code (empfohlen) VSCode herunterladen
  6. PowerShell-Unterstützung für VSCode (empfohlen) Erweiterung herunterladen
  7. PSScriptAnalyzer (empfohlen) PSScriptAnalyzer herunterladen

Inhaltsverzeichnis

Anforderungen im Detail

  • Alle Windows 10.0-Systeme (Major 10, Minor 0) und höher außer den Home-Editionen werden unterstützt, aber nur die in der obigen Tabelle aufgeführten Editionen wurden getestet.
    Die Spalte "Version" listet getestete Veröffentlichungen auf, jedoch werden nur die neuesten BS-Builds weiterhin getestet.
    Eine Liste anderer nicht getesteter, aber unterstützter Systeme und Funktionen finden Sie in Die Zukunft

  • PowerShell Core ist nicht in Windows integriert. Sie müssen es separat installieren oder Windows PowerShell verwenden, das Teil des Betriebssystems ist.

  • .NET Framework mind. Version 4.5 ist erforderlich, wenn Sie Windows PowerShell (Desktop-Edition) anstelle von PowerShell Core verwenden.
    Windows 10 wird mit mindestens .NET 4.6 ausgeliefert (das .NET 4.5 enthält), und Windows 11 wird mit mindestens .NET 4.8 ausgeliefert.

  • sigcheck64.exe (oder 32-Bit sigcheck.exe) ist ein Tool zur Überprüfung digitaler Signaturen, das Sie von der Microsoft-Website herunterladen können und entweder im Verzeichnis C:\tools oder in der Umgebungsvariable %PATH% platzieren sollten.
    Windows Firewall Ruleset verwendet es, um eine hashbasierte Online-Malware-Analyse auf VirusTotal für jede ausführbare Datei durchzuführen, die nicht digital signiert ist, bevor eine Firewall-Regel für diese ausführbare Datei erstellt wird. Dies ist nur eine Empfehlung. Wenn keine im vorhanden ist, wird Ihnen angeboten, sie herunterzuladen. Wenn Sie ablehnen, wird keine Malware-Analyse durchgeführt. Durch die Nutzung dieser Funktionalität stimmen Sie den , der und den zu.

Inhaltsverzeichnis

Ich erfülle die Anforderungen nicht

Derzeit ist diese Firewall für die meisten aktuellen Windows-Desktop-/Server-Systeme getestet und ausgelegt und funktioniert bekanntermaßen. Die Verwendung auf älteren Systemen erfordert zusätzliche Arbeit.

Die Tests werden auf 64-Bit-Windows durchgeführt. Ein kleiner Teil der Regeln funktioniert nicht auf einem 32-Bit-System und muss angepasst werden. Die vollständige Funktionalität für 32-Bit-Systeme befindet sich in Arbeit.
Im Moment können Sie Regeln auf einem 32-Bit-System problemlos laden, mit Ausnahme einiger weniger Regeln, die für Ihre Konfiguration wahrscheinlich irrelevant sind.

Informationen zur Verwendung dieser Firewall auf älteren Windows-Systemen wie Windows 7 oder Windows Server 2008 finden Sie unter Legacy-Support

Inhaltsverzeichnis

Erstbenutzer

Im Folgenden finden Sie kurze Warnungen und Hinweise, die Erstbenutzer vor der Bereitstellung der Firewall beachten sollten

Warnung

  • Sie könnten die Internetverbindung für einige Ihrer Programme oder in seltenen Fällen sogar die Internetverbindung vollständig verlieren. Wenn dies passiert, können Sie entweder vorübergehend ausgehenden Netzwerkverkehr in der GPO zulassen oder
    .\Scripts\Reset-Firewall.ps1 -Remoting -Service ausführen, um die GPO-Firewall auf die Systemstandards zurückzusetzen, alle Regeln zu entfernen und WinRM sowie geänderte Dienste auf die Systemstandards zurückzusetzen. (Anschließend ist ein Neustart von PowerShell erforderlich)

  • Im Verzeichnis docs gibt es eine ResetFirewall.md, eine Anleitung, wie es manuell von Hand gemacht werden kann, wenn Sie aus irgendeinem Grund das Skript nicht ausführen können oder das Skript Ihre Probleme nicht löst.

  • Ihre vorhandenen Regeln werden nicht gelöscht, es sei denn, Sie haben Regeln in der GPO mit genau denselben Gruppennamen wie Regeln aus diesem Regelsatz. Dies gilt jedoch nicht für Scripts\Reset-Firewall.ps1, das GPO-Regeln vollständig löscht und nur die in der Systemsteuerung hinterlässt.

  • Wenn Sie 100% sicher sein möchten, exportieren Sie bitte Ihre GPO-Regeln, wie in Regeln exportieren\importieren erläutert

  • Sie werden gefragt, welche Regeln geladen werden sollen (wenn Sie die interaktive Bereitstellung wählen, siehe später). Um Probleme mit der Internetverbindung zu minimieren, sollten Sie mindestens alle generischen Netzwerk- und BetriebssystemRegeln mit dem Namen "CoreNetworking", "ICMP", "WindowsSystem", "WindowsServices", "Multicast" bereitstellen, einschließlich aller Regeln für Programme, die auf dem System installiert sind. Ignorieren Sie auch nicht IPv6, Windows benötigt IPv6, selbst wenn Sie sich in einem IPv4-Netzwerk befinden.
    Es ist einfach, das, was Sie nicht benötigen, in der GPO zu löschen, anstatt später im Code zu graben und herauszufinden, was Sie übersehen haben.

  • Die Standardkonfiguration legt das globale Firewall-Verhalten fest, das in der GPO nicht konfigurierbar ist, wie z.B. Stateful FTP und oder globale -Einstellungen. Wenn Sie ein spezifisches Setup benötigen, besuchen Sie bitte und werfen Sie einen Blick auf . Beachten Sie, dass automatisch von aufgerufen wird

Inhaltsverzeichnis

Hinweis

  • Das Laden von Regeln in eine leere GPO sollte sehr schnell sein. Das Laden in eine GPO, die bereits Regeln enthält, wird jedoch deutlich langsamer sein (abhängig von der Anzahl der vorhandenen Regeln in der GPO)

  • Alle Fehler und Warnungen werden im Verzeichnis Logs gespeichert. Sie können diese Protokolle später überprüfen, wenn Sie ein Problem beheben möchten. Die meisten Warnungen und sogar einige Fehler können sicher ignoriert werden. In bestimmten Fällen sollten Sie versuchen, Fehler zu beheben, wenn möglich.

  • Jede Regel, die beim Laden "Zugriff verweigert" ergibt, sollte erneut geladen werden, indem das entsprechende Skript erneut ausgeführt wird. Weitere Informationen dazu, warum dies passieren kann, finden Sie in der FAQ

  • Wenn das Repository manuell heruntergeladen, von einem anderen Computer oder Medium übertragen wurde, sollten Sie zunächst alle Dateien im Repository entsperren, um JA/NEIN-Spam-Fragen für jedes ausführende Skript zu vermeiden, indem Sie Scripts\Unblock-Project.ps1 ausführen.
    Das Hauptskript Scripts\Deploy-Firewall.ps1 führt dies für den Fall durch, dass Sie es vergessen, aber die anfänglichen JA/NEIN-Fragen sind in diesem Fall dennoch vorhanden.

  • Wenn Sie den "Ransomware-Schutz" (in Windows Defender) aktiviert haben, stellen Sie sicher, dass entweder pwsh.exe (Core-Edition) oder powershell.exe (Desktop-Edition) oder beide in die Whitelist aufgenommen werden, da sonst im Entwicklermodus bei der Installation von Modulen Fehler auftreten.
    Wenn Repository-Code in einen Ordner unter Ransomware-Schutz heruntergeladen wird, kann alles blockiert werden.
    Die PowerShell-Konsole muss möglicherweise neu gestartet werden, damit Änderungen am "Controlled folder access" wirksam werden.

  • Standardmäßig werden Regeln für die Gruppe erstellt und für die Gruppe nur bei Bedarf. Es wird empfohlen, ein Standardbenutzerkonto für den täglichen Gebrauch aus Sicherheitsgründen zu verwenden. Wenn Sie Administrator sind und kein Standardkonto auf Ihrem Computer erstellen möchten, müssen Sie die Variable in ändern und angeben.

Inhaltsverzeichnis

Schnellstart

  1. Wenn Sie keine SSH-Schlüssel und andere Einrichtung haben, die zum Klonen über SSH erforderlich sind, klonen Sie entweder mit HTTPS oder laden Sie einfach die veröffentlichte ZIP-Datei von Releases herunter, und dann für die neueste Veröffentlichung unter "Assets" die ZIP-Datei herunterladen.
    Diese Schritte gehen davon aus, dass Sie eine ZIP-Datei aus dem Abschnitt "Assets" unter "Releases" heruntergeladen haben.

  2. Extrahieren Sie das heruntergeladene Archiv an einem beliebigen Ort. Diese Schritte gehen davon aus, dass Sie die ZIP-Datei (Repository-Stammverzeichnis) direkt in das Laufwerk C:\ entpackt haben.

  3. Wenn Sie Windows PowerShell verwenden möchten, siehe So öffnen Sie Windows PowerShell. Ansonsten ist das Verfahren sowohl für PowerShell Core als auch für Windows PowerShell ähnlich:
    Öffnen Sie den extrahierten Ordner, klicken Sie mit der rechten Maustaste auf eine leere Stelle, und es gibt eine Option, um PowerShell Core als Administrator auszuführen (vorausgesetzt, Sie haben das Kontextmenü bei der Installation von PowerShell Core aktiviert). Wenn nicht, öffnen Sie es manuell.

  4. Wenn Sie kein PowerShell-Kontextmenü haben, wechseln Sie zum Stammverzeichnis C:\, indem Sie die folgenden zwei Zeilen ausführen (geben Sie die Befehle ein oder kopieren/einfügen und drücken Sie nach jeder die Eingabetaste): Hier haben Sie Ihre heruntergeladene ZIP-Datei extrahiert

    root@kitploit:~
    c:
    cd \
    
  5. Wechseln Sie in den heruntergeladenen Ordner:

    root@kitploit:~
    cd WindowsFirewallRuleset*
    
  6. Um die aktuelle Ausführungsrichtlinie anzuzeigen, geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
    (Tipp: Sie können die TAB-Taste verwenden, um die Eingabe automatisch zu vervollständigen)

Wenn Sie Hilfe benötigen, um zu entscheiden, ob Sie einen Regelsatz ausführen möchten oder nicht, geben Sie ? ein, wenn Sie zur Ausführung des Regelsatzes aufgefordert werden, und drücken Sie die Eingabetaste, um weitere Informationen zu erhalten.
Wenn Sie aus irgendeinem Grund die Bereitstellung unterbrechen und abbrechen möchten (z.B. um eine neue zu starten), drücken Sie STRG + C auf Ihrer Tastatur, während PowerShell im Fokus ist, und starten Sie die PowerShell-Konsole neu.

  1. Folgen Sie der Eingabeaufforderung (z.B. Drücken Sie die Eingabetaste, um die Standardaktion zu akzeptieren), es wird etwa 15 Minuten Ihrer Aufmerksamkeit in Anspruch nehmen.

    HINWEIS: Wenn das Administratorkonto ein Microsoft-Konto zum Anmelden am Computer verwendet, werden Sie nach Anmeldeinformationen gefragt, die Microsoft-E-Mail und -Passwort sein müssen, unabhängig davon, ob Sie Windows Hello verwenden oder nicht. Die Angabe einer PIN funktioniert nicht und andere Windows Hello-Authentifizierungsmethoden werden nicht unterstützt.

    Bei ungültigen Anmeldeinformationen erhalten Sie eine Fehlermeldung Access is denied.
    Wenn dies passiert, müssen Sie die PowerShell-Konsole neu starten und es erneut versuchen.

    Weitere Informationen, warum dies notwendig ist, finden Sie unter FAQ

  2. Wenn Sie auf Fehler stoßen, können Sie die Fehler entweder ignorieren oder das Skript aktualisieren, das den Fehler verursacht hat, und dann dieses spezifische Skript später erneut ausführen.

  3. Wenn Sie fertig sind, möchten Sie möglicherweise einige der Regeln in der lokalen Gruppenrichtlinie anpassen. Nicht alle Regeln sind standardmäßig aktiviert, oder Sie möchten möglicherweise das Standardverhalten "Zulassen/Blockieren" umschalten.
    Regeln decken möglicherweise nicht alle auf Ihrem System installierten Programme ab, in diesem Fall müssen fehlende Regeln erstellt werden.

  4. Testen Sie nun Ihre Internetverbindung (z.B. mit einem Webbrowser oder einem anderen Programm). Wenn Sie nach der Bereitstellung dieser Regeln keine Verbindung zum Internet herstellen können, haben Sie mehrere Optionen:

    • Öffnen Sie vorübergehend die ausgehende Firewall in der GPO oder Firewall deaktivieren
    • Beheben Sie Probleme: Detaillierte Anleitung zur Netzwerkfehlerbehebung
    • Sie können Firewall auf vorherigen Zustand zurücksetzen
    • Werfen Sie einen Blick in das docs-Verzeichnis für weitere Optionen zur Fehlerbehebung und Dokumentation

Inhaltsverzeichnis

Firewall-Verwaltung

Der folgende Abschnitt gibt einige Hinweise zur einfachen Verwaltung der Firewall

Automatisierte und interaktive Firewall-Bereitstellung

Das Skript Deploy-Firewall.ps1 unterstützt mehrere Parameter, um die Automatisierung der Bereitstellung wie folgt anzupassen:

root@kitploit:~
- Um alle Regeln ohne Aufforderung und mit präziser Ausgabe automatisch auszuführen, jedoch nur für Programme, die auf dem System vorhanden sind, führen Sie
aus:```powershell

.\Scripts\Deploy-Firewall.ps1 -Force -Quiet

root@kitploit:~
- Um Schritt für Schritt vorzugehen und zur Bestätigung aufgefordert zu werden, welche Regelsätze geladen werden sollen, sowie Probleme im laufenden Betrieb zu lösen, führen Sie Folgendes aus:```powershell
.\Scripts\Deploy-Firewall.ps1 -Interactive
  • Um nur zur Regelsatzauswahl aufgefordert zu werden, führen Sie Deploy-Firewall ohne Parameter aus:```powershell .\Scripts\Deploy-Firewall.ps1
root@kitploit:~
Um die Bedeutung der Parameter zu verstehen, um sie selbst kombinieren zu können, sehen Sie sich den Kommentar im Skript `Deploy-Firewall.ps1` an oder führen Sie den folgenden Befehl aus:```powershell
Get-Help .\Scripts\Deploy-Firewall.ps1 -Detailed

GPO-Regeln verwalten

Es gibt zwei Methoden, um GPO-Regeln zu verwalten:

  1. Verwenden der lokalen Gruppenrichtlinie (Local Group Policy). Diese Methode bietet eingeschränkte Freiheit bei den Regeln aus diesem Repository, z. B. Deaktivieren, Ändern einiger Attribute oder Hinzufügen neuer Regeln.
    Weitere Informationen finden Sie unter: Manage GPO Firewall

  2. Bearbeiten von PowerShell-Skripten. Diese Methode bietet vollständige Kontrolle, Sie können vorhandene Regeln uneingeschränkt ändern oder entfernen oder neue hinzufügen.

Unabhängig von Ihrem Plan oder Setup möchten Sie sicherlich zusätzliche Arbeiten durchführen, z. B. das Anpassen von Regeln oder das Hinzufügen neuer Regeln für Programme, die noch nicht von dieser Firewall abgedeckt werden.

Die Regeln werden in die lokale Gruppenrichtlinie geladen. Wenn Sie während der Firewall-Einrichtung der Erstellung einer Verknüpfung zur personalisierten Firewall-Verwaltungskonsole zugestimmt haben, können Sie die Verknüpfung ausführen. Andernfalls befolgen Sie die Schritte in Manage GPO Firewall.

Weitere Informationen zu GPO finden Sie unter: Configure security policy settings

Table of Contents

Bereitstellen einzelner Regelsätze

Wenn Sie nur bestimmte Regeln bereitstellen möchten, gibt es zwei Möglichkeiten:

  1. Führen Sie Scripts\Deploy-Firewall.ps1 aus und wählen Sie Yes nur für die gewünschten Regelsätze, andernfalls wählen Sie No und drücken Sie die Eingabetaste, um den aktuellen Regelsatz zu überspringen.

  2. Navigieren Sie in der PowerShell-Konsole mit cd in das Verzeichnis, das das gewünschte Regelsatzskript enthält, und führen Sie das einzelne Skript aus.
    Zum Beispiel cd .\Rules\IPv4\Outbound\Software gefolgt von .\Adobe.ps1, um Regeln für Adobe zu laden.

Möglicherweise möchten Sie anschließend Scripts\Complete-Firewall.ps1 ausführen, um das Standard-Firewallverhalten anzuwenden, falls es noch nicht festgelegt ist, oder Sie können es manuell in der GPO tun, jedoch mit eingeschränkter Leistungsfähigkeit. 'Eingeschränkte Leistungsfähigkeit' bedeutet, dass Scripts\Complete-Firewall.ps1 einige Firewall-Parameter konfiguriert, die in der Firewall-GUI nicht angepasst werden können.

In beiden Fällen werden alle Regeln, die der Regelsatzgruppe DisplayGroup entsprechen, gelöscht, bevor die Regeln in die GPO geladen werden.

Table of Contents

Löschen von Regeln

Derzeit gibt es drei Optionen zum Löschen von Firewall-Regeln:

  1. Der einfachste Weg ist, alle gewünschten Regeln in der GPO auszuwählen, mit der rechten Maustaste zu klicken und zu löschen.

  2. Um Regeln gemäß einer Datei zu löschen, gibt es eine Funktion für diesen Zweck, die sich in:
    Modules\Ruleset.Firewall\Public\Remove-FirewallRule.ps1 befindet.
    Sie müssen jedoch zuerst die Firewall in eine Datei exportieren, bevor Sie sie verwenden können.

  3. Um zu Ihrem alten Firewall-Zustand (dem in der Systemsteuerung) zurückzukehren, müssen Sie alle Regeln aus der GPO löschen und nach einem Rechtsklick auf den Knoten:
    Windows Defender Firewall with Advanced Security - Local Group Policy Object alle Eigenschaften auf Not configured setzen.

Das Löschen aller Regeln oder das Zurücksetzen auf den vorherigen Zustand kann auch mit Scripts\Reset-Firewall.ps1 erfolgen.\ Beachten Sie, dass Sie auch Ihre exportierten GPO-Regeln erneut importieren müssen, falls Sie welche hatten.

Table of Contents

Export/Import von Regeln

Wenn Sie Regeln aus der GPO exportieren möchten, stehen zwei Methoden zur Verfügung:

  1. Exportieren in der lokalen Gruppenrichtlinie, indem Sie nach einem Rechtsklick auf den Knoten:
    Windows Defender Firewall with Advanced Security - Local Group Policy Object auf das Menü Export Policy... klicken.

  2. Zum Exportieren mit PowerShell führen Sie Scripts\Backup-Firewall.ps1 aus.
    Wenn Sie Ihren Export anpassen möchten, sehen Sie sich die Funktion Export-RegistryRule im Modul Ruleset.Firewall an, mit der Sie Ihren Export nahezu beliebig anpassen können.

Wenn Sie Regeln importieren möchten, ist der Import über die GPO derselbe wie für den Export, und zum Importieren mit PowerShell führen Sie einfach Scripts\Restore-Firewall.ps1 aus, das Ihre vorherigen Exportdateien verwendet.

Um Ihren Export/Import anzupassen, werfen Sie einen Blick in Modules\Ruleset.Firewall\Public, wo Sie eine Beschreibung zur Verwendung der Export-/Import-Modulfunktionen finden.

HINWEIS: Die Funktion Export-FirewallRule ist sehr langsam; es wird empfohlen, stattdessen die Funktion Export-RegistryRule auszuführen, die so schnell wie möglich ist.

Table of Contents

Firewall-Bereitstellung aus der Ferne

Dieser Abschnitt und die Funktionalität sind derzeit experimentell und noch nicht vollständig abgeschlossen. Derzeit wird die Bereitstellung auf einem einzelnen entfernten Computer unterstützt.

Under construction

Bei der Firewall-Bereitstellung aus der Ferne sind mindestens zwei Computer beteiligt,
einer wird als Verwaltungscomputer (Client) bezeichnet und alle anderen als verwaltete Computer (Server).

Die Skripte werden vom Administrator auf dem Verwaltungscomputer ausgeführt, und die Firewall wird dann gleichzeitig auf mehreren Servercomputern bereitgestellt oder konfiguriert.

Implementierungsdetails finden Sie im Modul Modules\Ruleset.Remote

HINWEIS: Die Remoting-Funktionalität ist nicht exklusiv für die Firewall-Bereitstellung aus der Ferne; auch die Bereitstellung auf localhost erfordert von Haus aus eine funktionierende WinRM- und PS-Remoting-Konfiguration.

Bevor die Fernbereitstellung durchgeführt werden kann, muss der entfernte Computer (Server) so konfiguriert werden, dass er Verbindungen akzeptiert. Ein Beispiel zum Aufbau einer SSL-Verbindung ist wie folgt:

Um die Ausführung zu ermöglichen, konfigurieren Sie den WinRM-Dienst und die Remoteregistrierung auf dem Servercomputer, indem Sie Folgendes ausführen:

HINWEIS: Wenn Sie PowerShell Core verwenden, lassen Sie -Protocol HTTPS im folgenden Enable-WinRMServer weg. Dadurch werden sowohl HTTP als auch HTTPS aktiviert, was ein temporärer Workaround ist, damit das Kompatibilitätsmodul in der Remotesitzung funktioniert.```powershell

On server computer

Set-ExecutionPolicy -Scope LocalMachine RemoteSigned Set-Location C:\Path\to\WindowsFirewallRuleset Import-Module .\Modules\Ruleset.Remote Enable-WinRMServer -Protocol HTTPS -KeepDefault -Confirm:$false Enable-RemoteRegistry -Confirm:$false

root@kitploit:~
Nach Durchführung dieser Schritte finden Sie im Verzeichnis `\Exports` eine SSL-Zertifikatsdatei (*.cer), die auf den Verwaltungscomputer ebenfalls in das Verzeichnis `\Exports` kopiert werden muss.\
Standardmäßig wird ein selbstsigniertes SSL-Zertifikat erstellt, wenn der Servercomputer noch keines besitzt.

**HINWEIS:** Die manuelle Konfiguration des Servercomputers wird nur beim ersten Einrichten durchgeführt,
Sie müssen sie nicht für nachfolgende Bereitstellungen wiederholen.

Der nächste Schritt besteht darin, zum Verwaltungscomputer zu gehen und die Skripte wie gewünscht auszuführen, zum Beispiel:```powershell
# On management computer
cd C:\Path\to\WindowsFirewallRuleset\Scripts
Deploy-Firewall -Domain "RemoteComputerName"

Beide oben genannten Befehlssätze müssen in derselben Edition von PowerShell ausgeführt werden, z. B. wenn der Server in PowerShell Core konfiguriert wurde, benötigt der Client-Computer ebenfalls PowerShell Core für die Bereitstellung.
Wenn entweder der Server oder der Verwaltungscomputer eine Workstation ist (z. B. kein Windows-Server oder Teil einer Domäne), muss das Netzwerkprofil auf das private Profil gesetzt werden.

Die Remote-Bereitstellung kann an den folgenden Stellen sehr detailliert angepasst werden:

  • Informationen zum Anpassen des WinRM-Dienstes finden Sie unter: Modules\Ruleset.Remote\Scripts\WinRMSettings.ps1
  • Informationen zum Anpassen der WSMan-Sitzungskonfiguration finden Sie unter: Modules\Ruleset.Remote\Scripts\*Firewall.pssc
  • Informationen zum Anpassen des selbstsignierten SSL-Zertifikats finden Sie unter: Modules\Ruleset.Remote\Public\Register-SslCertificate.ps1
  • Informationen zum Anpassen der PS- und CIM-Sitzungskonfiguration finden Sie unter: Modules\Ruleset.Remote\Scripts\SessionSettings.ps1

Weitere Informationen und Tipps zur Fehlerbehebung finden Sie auch in der Remoting-Hilfe

Table of Contents

Support, Updates und Dokumentation

Bei Support, Problemberichten, Vorschlägen oder Anpassungen dieses Repositorys sowie Methoden zur regelmäßigen Aktualisierung dieser Firewall verweisen wir auf SUPPORT.md

Table of Contents

Die Zukunft

Die folgenden Funktionen sind gewünscht und könnten irgendwann in der Zukunft verfügbar sein:

  1. Remote-Firewall-Verwaltung

    • Bereitstellung der Firewall-Konfiguration auf mehreren entfernten Computern in Domänen- oder Heimnetzwerken
  2. Umfassende Firewall-Regelsätze für Windows Server-Editionen und dedizierte Gateway-Systeme.

  3. Bei Bedarf oder geplanter Registrierungsscan zur Überprüfung der Integrität der aktiven Firewall-Filterrichtlinie und Firewall-Einstellungen

    • Jede Firewall-Regel oder -Einstellung in der Registrierung, die nicht Teil dieses Repositorys ist, wird zur Überprüfung gemeldet.
    • Denn Malware, Hacker und sogar vertrauenswürdige Software können jederzeit versuchen, die Firewall zu umgehen.
  4. Vollständige Funktionalität für die folgenden noch nicht getesteten Editionen von Windows 10.0

    • Windows 10 & 11 Pro for Workstations
    • Windows 10 & 11 IoT Core Blast
    • Windows 10 & 11 IoT Enterprise
    • Windows 10 & 11 S
  5. Funktionalität für x86-Systeme

Table of Contents

Tool herunterladen

Ein guter Teil des Codes ist darauf ausgerichtet, eine automatisierte Lösung zum Erstellen und Definieren einer für das Zielsystem und die Benutzer spezialisierten Firewall bereitzustellen, wodurch die Notwendigkeit manueller Eingriffe minimiert wird und Ihnen somit viel wertvolle Verwaltungszeit gespart wird.

BSEditionVersionArchitektur
Windows 10Pro1809 - 22H2x64
Windows 10Pro Education20H2x64
Windows 10Enterprise1809 - 20H2x64
Windows 10Education20H2 - 22H2x64
Windows 11Pro Education21H2x64
Windows 11Pro22H2 - 23H2x64
Windows 11Enterprise22H2x64
Windows Server 2019Essentials1809x64
Windows Server 2019Standard1809x64
Windows Server 2019Datacenter1809x64
Windows Server 2022Standard21H2x64
Windows Server 2022Datacenter21H2x64

sigcheck64.exe
PATH

Nutzungsbedingungen von VirusTotal
Datenschutzrichtlinie von VirusTotal
Sysinternals-Softwarelizenzbedingungen
  • Sie möchten möglicherweise Git haben, um nach Updates zu suchen, einfach zwischen Branches zu wechseln oder Code beizutragen.

  • VS Code ist der bevorzugte und empfohlene Editor, um den Code zu navigieren und/oder Skripte für Ihre eigenen Bedürfnisse oder Beiträge zu bearbeiten.

  • Wenn Sie VSCode verwenden, benötigen Sie auch die PowerShell-Erweiterung für die Code-Navigation und PowerShell-Sprachfunktionen.

  • Um Code mit VSCode zu navigieren und zu bearbeiten, wird PSScriptAnalyzer dringend empfohlen, da sonst die Bearbeitungserfahrung aufgrund verschiedener Repository-Einstellungen seltsam sein kann.

  • Es gibt keine Hardware-Anforderungen, aber wenn Sie planen, Code zu schreiben und zu debuggen, wird empfohlen, mindestens 8 GB Arbeitsspeicher und eine SSD-Festplatte zu haben, um bequem am Projekt zu arbeiten. Nur um Regeln auf Ihrer persönlichen Firewall bereitzustellen, reicht weniger aus.

  • PPTP
    IPSec
    Scripts\Complete-Firewall.ps1
    Set-NetFirewallSetting

    Scripts\Complete-Firewall.ps1
    Scripts\Deploy-Firewall.ps1
  • Einige Skripte erfordern, dass Sie (der Netzwerkadapter) mit dem Netzwerk verbunden sind, z.B. um die IPv4-Broadcast-Adresse zu ermitteln. (Andernfalls können Fehler auftreten)

  • Alles auf dem System sollte auf dem neuesten Stand sein, da sonst einige Regeln übersprungen oder falsch sein können. Dies umfasst Windows-Updates, Microsoft Store-Apps und alle anderen Software.

  • Benutzer
    Administratoren

    DefaultGroup
    Config\ProjectSettings.ps1
    Administratoren

    Weitere Informationen, warum die Verwendung eines Administratorkontos aus Sicherheitsgründen nicht empfohlen wird, finden Sie unter SecurityAndPrivacy.md.
    Ihr Administratorkonto, das zum Bereitstellen der Firewall verwendet wird, muss ein Passwort haben.

  • Software- oder Windows-Updates können ausführbare Dateien oder deren Speicherorte umbenennen. Auch Benutzerkonten können vom Administrator umbenannt werden. Daher ist es wichtig, von Zeit zu Zeit bestimmte Regeln nach Bedarf neu zu laden, um die Firewall für Systemänderungen zu aktualisieren, die jederzeit auftreten können. Dieses Verhalten wird als Software-Regression bezeichnet

  • Vor der Bereitstellung der Firewall wird empfohlen, das System und die Benutzerprogramme auf dem Zielcomputer zu aktualisieren, einschließlich Windows Store-Apps, insbesondere wenn das System frisch installiert ist, da ein späteres Aktualisieren möglicherweise das Neuladen einiger Regeln erfordert.

  • root@kitploit:~
    Get-ExecutionPolicy
    

    Merken Sie sich die Ausgabe des obigen Befehls. Beachten Sie, dass PowerShell Core standardmäßig RemoteSigned verwendet, während Windows PowerShell auf Nicht-Server-Editionen standardmäßig Restricted verwendet.

  • Setzen Sie die Ausführungsrichtlinie auf "Unrestricted", um Projektdateien entsperren zu können. (Beachten Sie, dass RemoteSigned nur funktioniert, sobald die Skripte entsperrt sind)

    root@kitploit:~
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    

    Sie werden möglicherweise aufgefordert, die Änderung der Ausführungsrichtlinie zu akzeptieren. Geben Sie in diesem Fall Y ein und drücken Sie die Eingabetaste, um zu akzeptieren.
    Weitere Informationen finden Sie unter Informationen zu Ausführungsrichtlinien

  • An diesem Punkt sollten Sie zunächst alle Repository-Dateien "entsperren", indem Sie ein Skript namens
    Scripts\Unblock-Project.ps1 ausführen. Übrigens wurden die Repository-Dateien von Windows blockiert, um zu verhindern, dass Benutzer nicht vertrauenswürdigen Skriptcode aus dem Internet ausführen:

    root@kitploit:~
    .\Scripts\Unblock-Project.ps1
    

    Wenn Sie gefragt werden, stellen Sie sicher, dass Ihre Antwort R ist, also [R] Einmal ausführen, so oft wie nötig, um das Projekt zu entsperren. (ca. bis zu 8 Mal)

  • Sobald die Repository-Dateien entsperrt sind, ändern Sie die Ausführungsrichtlinie auf RemoteSigned:

    root@kitploit:~
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
    

    Sie werden erneut aufgefordert, die Änderung der Ausführungsrichtlinie zu akzeptieren. Geben Sie Y ein und drücken Sie die Eingabetaste, um zu akzeptieren.

  • Regeln für Programme wie Ihren Webbrowser, Spiele usw. hängen von Installationsvariablen ab.
    Die meisten Pfade werden automatisch gesucht und Variablen werden transparent aktualisiert. Andernfalls erhalten Sie eine Warnung und eine Beschreibung, wie das Problem behoben werden kann.
    Bei Bedarf finden Sie diese Installationsvariablen in den einzelnen Skripten im Verzeichnis Rules.
    Es wird empfohlen, alle MMC-Verwaltungskonsolen wie gpedit.msc oder secpol.msc zu schließen, bevor Sie das Hauptskript im nächsten Schritt ausführen.

  • Zurück zur PowerShell-Konsole und führen Sie einen der beiden Deploy-Firewall-Befehle unten aus:

    Um die Firewall automatisch mit so wenigen Eingabeaufforderungen wie möglich bereitzustellen, führen Sie aus:

    root@kitploit:~
    .\Scripts\Deploy-Firewall.ps1 -Force
    

    Andernfalls, um interaktiv gefragt zu werden, welche Regeln geladen werden sollen, führen Sie aus:

    root@kitploit:~
    .\Scripts\Deploy-Firewall.ps1
    ```Drücken Sie die Eingabetaste und es werden Fragen gestellt, wie z.B. welche Art von Regelsätzen Sie möchten.\
    
  • Als Voraussetzung für die Bereitstellung der Firewall wurden einige Systemdienste gestartet und auf automatischen Start gesetzt. Im Verzeichnis Logs finden Sie Services_<DATUM>.log, um Ihnen bei Bedarf bei der Wiederherstellung dieser Dienste auf die Standardeinstellungen zu helfen.
    Zum Beispiel sollte der Dienst Windows Remote Management nicht ausgeführt werden, wenn er nicht benötigt wird (die Standardeinstellung ist "Manueller" Start)