Feststellen, welche Windows-Firewall-Regel den Datenverkehr blockiert

12

Ich versuche, einen Computer einzurichten, der den gesamten eingehenden Datenverkehr akzeptiert, aber nur ausgehenden Datenverkehr zu einer bestimmten IP zulässt. Ich habe eine Allow All-Regel für eingehende und eine Allow-Regel festgelegt, die eine IP-Adresse als einzige zulässige ausgehende Adresse angibt. Ich habe auch eine Regel zum Verweigern aller ausgehenden Nachrichten eingerichtet, vorausgesetzt, die andere Regel hat Vorrang.

Das Problem, das ich habe, ist, dass der gesamte Datenverkehr blockiert wird, auch der Datenverkehr, der an die IP geht, die ich als zulässig angegeben habe.

Ich suche nach einer Möglichkeit, den Datenverkehr durch die Firewall zu verfolgen und genau festzustellen, welche Regel den Datenverkehr blockiert. Das von der Firewall-Überwachung generierte Protokoll gibt an, dass der Datenverkehr gelöscht wurde, nicht jedoch, welche Regel ihn blockiert hat.

Josh
quelle
Das wollte ich auch schon oft, aber die eingebaute Windows-Firewall hat in dieser Hinsicht anscheinend nicht viel zu bieten. Es würde mich interessieren, ob Sie eine Lösung für eine detailliertere Protokollierung finden.
David Woodward
Die Windows-Firewall soll Ihren PC wirklich vor dem Netzwerk schützen, nicht das Netzwerk vor Ihrem PC. Das Netzwerk sollte eine eigene Firewall haben, um es zu schützen.
Ron Maupin

Antworten:

18

(Hinweis: Dies gilt für Windows 7 und funktioniert möglicherweise nicht mit neueren Versionen.)

Die folgenden Schritte führen Sie zu der Regel, die Ihre Verbindung blockiert:

  • Öffnen Sie eine Windows-Konsole (mit Administratorrechten), um Befehle einzugeben
  • Aktivieren Sie die Prüfung für Windows Filtering Platform (WFP):
    • Führen Sie den Befehl aus:
      auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
    • Führen Sie den Befehl aus:
      auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
  • (Dies kann dazu führen, dass Sie in Ereignisprotokolldaten ertrinken. Wenn nur Fehlerüberprüfungen aktiviert werden und möglicherweise nur Verbindungsfehler auftreten, wird die Anzahl der Protokolleinträge verringert. Wählen Sie, was Sie tatsächlich benötigen.)
  • Reproduzieren Sie das Problem
  • Befehl ausführen: netsh wfp show state(Dadurch wird eine XML-Datei im aktuellen Ordner erstellt.)
  • Öffnen Sie die Ereignisanzeige: Ausführen ( Windows+ R)>eventvwr.msc
    • gehe zu "Windows Logs"> "Sicherheit"
    • Identifizieren Sie in der Liste das verworfene Paketprotokoll (Hinweis: Verwenden Sie die Suchfunktion im rechten Menü, um nach Elementen (Quell-IP, Ziel-Port usw.) zu suchen, die für Ihr Problem spezifisch sind.)
    • Scrollen Sie in den Protokolldetails nach unten und notieren Sie sich die Filter-ID, die zum Blockieren des Pakets verwendet wurde
  • Öffnen Sie die generierte XML-Datei:
    • Suchen Sie nach der angegebenen Filter-ID und überprüfen Sie den Regelnamen (Element "displayData> name" auf dem entsprechenden XML-Knoten).

Dies gibt Ihnen einen guten Start, um die Sperrregel zu finden.

Vergessen Sie nicht, das Audit auszuschalten, wenn Sie fertig sind:

  • Führen Sie den Befehl aus:
    auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:disable /failure:disable
  • Führen Sie den Befehl aus:
    auditpol /set /subcategory:"Filtering Platform Connection" /success:disable /failure:disable

Hinweis: Abhängig von Ihrer Windows-Spracheinstellung verwendet der Überwachungsdienst möglicherweise andere Namen als Englisch. Führen Sie zum Suchen der Unterkategorienamen den Befehl command: aus auditpol /get /category:*und suchen Sie nach Unterkategorien, die "Filtering Platform Packet Drop" und "Filtering Platform Connection" in der Systemsprache entsprechen.

Bob
quelle
1
Wenn Sie die Filterung ausgehender Nachrichten in der Windows-Firewall aktiviert haben, werden Sie auf diese Weise nicht weiter gebracht, da dann standardmäßig alle Programme ohne explizite Zulassungsregel blockiert werden. Daher wird Ihr Programm möglicherweise überhaupt nicht von einer Firewall-Regel blockiert.
Alexandru Dicu
2
Dies funktionierte mit Windows Server 2012 R2.
AresAvatar