Tento článok sa zaoberá základmi správy nastavení a pravidiel zabudovanej brány Windows Firewall z príkazového riadka PowerShell. Preskúmame, ako zapnúť alebo vypnúť bránu firewall pre rôzne profily, vytvoriť a odstrániť pravidlá brány firewall, a zvážime malý skript, ktorý vám umožní vytvoriť pohodlnú tabuľku s aktuálnym súborom aktívnych pravidiel brány firewall..
obsah:
- Správa sieťových profilov brány Windows Firewall z prostredia PowerShell
- Vytvárajte, upravujte a odstraňujte pravidlá brány Windows Firewall z prostredia PowerShell
- Zoznam pravidiel brány firewall systému Windows pomocou PowerShell
Nastavenia brány Windows Firewall môžete spravovať pomocou ovládacieho panela grafickej konzoly -> Systém a zabezpečenie -> Brána Windows Defender. Od systému Windows 8.1 (Windows Server 2012R2) bol však do systému pridaný vstavaný modul PowerShell na riadenie vstavanej brány firewall. NetSecurity.
Predtým príkaz slúžil na správu pravidiel a nastavení brány Windows Firewallnetsh advfirewall firewall
. V module NetSecurity v systéme Windows 10 je k dispozícii 85 príkazov. Môžete ich uviesť:
Get-Command - Modul NetSecurity
Správa sieťových profilov brány Windows Firewall z prostredia PowerShell
V bráne Windows Firewall sú tri typy sieťových profilov:
- Doména - týka sa počítačov zahrnutých do domény Active Directory;
- Súkromné (súkromné) - domáce alebo pracovné siete;
- Verejno - verejné siete.
Každý profil sa môže líšiť v použitej skupine pravidiel brány firewall. V predvolenom nastavení sú všetky sieťové rozhrania počítača chránené bránou firewall a na ne sa vzťahujú všetky tri typy profilov..
Ak chcete povoliť všetky tri sieťové profily Domain, Public a Private, použite príkaz:
Set-NetFirewallProfile -All -Enabled True
Alebo špecifikujte konkrétny profil namiesto všetkých:
Set-NetFirewallProfile -Profile Public -Enabled True
Ak chcete vypnúť bránu firewall pre všetky tri sieťové profily, použite príkaz:
Set-NetFirewallProfile -All -Enabled False
Používanie rutiny Set-NetFirewallProfile
môžete zmeniť nastavenia profilu (predvolená akcia, protokolovanie, cesta a veľkosť súboru denníka, nastavenia upozornení atď.).
Ako pravdepodobne viete, v predvolenom nastavení je brána Windows Firewall súčasťou moderných operačných systémov pre všetky profily. V nastaveniach profilu sú povolené všetky odchádzajúce spojenia a prichádzajúce spojenia sú blokované (okrem povolených).
Zmeňte predvolenú akciu pre verejný profil - zablokujte všetky prichádzajúce pripojenia.
Set-NetFirewallProfile -Name Public -DefaultInboundAction Block
Aktuálne nastavenia profilu je možné zobraziť nasledovne:
Get-NetFirewallProfile -Name Public
Ak ovládate nastavenia brány Windows Firewall prostredníctvom objektu GPO, môžete zobraziť aktuálne výsledné nastavenia profilu takto:
Get-NetFirewallProfile -policystore Activestore
Overte, či sa všetky nastavenia brány firewall vzťahujú na všetky sieťové rozhrania počítača.
Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases
Ak sú všetky rozhrania chránené, príkaz by sa mal vrátiť:
DisabledInterfaceAliases: NotConfigured
Môžete zakázať konkrétny profil rozhrania (názvy rozhraní môžete vypísať pomocou rutiny Get-NetIPInterface).
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
Ako vidíte, verejný profil sa teraz nevzťahuje na Ethernet0:
DisabledInterfaceAliases: Ethernet0
Nastavenia pre protokolovanie sieťových pripojení môžete nakonfigurovať na úrovni každého profilu. Protokoly brány Windows Firewall sú predvolene uložené v adresári% systemroot% \ system32 \ LogFiles \ Firewall, veľkosť súboru je 4 MB. Môžete zmeniť zapnutie protokolovania pripojenia a zvýšiť maximálnu veľkosť súboru:
Set-NetFireWallProfile - Profilová doména -LogBlocked True -LogMaxSize 20000 -LogFileName '% systemroot% \ system32 \ LogFiles \ Firewall \ pfirewall.log'
Vytvárajte, upravujte a odstraňujte pravidlá brány Windows Firewall z prostredia PowerShell
Na správu pravidiel brány firewall existuje 9 cmdlet:
- New-NetFirewallRule
- Copy-NetFirewallRule
- zakázať NetFirewallRule
- Enable-NetFirewallRule
- Get-NetFirewallRule
- Remove-NetFirewallRule
- premenovanie NetFirewallRule
- Set-NetFirewallRule
- Show-NetFirewallRule
Pozrime sa na niekoľko jednoduchých príkladov otvorenia portov v bráne Windows Firewall.
Napríklad, ak chcete povoliť prichádzajúce pripojenia TCP na porty 80 a 443 pre profily domény a súkromné, použite tento príkaz:
New-NetFirewallRule -DisplayName 'WEB-Inbound' -Profile @ ('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @ ('80', '443')
Môžete povoliť alebo zablokovať prenos pre konkrétny program. Napríklad chcete blokovať odchádzajúce pripojenia pre 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
Povoliť prichádzajúce pripojenie RDP na porte 3389 iba s jednou adresou IP:
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress 192.168.1.55 -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Ak chcete povoliť ping pre adresy zo zadanej podsiete, použite prí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 "Povoliť prichádzajúce ICMPv4" - Presmerované prichádzajúce - Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ ips - Povolené povolenie
New-NetFirewallRule -DisplayName "Povoliť prichádzajúce ICMPv6" - Presmerované prichádzajúce - Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ ips - Povolené povolenie
Ak chcete upraviť existujúce pravidlo brány firewall, použite rutinu Set-NetFirewallRule. Napríklad chcete povoliť prichádzajúce pripojenia zo zadanej adresy IP pre predtým vytvorené pravidlo:
Get-NetFirewallrule -DisplayName 'WEB-Inbound' |. Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.20
Ak potrebujete do pravidla brány firewall pridať niekoľko adries IP, použite nasledujúci skript:
$ ips = @ ("192.168.1.50", "192.165.2.22", "192.168.1.20")
Get-NetFirewallrule -DisplayName 'WEB-Inbound' | Set-NetFirewallRule -RemoteAddress $ ips
Vytlačte všetky adresy IP obsiahnuté v pravidle brány firewall:
Get-NetFirewallrule -DisplayName 'Povoliť prichádzajúci ICMPv4' | Get-NetFirewallAddressFilter
Pravidlá brány firewall môžete povoliť alebo zakázať pomocou cmdletov Disable-NetFirewallRule a Enable-NetFirewallRule..
Disable-NetFirewallRule - DisplayName 'WEB-Inbound'
Ak chcete povoliť ICMP (ping), spustite príkaz:
Enable-NetFirewallRule - meno FPS-ICMP4-ERQ-In
Na odstránenie pravidla brány firewall použite cmdlet Remove-NetFirewallRule..
Zoznam pravidiel brány firewall systému Windows pomocou PowerShell
Zoznam aktívnych pravidiel pre prichádzajúcu komunikáciu je možné zobraziť nasledovne:
Get-NetFirewallRule | kde ($ _. enabled -eq $ True) - a ($ _. Direction -eq "Inbound") | ft
Ak napríklad potrebujeme uviesť zoznam blokujúcich odchádzajúcich pravidiel:
Get-NetFirewallRule - Blok aukcií - Povolené True - Výstup smerujúci
Ak chcete zobraziť názov programu v pravidle:
Get-NetFirewallRule - Blok aukcií - Povolené True - Odchádzajúce smerovanie | % $ _. Meno; $ _ | Get-NetFirewallApplicationFilter
Ako vidíte, cmdlet Get-NetFirewallRule neobsahuje zoznam sieťových portov a IP adries pre pravidlá brány firewall. Ak chcete pohodlnejšie zobraziť všetky informácie o povolených prichádzajúcich (odchádzajúcich) pripojeniach so zobrazenými číslami portov, použite nasledujúci skript:
Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Tabuľka formátu - názov vlastníctva,
@ 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,
Povolené, profil, smer, akcia
PowerShell poskytuje rozsiahlu správu príkazového riadku pravidiel brány firewall systému Windows. Pri výskyte určitých udalostí môžete automaticky spustiť skripty PowerShell na otváranie / zatváranie portov. V nasledujúcom článku sa budeme zaoberať jednoduchým systémom založeným na serveroch PowerShell a Windows Firewall na automatické blokovanie adries IP, z ktorých sa na serveri Windows VDS vykonáva diaľkové hádanie hesiel prostredníctvom protokolu RDP..