Tento článek popisuje základy správy nastavení a pravidel integrovaného Windows Firewall z příkazového řádku PowerShell. Budeme se zabývat tím, jak povolit / zakázat bránu firewall pro různé profily, vytvářet a mazat pravidla brány firewall, a zvážit malý skript, který vám umožní vytvořit pohodlnou tabulku s aktuální sadou aktivních pravidel brány firewall.
Obsah:
- Správa síťových profilů brány Windows Firewall z prostředí PowerShell
- Vytvářejte, upravujte a odstraňujte pravidla brány firewall systému Windows z prostředí PowerShell
- Seznam pravidel brány firewall systému Windows pomocí prostředí PowerShell
Nastavení brány Windows Firewall můžete spravovat pomocí ovládacího panelu grafické konzoly -> Systém a zabezpečení -> Brána Windows Defender. Počínaje systémem Windows 8.1 (Windows Server 2012R2) byl však do systému přidán vestavěný modul PowerShell pro řízení vestavěné brány firewall Netsecurity.
Dříve se příkaz používal ke správě pravidel a nastavení brány Windows Firewallnetsh advfirewall firewall
. V modulu NetSecurity v systému Windows 10 je k dispozici 85 příkazů. Můžete je uvést:
Get-Command - Modul NetSecurity
Správa síťových profilů brány Windows Firewall z prostředí PowerShell
V bráně Windows Firewall jsou tři typy síťových profilů:
- Doména - vztahuje se na počítače zahrnuté do domény Active Directory;
- Soukromé (soukromé) - domácí nebo pracovní sítě;
- Veřejné - veřejné sítě.
Každý profil se může lišit v sadě použitých pravidel brány firewall. Ve výchozím nastavení jsou všechna síťová rozhraní počítače chráněna bránou firewall a na ně jsou aplikovány všechny tři typy profilů..
Chcete-li povolit všechny tři síťové profily Domain, Public a Private, použijte příkaz:
Set-NetFirewallProfile -All -Enabled True
Nebo zadejte konkrétní profil namísto Vše:
Set-NetFirewallProfile -Profile Public -Enabled True
Chcete-li vypnout bránu firewall pro všechny tři síťové profily, použijte příkaz:
Set-NetFirewallProfile - All -Enabled False
Použití rutiny Set-NetFirewallProfile
můžete změnit nastavení profilu (výchozí akce, protokolování, cesta a velikost souboru protokolu, nastavení upozornění atd.).
Jak asi víte, ve výchozím nastavení je brána Windows Firewall součástí moderních operačních systémů pro všechny profily. V nastavení profilu jsou povolena všechna odchozí připojení a příchozí připojení jsou blokována (s výjimkou povolených).
Změňte výchozí akci pro veřejný profil - zablokujte všechna příchozí připojení.
Set-NetFirewallProfile -Name Public -DefaultInboundAction Block
Aktuální nastavení profilu lze zobrazit následovně:
Get-NetFirewallProfile -Name Public
Pokud ovládáte nastavení brány Windows Firewall pomocí GPO, můžete aktuální výsledné nastavení profilu zobrazit takto:
Get-NetFirewallProfile -policystore activestore
Ověřte, že všechna nastavení brány firewall platí pro všechna síťová rozhraní počítače.
Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases
Pokud jsou všechna rozhraní chráněna, příkaz by se měl vrátit:
DisabledInterfaceAliases: NotConfigured
Můžete zakázat konkrétní profil rozhraní (názvy rozhraní můžete vypsat pomocí rutiny Get-NetIPInterface).
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
Jak vidíte, nyní se veřejný profil netýká Ethernet0:
DisabledInterfaceAliases: Ethernet0
Nastavení pro protokolování síťových připojení můžete nakonfigurovat na úrovni každého profilu. Ve výchozím nastavení jsou protokoly brány Windows Firewall ukládány do adresáře% systemroot% \ system32 \ LogFiles \ Firewall, velikost souboru je 4 MB. Můžete změnit povolení protokolování připojení a zvětšit maximální velikost souboru:
Set-NetFireWallProfile - Profilová doména -LogBlocked True -LogMaxSize 20000 -LogFileName '% systemroot% \ system32 \ LogFiles \ Firewall \ pfirewall.log'
Vytvářejte, upravujte a odstraňujte pravidla brány firewall systému Windows z prostředí PowerShell
Pro správu pravidel brány firewall existuje 9 cmdlet:
- New-NetFirewallRule
- Copy-NetFirewallRule
- Zakázat NetFirewallRule
- Enable-NetFirewallRule
- Get-NetFirewallRule
- Remove-NetFirewallRule
- Přejmenovat-NetFirewallRule
- Set-NetFirewallRule
- Show-NetFirewallRule
Podívejme se na několik jednoduchých příkladů otevírání portů v bráně Windows Firewall.
Pokud například chcete povolit příchozí připojení TCP na porty 80 a 443 pro profily domény a soukromé, použijte tento příkaz:
New-NetFirewallRule -DisplayName 'WEB-Inbound' -Profile @ ('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @ ('80', '443')
Můžete povolit nebo blokovat provoz konkrétního programu. Například chcete blokovat odchozí připojení pro FireFox:
New-NetFirewallRule -Program “C: \ Program Files (x86) \ Mozilla Firefox \ firefox.exe” -Action Block -Profile Domain, Private -DisplayName “Block Firefox” -Description “Block Firefox” -Direction Outbound
Povolit příchozí připojení RDP na portu 3389 pouze s jednou adresou IP:
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress 192.168.1.55 -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Chcete-li povolit ping pro adresy ze zadané podsítě, použijte příkazy:
$ ips = @ ("192.168.1.50-192.168.1.60", "192.165.2.22-192.168.2.200", "10.10.0.0/16")
New-NetFirewallRule -DisplayName "Povolit příchozí ICMPv4" - Přesměrování příchozí -Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ ips-Povolit povolení
New-NetFirewallRule -DisplayName "Povolit příchozí ICMPv6" - Přesměrování příchozí -Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ ips-Povolit povolení
Chcete-li upravit existující pravidlo brány firewall, použijte rutinu Set-NetFirewallRule. Chcete například povolit příchozí připojení ze zadané adresy IP pro dříve vytvořené pravidlo:
Get-NetFirewallrule -DisplayName 'WEB-Inbound' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.20
Potřebujete-li do pravidla brány firewall přidat několik adres IP, použijte následující skript:
$ ips = @ ("192.168.1.50", "192.165.2.22", "192.168.1.20")
Get-NetFirewallrule -DisplayName 'WEB-Inbound' | Set-NetFirewallRule -RemoteAddress $ ips
Vytiskněte všechny adresy IP obsažené v pravidlu brány firewall:
Get-NetFirewallrule -DisplayName 'Povolit příchozí ICMPv4' | Get-NetFirewallAddressFilter
Pravidla brány firewall můžete povolit / zakázat pomocí cmdletů Disable-NetFirewallRule a Enable-NetFirewallRule..
Disable-NetFirewallRule - DisplayName 'WEB-Inbound'
Chcete-li povolit ICMP (ping), spusťte příkaz:
Enable-NetFirewallRule - název FPS-ICMP4-ERQ-In
Chcete-li odebrat pravidlo brány firewall, použijte rutinu Remove-NetFirewallRule..
Seznam pravidel brány firewall systému Windows pomocí prostředí PowerShell
Seznam aktivních pravidel pro příchozí provoz lze zobrazit takto:
Get-NetFirewallRule | kde ($ _. enabled -eq $ True) - a ($ _. Direction -eq "Inbound") | ft
Pokud například potřebujeme vypsat seznam blokovacích odchozích pravidel:
Get-NetFirewallRule - Blok aukcí - Povoleno True - Odchozí směrování
Pokud chcete v pravidle zobrazit název programu:
Get-NetFirewallRule - Blok aukcí - Povoleno True - Odchozí směrování | % $ _. Jméno; $ _ | Get-NetFirewallApplicationFilter
Jak vidíte, rutina Get-NetFirewallRule neuvádí porty síťových portů a IP adres pro pravidla brány firewall. Chcete-li pohodlněji zobrazit všechny informace o povolených příchozích (odchozích) připojeních se zobrazenými čísly portů, použijte následující skript:
Get-NetFirewallRule - Povolit povolení - Povoleno True - Přesměrování příchozí |
Tabulka formátů - Název vlastnictví,
@ Name = 'Protocol'; Expression = ($ PSItem | Get-NetFirewallPortFilter) .Protocol,
@ Name = 'LocalPort'; Expression = ($ PSItem | Get-NetFirewallPortFilter) .LocalPort,
@ Name = 'RemotePort'; Expression = ($ PSItem | Get-NetFirewallPortFilter) .RemotePort,
@ Name = 'RemoteAddress'; Expression = ($ PSItem | Get-NetFirewallAddressFilter) .RemoteAddress,
Povoleno, Profil, Směr, Akce
PowerShell poskytuje rozsáhlou správu příkazového řádku pravidel brány firewall systému Windows. Pokud dojde k určitým událostem, můžete automaticky spouštět skripty PowerShell pro otevírání / zavírání portů. V dalším článku se budeme zabývat jednoduchým systémem založeným na PowerShell a Windows Firewall pro automatické blokování IP adres, ze kterých se na serveru Windows VDS provádí vzdálené hádání hesel pomocí RDP.