💻 Zarządzanie Firewallem Windows 12 przez PowerShell: Automatyzacja bezpieczeństwa
W erze dynamicznych zagrożeń cybernetycznych administratorzy i specjaliści ds. bezpieczeństwa muszą działać szybko, precyzyjnie i na dużą skalę. Firewall w Windows 12, wyposażony w nowoczesne funkcje zarządzania, może być w pełni konfigurowany i monitorowany za pomocą PowerShell – potężnego narzędzia do automatyzacji.
Ten artykuł stanowi kompletny przewodnik po zarządzaniu Firewallem Windows 12 przez PowerShell, ze szczególnym uwzględnieniem tworzenia reguł, eksportu konfiguracji, filtrowania ruchu, inspekcji oraz zautomatyzowanej reakcji na incydenty.
🔍 Dlaczego PowerShell do zarządzania zaporą?
Zalety:
- ✅ Automatyzacja i masowe wdrażanie reguł
- ✅ Precyzyjna kontrola nad konfiguracją
- ✅ Integracja z innymi narzędziami bezpieczeństwa
- ✅ Możliwość eksportu, audytu i backupu ustawień
- ✅ Dynamiczne reguły reagujące na incydenty
➡️ PowerShell pozwala nie tylko zarządzać zaporą, ale tworzyć scenariusze reakcji bezpieczeństwa (SOAR) w czasie rzeczywistym.

🧰 Moduł PowerShell do zarządzania zaporą – NetSecurity
System Windows 12 zawiera wbudowany moduł NetSecurity, który umożliwia pełne zarządzanie zaporą.
📦 Aby załadować moduł:
Import-Module NetSecurity
📘 Podstawowe cmdlety:
Get-NetFirewallRuleNew-NetFirewallRuleSet-NetFirewallRuleRemove-NetFirewallRuleGet-NetFirewallProfileSet-NetFirewallProfile
⚙️ Praktyczne zarządzanie: konfiguracja i inspekcja
🔧 Sprawdzenie statusu zapory
Get-NetFirewallProfile
📊 Otrzymasz stan zapory dla profili:
- Domain
- Private
- Public
🔧 Włączenie zapory dla wszystkich profili
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True
🔎 Wyszukiwanie istniejących reguł
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*RDP*"}
🛡️ Tworzenie nowej reguły
New-NetFirewallRule -DisplayName "Blokuj UDP 1900" -Direction Inbound -Protocol UDP -LocalPort 1900 -Action Block
📌 Przykład: ochrona przed atakiem typu SSDP Amplification
🔐 Reguła dla konkretnej aplikacji
New-NetFirewallRule -DisplayName "Zezwól dla Firefox" -Program "C:\Program Files\Mozilla Firefox\firefox.exe" -Action Allow -Direction Outbound
🧠 Reguła dla zakresu IP
New-NetFirewallRule -DisplayName "Blokuj podejrzane IP" -RemoteAddress "203.0.113.0/24" -Action Block -Direction Inbound
📤 Eksport, backup i import konfiguracji
Zarządzanie konfiguracją zapory na wielu maszynach wymaga mechanizmów backupu i przywracania.
📦 Eksport konfiguracji
Export-WindowsFirewallRules -Path "C:\Backup\FirewallRules.wfw"
lub ręcznie:
netsh advfirewall export "C:\Backup\Zapora.wfw"
♻️ Import konfiguracji
netsh advfirewall import "C:\Backup\Zapora.wfw"
🔄 Dynamiczna reakcja na incydenty
📡 Reakcja na wykrycie zagrożenia – przykład
Jeśli system SIEM lub Defender wykryje podejrzane IP:
$ip = "45.33.32.156"
New-NetFirewallRule -DisplayName "Blokuj IP incydent" -Direction Inbound -RemoteAddress $ip -Action Block
🧠 Można zintegrować z Power Automate lub Logic Apps dla automatycznej reakcji na alerty.
🚫 Zablokowanie połączeń PowerShell do Internetu
New-NetFirewallRule -DisplayName "Blokuj PowerShell do sieci" -Program "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Direction Outbound -Action Block
🛡️ Chroni przed fileless malware i atakami klasy Living Off the Land (LOLBins).
🧪 Audyt i monitorowanie aktywności zapory
📃 Przegląd reguł aktywnych
Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True"}
📄 Logowanie zdarzeń zapory
Set-NetFirewallProfile -LogBlocked True -LogAllowed True -LogFileName "C:\Logs\firewall.log" -LogMaxSizeKilobytes 65536
🔍 Dzienniki pfirewall.log można dalej analizować automatycznie (np. z Sysmon, Logstash, Graylog, Sentinel)
🧱 Automatyzacja wdrożeń w środowiskach firmowych
🧩 Scenariusz: masowe wdrażanie reguł w organizacji
- Przygotowanie skryptu z regułami PowerShell
- Dystrybucja przez GPO lub Intune
- Rejestracja aktywności zapory w centralnym repozytorium (np. SIEM)
- Audyt za pomocą
Get-NetFirewallRule+Out-GridViewlub eksport CSV
📦 Przykładowy szablon do masowego wdrożenia:
$rules = @(
@{Name="Blokuj port 135"; Port=135; Protocol="TCP"},
@{Name="Blokuj UDP 1900"; Port=1900; Protocol="UDP"},
@{Name="Zezwól HTTPS"; Port=443; Protocol="TCP"; Action="Allow"}
)
foreach ($r in $rules) {
New-NetFirewallRule -DisplayName $r.Name -Direction Inbound -LocalPort $r.Port -Protocol $r.Protocol -Action ($r.Action ?? "Block")
}
🧠 Zaawansowane techniki: skanowanie, identyfikacja, reagowanie
📡 Wykrywanie otwartych portów
Test-NetConnection -ComputerName 192.168.1.1 -Port 3389
🔍 Weryfikacja stanu połączeń i portów
Get-NetTCPConnection | Where-Object {$_.State -eq "Established"}
📬 Lista aplikacji z aktywnym ruchem sieciowym
Get-NetTCPConnection | Select-Object -Property LocalAddress,LocalPort,RemoteAddress,OwningProcess |
ForEach-Object { $_.OwningProcess; (Get-Process -Id $_.OwningProcess).Name }
🔐 Najlepsze praktyki zarządzania zaporą przez PowerShell
✅ Włącz logowanie i eksport logów
✅ Twórz reguły kontekstowe: aplikacja + port + IP
✅ Automatyzuj reguły na podstawie alertów EDR/SIEM
✅ Regularnie audytuj aktywne reguły
✅ Twórz i testuj skrypty przed wdrożeniem
✅ Dokumentuj każdą regułę (opis, kategoria, cel)
✅ Integruj PowerShell z narzędziami CI/CD lub Ansible/SCCM
📌 Podsumowanie
Zarządzanie Firewallem Windows 12 przez PowerShell: Automatyzacja bezpieczeństwa to kluczowy element nowoczesnego podejścia do cyberochrony.
Dzięki PowerShell zyskujesz nie tylko dostęp do pełnej funkcjonalności zapory, ale możliwość tworzenia adaptacyjnych, reaktywnych, a nawet predykcyjnych systemów ochrony, które działają szybciej niż człowiek i skuteczniej niż statyczne GUI.
PowerShell to język operacyjny bezpieczeństwa Windows – a Firewall to jego miecz i tarcza.






