Ta članek zajema osnove upravljanja nastavitev in pravil vgrajenega požarnega zidu Windows iz ukazne vrstice PowerShell. Ogledali si bomo, kako omogočiti / onemogočiti požarni zid za različne profile, ustvariti in izbrisati pravila požarnega zidu ter razmislili o majhnem skriptu, ki vam omogoča, da ustvarite priročno tabelo s trenutnim naborom pravil o požarnem zidu..
Vsebina:
- Upravljanje omrežnih profilov sistema Windows Firewall iz PowerShell-a
- Ustvarite, uredite in izbrišite pravila požarnega zidu Windows iz PowerShell-a
- Vnos pravilnikov požarnega zidu Windows prek PowerShell-a
Nastavitve požarnega zidu Windows lahko upravljate z nadzorne plošče grafične konzole -> Sistem in varnost -> Požarni zid Windows Defender. Vendar pa je od sistema Windows 8.1 (Windows Server 2012R2) v sistem dodan vgrajen modul PowerShell za nadzor nad vgrajenim požarnim zidom Netovarnost.
Prej je bil ukaz uporabljen za upravljanje pravil in nastavitev požarnega zidu Windowsnetsh požarni zid advfirewall
. V modulu NetSecurity v sistemu Windows 10 je na voljo 85 ukazov. Naštejete jih lahko:
Get-Command -Module NetSecurity
Upravljanje omrežnih profilov sistema Windows Firewall iz PowerShell-a
V požarnem zidu Windows obstajajo tri vrste omrežnih profilov:
- Domena - velja za računalnike, ki so vključeni v domeno Active Directory;
- Zasebno (zasebno) - domače ali delovno omrežje;
- Javno - javne mreže.
Vsak profil se lahko razlikuje v naboru uporabljenih pravil požarnega zidu. Privzeto so vsi omrežni vmesniki računalnika zaščiteni s požarnim zidom in nanje so uporabljene vse tri vrste profilov..
Če želite omogočiti vse tri omrežne profile Domena, javni in zasebni, uporabite ukaz:
Set-NetFirewallProfile -All -Enabled True
Ali pa določite določen profil namesto Vsi:
Set-NetFirewallProfile -Profile Javni -Anabled True
Če želite onemogočiti požarni zid za vse tri omrežne profile, uporabite ukaz:
Set-NetFirewallProfile -All -Enabled False
Uporaba cmdlet Set-NetFirewallProfile
lahko spremenite nastavitve profila (privzeto dejanje, beleženje, pot in velikost datoteke dnevnika, nastavitve opozoril itd.).
Kot verjetno veste, je požarni zid Windows privzeto vključen v sodobne operacijske sisteme za vse profile. V nastavitvah profila so dovoljene vse odhodne povezave, dohodne povezave pa so blokirane (razen tistih, ki so dovoljene).
Spremenite privzeto dejanje za javni profil - blokirajte vse dohodne povezave.
Set-NetFirewallProfile -Name Public -DefaultInboundAction Block
Trenutne nastavitve profila so lahko prikazane na naslednji način:
Get-NetFirewallProfile -Name Javno
Če nadzorujete nastavitve požarnega zidu Windows prek GPO, lahko trenutno prikazane nastavitve profila prikažete na naslednji način:
Get-NetFirewallProfile -policystore activestore
Preverite, ali vse nastavitve požarnega zidu veljajo za vse omrežne vmesnike računalnika.
Get-NetFirewallProfile -Name Javno | fl DisabledInterfaceAliases
Če so vsi vmesniki zaščiteni, naj ukaz vrne:
DisabledInterfaceAliases: NotConfigured
Za vmesnik lahko onemogočite določen profil (imena vmesnikov lahko navedete s pomočjo ukaznega okna Get-NetIPInterface).
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
Kot lahko vidite, zdaj javni profil ne velja za Ethernet0:
DisabledInterfaceAliases: Ethernet0
Nastavitve za beleženje omrežnih povezav lahko konfigurirate na ravni vsakega profila. Dnevniki požarnega zidu Windows so privzeto shranjeni v imeniku% systemroot% \ system32 \ LogFiles \ Firewall, velikost datoteke je 4 MB. Lahko spremenite, da omogočite beleženje povezave in povečate največjo velikost datoteke:
Set-NetFireWallProfile -Profil domene -LogBlocked True -LogMaxSize 20000 -LogFileName '% systemroot% \ system32 \ LogFiles \ Firewall \ pfirewall.log'
Ustvarite, uredite in izbrišite pravila požarnega zidu Windows iz PowerShell-a
Obstaja 9 cmdlet za upravljanje pravil požarnega zidu:
- New-NetFirewallRule
- Kopiraj-NetFirewallRule
- Onemogoči-NetFirewallRule
- Omogoči-NetFirewallRule
- Get-NetFirewallRule
- Odstrani-NetFirewallRule
- Preimenovanje-NetFirewallRule
- Set-NetFirewallRule
- Show-NetFirewallRule
Oglejmo si nekaj preprostih primerov odpiranja vrat v požarnem zidu Windows.
Če želite na primer dovoliti dohodne povezave TCP do vrat 80 in 443 za domenske in zasebne profile, uporabite ta ukaz:
New-NetFirewallRule -DisplayName 'WEB-Inbound' -Profile @ ('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @ ('80', '443')
Promet lahko dovolite ali blokirate za določen program. Na primer, želite blokirati odhodne povezave za FireFox:
New-NetFirewallRule -Program "C: \ Program Files (x86) \ Mozilla Firefox \ firefox.exe" -Action Block -Profile Domain, Private -DisplayName "Block Firefox" -Napis "Block Firefox" -Direction Outbound
Dovoli dohodno povezavo RDP na pristanišču 3389 z le enim naslovom IP:
New-NetFirewallRule -DisplayName "DovoliRDP" -RemoteAddress 192.168.1.55 -Prihodni vhodni -Protocol TCP -LocalPort 3389 -Action Allow
Če želite omogočiti ping za naslove iz podomrežja, uporabite ukaze:
$ 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 "Dovoli vhodni ICMPv4" -Dodhodni vhod -Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ ips -Action Allow
New-NetFirewallRule -DisplayName "Dovoli vhodni ICMPv6" -Dodhodni vhod -Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ ips -Action Allow
Če želite urediti obstoječe pravilo požarnega zidu, uporabite ukazni ukaz Set-NetFirewallRule. Na primer, želite dovoliti dohodne povezave z določenega naslova IP za predhodno ustvarjeno pravilo:
Get-NetFirewallrule -DisplayName 'WEB-Inbound' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.20
Če morate v pravilo požarnega zidu dodati več naslovov IP, uporabite naslednji skript:
$ ips = @ ("192.168.1.50", "192.165.2.22", "192.168.1.20")
Get-NetFirewallrule -DisplayName 'WEB-Inbound' | Set-NetFirewallRule -RemoteAddress $ ips
Natisnite vse naslove IP, ki jih vsebuje pravilo požarnega zidu:
Get-NetFirewallrule -DisplayName 'Dovoli vhodni ICMPv4' | Get-NetFirewallAddressFilter
Pravila požarnega zidu lahko omogočite / onemogočite z ukazom Disable-NetFirewallRule in Enable-NetFirewallRule.
Disable-NetFirewallRule -DisplayName „WEB-Inbound“
Če želite omogočiti ICMP (ping), zaženite ukaz:
Omogoči-NetFirewallRule -Name FPS-ICMP4-ERQ-In
Če želite odstraniti pravilo požarnega zidu, uporabite ukazni ukaz Remove-NetFirewallRule..
Navedba pravilnikov o požarnem zidu Windows prek PowerShell-a
Seznam aktivnih pravil za dohodni promet je prikazan na naslednji način:
Get-NetFirewallRule | kjer je ($ _. omogočeno -eq $ True) -and ($ _. smer -eq "vhodni") | ft
Na primer, če moramo navesti pravila, ki blokirajo odhodne:
Get-NetFirewallRule -Action Block -Anabled True -Direction Outbound
Če želite v pravilu prikazati ime programa:
Get-NetFirewallRule -Action Block -Anabled True -Direction Outbound | % $ _. Ime; $ _ | Get-NetFirewallApplicationFilter
Kot lahko vidite, cmdlet Get-NetFirewallRule ne navaja omrežnih vrat in IP naslovov za pravila požarnega zidu. Če želite prikazati vse informacije o dovoljenih dohodnih (odhodnih) povezavah v bolj priročni obliki s prikazanimi številkami vrat, uporabite naslednji skript:
Get-NetFirewallRule -Action Dovoli -Enabled True -Direction Vhod |
Oblika tabele - ime lastnosti,
@ Name = 'Protocol'; Izraz = ($ 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,
Omogočeno, Profil, smer, akcija
PowerShell zagotavlja obsežno upravljanje pravil požarnega zidu v ukazni vrstici. Skripte PowerShell lahko samodejno zaženete, da odprete / zaprete vrata, ko pride do določenih dogodkov. V naslednjem članku bomo razmislili o preprostem sistemu, ki temelji na požarnem zidu PowerShell in Windows za samodejno blokiranje naslovov IP, iz katerih se oddaljeno ugibanje gesla prek RDP izvaja na strežniku Windows VDS.