Eingehende Regel der Windows-Firewall - Powershell-Skript

516
Sam.92

Ich versuche, ein PS-Skript zu erstellen, das eine Windows-Firewall-Regel erstellt, die den Port "6672" für eine bestimmte EXE-Datei auf einer EINGEBUNDEN-Verbindung blockiert, mir aber die Möglichkeit gibt, bestimmte IP-Adressen in die Whitelist aufzunehmen.

Die manuelle Vorgehensweise bedeutet, dass ich den Port (6672) für meine .exe-Datei vollständig auf ALLE IP-Adressen sperren muss. Dann muss ein Bereich hinzugefügt werden, wobei die IP-Adressen, die ich auf die Positivliste setzen möchte, weggelassen werden.

Wenn ich beispielsweise "192.168.0.3" hinzufügen möchte, muss ich einen Regelbereich für "0.0.0.0" auf "192.168.0.2" festlegen, dann einen weiteren für "192.168.0.4" auf "255.255.255.255". Der Grund, warum ich es tun muss, war, dass es in der Windows-Firewall so aussieht, als könnten Sie keine einzelnen IPs von einer Blockierungsregel auflisten und Blockierungsregeln überschreiben alle Erlaubnisregeln.

Zurück zu meinem ursprünglichen Punkt, ich kämpfe wirklich nach Ideen, wie ich das im Moment lösen kann, da ich keine Problemumgehung finde. Gibt es eine Möglichkeit, dass jemand weiß, bestimmte IPs von einer Regel ausschließen zu können oder wie eine Zulassungsregel einer Blockierregel vorgezogen werden kann?

BEARBEITEN

Also habe ich diesen Code:

New-NetFirewallRule -DisplayName "GTAO" -Direction Inbound -LocalPort 6672 -Protocol UDP -Action Block New-NetFirewallRule -DisplayName "GTAO" -Direction Outbound -LocalPort 6672 -Protocol UDP -Action Block 

Im Grunde möchte ich so etwas wie die vorherige Regel außer Kraft setzen, indem eine "Whitelist" für diese Regel für einzelne IPs erstellt wird

$UIP = Read-Host "Enter IP to whitelist" New-NetFirewallRule -DisplayName "GTA$UIP" -Direction Inbound -LocalPort 6672 -Protocol UDP -Action Allow -RemoteAddress $UIP 
0

1 Antwort auf die Frage

0
postanote

Dies ist kein PS-spezifisches Problem, sondern ein "Wie mache ich WF X oder Y, für das es nicht vorgesehen ist".

Sehr ähnlich dieser Diskussion und den Vorschlägen, von denen Sie einige bereits angedeutet haben.

So machen Sie eine Ausnahme zu einer ausgehenden Windows-Firewall-Regel

So machen Sie eine Ausnahme zu einer ausgehenden Windows-Firewall-Regel

Gemäß der Windows-Firewall-Dokumentation haben Blockierungsregeln immer Vorrang vor Erlaubnisregeln. Selbst wenn Ihre Erlaubnisregel spezifischer aussieht als eine Blockierungsregel, funktioniert die Erlaubnisregel nicht und der Datenverkehr, der sowohl Erlaubnis- als auch Blockierungsregeln erfüllt, wird blockiert. Die Option "Diese Firewall-Regel darf Blockierregeln außer Kraft setzen" ist nur für Regeln verfügbar, für die IPSec erforderlich ist, und nicht für ausgehende Regeln.

Das einzige, was Sie mit der Windows-Firewall tun können, um etwas zu erreichen, was dem Bedarf nahe kommt, besteht darin, das Standardverhalten für ausgehende Verbindungen auf "Blockieren" zu ändern und dann explizite Erlaubnisregeln für alle ausgehenden Verbindungen hinzuzufügen, die Sie benötigen (nicht nur für dieses einzelne Programm) ). Alternativ können Sie nach Firewall-Software von Drittanbietern mit mehr Funktionen suchen.

... Sie können die obige Regel auch für ein einzelnes Programm erstellen. Legen Sie einfach die Regel für ein Programm fest, nicht für alle Programme.

Sie richten also zwei oder mehr Regeln ein (je nachdem, wie viele IP-Adressen Sie zulassen möchten) und blockieren alle anderen. also zum beispiel wenn du nur zulassen möchtest

10.10.10.10

und

20.20.20.20

Sie haben Regeln aufgestellt:

Block von 0.0.0.0 bis 10.10.10.9 und 10.10.10.11 bis 20.20.20.19 und 20.20.20.21 bis 255.255.255.255

Das macht eigentlich viel Sinn. Oh man, jetzt muss ich mir überlegen, wie man die IP-Bereiche als variablen Ausgang erhält ... Regex hier kommen wir! xD Sam.92 vor 5 Jahren 0