thor68
Goto Top

Windows Firewall. Anweisung mit Ausschluss

Angenommen, auf dem Windows Server im Rechenzentrum tritt ein Problem auf und man möchte sämtliche IPs und Ports außer die eigene IP blockieren.

Das habe ich versucht, bin aber gescheitert.

Ist es nicht möglich eine Anweisung hinzuzufügen, die eine Art Ausschluss enthält?

Beispielsweise so:

netsh advfirewall firewall add rule name="_meineAnweisung" dir=in action=block protocol=any remoteip=any except=123.123.123.123 enable=yes

Gruß Thor

Content-ID: 671155

Url: https://administrator.de/forum/windows-firewall-anweisung-mit-ausschluss-671155.html

Ausgedruckt am: 12.03.2025 um 11:03 Uhr

151434
151434 05.02.2025 aktualisiert um 22:59:53 Uhr
Goto Top
Mehrere Wege führen nach Rom:

  • Richtige Firewall oder VPN vorschalten wäre wohl das sinnvollste, bei nem Winblows mit nacktem A... im Netz eh anzuraten.
  • Alles Blocken und ne IPSec Rule für den Zugriff nutzen die setzen noch vor den generellen Blocks an, Stichwort OverrideBlockRules
  • Ansonsten, eine Allow-Regel für deine IP erstellen und sämtliche anderen aktivierten Allow-Regeln deaktivieren, denn der Default ist ja Block.
  • Oder https://tinywall.pados.hu/ nutzen welche den Umgang mit der FW etwas vereinfacht.
DivideByZero
DivideByZero 05.02.2025 um 22:56:10 Uhr
Goto Top
Es läuft doch genau umgekehrt, sofern richtig eingestellt.
Sprich: alles ist gesperrt, bis auf das, was Du zulässt. Also im Grunde dafür sorgen, dass Deine IP mit einer Regel freigeschaltet ist und dann alle anderen Regeln entfernen/Deaktivieren.
thor68
thor68 05.02.2025 um 23:23:45 Uhr
Goto Top
Hi! Ja, alles ist normalerweise gesperrt, bis auf das, was ich zulasse oder bereits zugelassen worden ist.

Es schein wohl keine einfache Anweisung zu geben, die das in einem macht. Mit zwei Anweisungen habe ich es bereits probiert, werde aber umgehend selbst geblockt. Alles von Hand zu deaktivieren, ist eine manuelle Lösung. Womöglich lässt sich das auch automatisiert realiesieren. Das scheint wohl auch der einzige Weg zu sein. Oder Regeln automatisiert exportieren, alle Anweisungen löschen (der Admin fliegt erstmal raus) und eine Freigabe setzen. Ist das Problem am Server behoben, die alten Regeln wieder überschreibend importieren - fertig!

Es gibt also tatsächlich keine Anweisungen, die mir das erspart, oder?

Gruß Thor
thor68
thor68 05.02.2025 um 23:28:06 Uhr
Goto Top
Dass mit VPN müsste ich mir mal anschauen.

Doofe Frage: Wenn ich VPN nutze, hätte ich dann mit den Regeln der Firewall nichts am Hut?

Gruß Thor
DivideByZero
DivideByZero 06.02.2025 um 01:06:16 Uhr
Goto Top
Doch, natürlich, aber es greifen nurdie Regeln für das LAN, nicht für das öffentliche Netz
151434
151434 06.02.2025 aktualisiert um 07:46:46 Uhr
Goto Top
Doofe Frage: Wenn ich VPN nutze, hätte ich dann mit den Regeln der Firewall nichts am Hut?
Doch sicher, aber nach außen ins Netz hast du dann ausschließlich den VPN Port für deine feste IP offen, intern kannst du ja Regeln fürs VPN-Subnetz freizügiger definieren.

Es gibt also tatsächlich keine Anweisungen, die mir das erspart, oder?
Doch, einfach nen Powershell-Skript schreiben was die entsprechend offenen Dienste/Ports deaktiviert.
ThePinky777
ThePinky777 07.02.2025 aktualisiert um 09:48:05 Uhr
Goto Top
Regelreihenfolge beachten, deine neue Regel kommt wohl hinten hin, dann greifen vorne die regeln welche bereits blocken. Du musst deine neue Regel mit deiner IP >> Zugriff auf Any >> Dienste Any vorne hin stellen dann klappts auch.

Und dann als zweite regel stellst du ein dahintert:
ANY IP >> ANY IP >> ANY Dienst Block.

es ist wichtig die reihenfolge bei solchen regeln in betracht zu ziehen.

über was für eine Firewall reden wir hier den ? Windows Client lokale Firewall oder Hardware Firewall im Netzwerk?
151434
151434 07.02.2025 aktualisiert um 09:51:07 Uhr
Goto Top
Zitat von @ThePinky777:

Regelreihenfolge beachten, deine neue Regel kommt wohl hinten hin, dann greifen vorne die regeln welche bereits blocken. Du musst deine neue Regel mit deiner IP >> Zugriff auf Any >> Dienste Any vorne hin stellen dann klappts auch.

Und dann als zweite regel stellst du ein dahintert:
ANY IP >> ANY IP >> ANY Dienst Block.

es ist wichtig die reihenfolge bei solchen regeln in betracht zu ziehen.

Die Windows Firewall kennt keine Reihenfolge der einzelnen Regeln untereinander , du kannst diese dort nicht verschieben/priorisieren.
Windows arbeitet stur erst die IPSec Rules dann die Block-Regeln dann erst die Allow-Regeln und am Ende die Default-Regel ab. First match wins that's it.
Order of Windows Firewall with Advanced Security Rules Evaluation
ThePinky777
ThePinky777 07.02.2025 um 09:50:44 Uhr
Goto Top
habt ihr keine hardware firewall im Einsatz?
Wenn ja, dann Netzwerk Umbauen verschiedene VLANs
Und dann über Hardware Firewall Zugriffe Managen.
thor68
thor68 07.02.2025 um 12:11:29 Uhr
Goto Top
Hallo zusammen,

ich habe das Problem jetzt wie folgt gelöst:

Systeminitialisierung und Lockdown:

Mit Hilfe von PHP generiere ich dynamisch eine "lockdown.bat", die die aktuellen Firewall-Regeln auf dem Server exportiert. Anschließend wird ein Reset der Firewall durchgeführt, wodurch der Administrator – sofern er gerade angemeldet ist – aus der Sitzung abgemeldet wird. Gleichzeitig fügt das System eine spezielle Ausnahmeregel in die Firewall ein, sodass der Administrator sich anschließend erneut anmelden kann. Nach Abschluss der Wartungsarbeiten startet ein Skript, das die zuvor exportierten Regeln wieder importiert.

Warum das Ganze?

Ich habe ein PHP-Skript entwickelt, das den Datenverkehr der Netzwerkkarte in Echtzeit mitschneidet und analysiert – mit dem Ziel, Angriffe frühzeitig zu erkennen und im Keim zu ersticken. Derzeit laufen 12 parallele Prozesse, die den Netzwerkverkehr aus unterschiedlichen Perspektiven heraus überwachen.

Einige Details im Überblick:

Service-Überwachung:
Mithilfe des Tools "netstat" ermittelt das System, welche Services und Netzwerk-Dienste aktiv sind. Bei jedem Durchlauf werden aus diesen Prozessen digitale Fingerabdrücke (Hash-Werte) erzeugt und mit den zuvor gespeicherten Werten verglichen. Weicht ein Hash-Wert von der bekannten Version ab, wird die betreffende Datei – gegebenenfalls zusammen mit weiteren relevanten Dateien – in der Datenbank für eine weiterführende Analyse abgelegt. Dies löst den beschriebenen Lockdown aus.

Kompromittierungsprüfung:
Verändert sich ein Hash, könnte dies entweder auf eine Kompromittierung oder auf ein legitimes Update hindeuten. Um hier Gewissheit zu erlangen, sorgen 20 zusätzliche, unabhängige Prozesse dafür, dass jede veränderte Datei mittels ClamAV auf Schadsoftware überprüft wird. Liegen keine Hinweise auf eine Kompromittierung vor, werden die neuen Hash-Werte in der Datenbank aktualisiert und der Lockdown automatisch aufgehoben. Andernfalls erhält der Administrator eine Benachrichtigung per E-Mail auf sein Mobilgerät und muss die potenziell kompromittierten Dateien manuell überprüfen.

Langzeitüberwachung:
Nach einer Beobachtungsphase von mehreren Tagen protokolliert das Skript, welche Services aufgerufen werden – inklusive eines Zählwerks – in einer Datenbank. Anschließend können die Services ausgewählt werden, die weiterhin aktiv bleiben dürfen. Sollte ein unbekanntes Programm zur unpassenden Zeit gestartet werden, blockiert das System den entsprechenden Datenverkehr, indem es die IP-Adresse des Aufrufers in die Firewall aufnimmt.

Weiterführende Sicherheitsmaßnahmen:

Dies ist nur ein kleiner Einblick in mein umfangreiches Projekt. Neben der Netzwerküberwachung werden parallel zahlreiche Prozesse ausgeführt, die sich auch mit Logdateien des Apache Webservers, Windows-Ereignissen, MySQL und weiteren Systemkomponenten befassen. Auf diese Weise werden sämtliche Kompromittierungsversuche frühzeitig erkannt und unterbunden.

Besonders hervorzuheben ist die Echtzeitanalyse des Datenverkehrs. Hacker nutzen verschiedenste Methoden, um das System zu scannen und Angriffe vorzubereiten. Innerhalb kürzester Zeit (Wimpernschlag oder unterhalb von zwei Sekunden) erfassen die Skripte Aktivitäten, die im normalen Betrieb nicht auftreten – etwa den Versuch, Ports zu adressieren, die gar nicht zur Verfügung stehen. Zusätzlich werden IP-Verwandtschaften berücksichtigt, sodass auch Adressen, die im Zusammenhang mit bereits blockierten IPs stehen, automatisch erfasst werden. Geodaten und Informationen über die jeweilige Organisation fließen dabei mit ein, sodass beispielsweise die Herkunft eines Zugriffs – etwa der Kontinent oder das Land – als zusätzlicher Parameter in die Entscheidungsfindung einbezogen werden kann.

Mein Skript schaltet OPNsense vor und kümmert sich ums Übersehene. Ich hoffe, Netzwerke damit ein Stück sicherer gestalten zu können. Um den Rahmen nicht zu sprengen, habe ich viele Dinge wie Signaturen, Anlyse der TCP-Flags nicht erwähnt.

Bei Rückfragen oder wenn sich jemand inspirierend austauschen möchten, stehe ich gern zur Verfügung.

Viele Grüße

Thor
thor68
thor68 07.02.2025 um 12:17:49 Uhr
Goto Top
Ja, das mit der Reihenfolge habe ich gelesen. Aber irgendwie scheint das nicht zu funtionieren.

Es gibt ja einige Rules die etwas erlauben. Wenn ich nun einer weitere hinzufüge und dann schreibe, dass alles verboten ist, frage ich mich, warum nur ausgerechnet jene darüber erlaubt sein soll und die älteren nicht mehr.

Wenn ich so, wie du es beschrieben hast, meine Freigabe setze und danach alles verbiete, fliege ich raus und komme nicht mehr auf den Remote Desktop.

Deshalb habe ich das jetzt so, wie im langen Text beschrieben, gelöst. Später möchte ich die Firewall von opnSense nutzen. Ich hoffe, die ist besser. Sie muss sich allerdings über das CMD administrieren lassen, damit ich Veränderungen mittels PHP dynamisch durchführen kann.
thor68
thor68 07.02.2025 um 12:34:45 Uhr
Goto Top
Ja, mein Script packe ich auf eine Barebone i5 mit 8 Kernen und 32 GB RAM. Das System möchte ich so gestalten:

1. Windows Server 2019 Datacenter (ggf. neuer)
2. HyperV mit opnSense
3. HyperV mit WAMP64 (womöglich nicht ideal, aber das ist halt meine Welt!)

Die Barebone möchte ich testweise nach einer Fritzbox platzieren und dann den Verkehr über viele Tage hinweg erstmal nur beobachten und simuliert blockieren ohne das eigentliche Netzwerk zu stören.

Es befindet sich alles noch in der Projektphase. Bevor es produktiv eingesetzt wird, möchte ich noch Expertise einholen. Schon spät, aber nicht zu spät. Wenn es mal in einem großen Unternehmen eingesetzt wird, kommen sicherlich noch zahlreiche Herausforderungen auf mich zu. Mit dem Ziel möglichst alles abzudecken, müsste ich auch Logfiles von Telefonen und Lagersystemen auslesen. Das ist eine ziemlich individuelle Sache, zu der ich wohl noch viele Scripte schreiben muss, die das in Echtzeit erledigen. Ich habe einen langen Atem. Um aber einen baldigen Start realisieren zu können, muss ich in Sachen Entwicklung die Handbremse ziehen und dies auf spätere Updates verteilen. Mit opnSense würde man dem Kunden ja schon ein etabliertes System liefern und das eigene als die Krone draufsetzen.
thor68
thor68 07.02.2025 um 12:36:43 Uhr
Goto Top
Okay, sorry, überlesen. Habe ich mir gedacht, dass das mit der Reihenfolge also gar nicht stimmt.