Šiame straipsnyje aprašomi integruotos „Windows Defender“ ugniasienės su išplėstine sauga nustatymų ir taisyklių valdymo iš „PowerShell“ komandų eilutės pagrindai. Pažiūrėsime, kaip įjungti / išjungti ugniasienę skirtingiems tinklo profiliams, sukurti arba pašalinti ugniasienės taisykles ir importuoti / eksportuoti Windows ugniasienės taisykles su PowerShell.
Turinys:
- Kaip įjungti arba išjungti „Windows Defender“ užkardą naudojant „PowerShell“.
- Sukurkite „Windows“ ugniasienės taisykles naudodami „PowerShell“.
- Esamos „Windows“ ugniasienės taisyklės keitimas naudojant „PowerShell“.
- Kaip įjungti / išjungti / pašalinti „Windows“ ugniasienės taisyklę naudojant „PowerShell“.
- PowerShell: išvardykite aktyvias taisykles Windows ugniasienėje
„Windows“ ugniasienės nustatymai paprastai valdomi naudojant atskirą grafinį MMC elementąwf.msc(Valdymo skydas -> Sistema ir sauga -> Windows Defender ugniasienė -> Išplėstiniai nustatymai). Daugumą Windows ugniasienės konfigūravimo ir nustatymų valdymo operacijų galite atlikti naudodami PowerShell komandinę eilutę. Galite naudoti įmontuotąNetSecuritymodulį, kad tai padarytumėte (kuris yra „Windows PowerShell 5.1“ ar naujesnės versijos).
Galite išvardyti galimas cmdlet NetSecurity modulyje naudodami komandą:
Get-Command -Module NetSecurity

Anksčiau,netsh advfirewall firewallkomanda buvo naudojama Windows ugniasienės taisyklėms ir parametrams valdyti.
Kaip įjungti arba išjungti „Windows Defender“ užkardą naudojant „PowerShell“.
„Windows Defender“ ugniasienė įjungta pagal numatytuosius nustatymus.
Get-NetFirewallProfile | Format-Table Name, Enabled


„Windows“ užkardoje yra trijų tipų tinklo profiliai:
- Domenas– taikoma kompiuteriams, kurie yra prijungti prie „Active Directory“ domeno;
- Privatus– namų, SOHO ar darbo grupės tinklai;
- Viešas– viešieji tinklai.
Pagal numatytuosius nustatymus Windows ugniasienė leidžia visus išeinančius ryšius ir blokuoja visus gaunamus ryšius (išskyrus tuos, kurie leidžiami) kiekvienam tinklo profiliui.


Tinklo vietos suvokimo (NLA) paslauga saugo informaciją apie tinklo tipus duomenų bazėje. Galite rankiniu būdu pakeisti tinklo profilį (vietą) sistemoje „Windows“, jei jis netinkamai aptinkamas.
Kiekviename tinklo profilyje (vietoje) gali būti naudojamos skirtingos ugniasienės taisyklės. Pagal numatytuosius nustatymus visos kompiuterio tinklo sąsajos yra apsaugotos ugniasiene ir joms taikomi visų trijų tipų profiliai.
Norėdami visiškai išjungti „Windows“ užkardą, paleiskite šią komandą
Set-NetFirewallProfile -All -Enabled False
Arba vietoj to nurodykite konkretų profilio pavadinimąVisi:
Set-NetFirewallProfile -Profile Public -Enabled False
Norėdami įjungti Windows ugniasienę visiems trims tinklo profiliams, naudokite šią komandą
Set-NetFirewallProfile -All -Enabled True
Rodo tinklo ryšiui taikomo profilio tipą:
Get-NetConnectionProfile


Šiame pavyzdyje „Ethernet0“ tinklo ryšiui taikomas „DomainAuthenticated“ profilis.
Jei „PowerShell Remoting“ (WinRM) sukonfigūruotas nuotoliniuose kompiuteriuose, tuose kompiuteriuose galite tvarkyti „Windows“ užkardos taisykles. Šiame pavyzdyje mes naudosime Invoke-Command cmdlet, kad prisijungtume prie sąraše esančių nuotolinių kompiuterių ir išjungtume užkardą juose.
$computers = @('WKS01', 'WKS02', 'WKS03')
Invoke-Command -ComputerName $computers {Set-NetFirewallProfile -All -Enabled False}
Galite pakeisti numatytąjį viešo profilio veiksmą, kad blokuotumėte visus gaunamus ryšius.
Set-NetFirewallProfile –Name Public –DefaultInboundAction Block
Dabartiniai profilio nustatymai gali būti rodomi taip:
Get-NetFirewallProfile -Name Public


Jei tvarkote Windows ugniasienės nustatymus naudodami GPO, dabartinius gautus profilio nustatymus galite peržiūrėti taip:
Get-NetFirewallProfile -policystore activestore
Įsitikinkite, kad visi ugniasienės nustatymai taikomi visoms kompiuterio tinklo sąsajoms:
Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases
Jei visos sąsajos yra apsaugotos, komanda turėtų grąžinti:
DisabledInterfaceAliases : {NotConfigured}

Galite išjungti tam tikrą tinklo sąsajos profilį (galite nurodyti tinklo adapterius sistemoje Windows naudodami cmdlet Get-NetIPInterface):
Siūloma skaityti:Kaip įjungti arba išjungti „Windows“ užkardą „Windows 10“.
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
Kaip matote, viešasis profilis nebetaikomas Ethernet0 sąsajai::
DisabledInterfaceAliases : {Ethernet0}

Galite naudotiSet-NetFirewallProfilecmdlet, kad pakeistumėte profilio nustatymus (numatytąjį veiksmą, registravimo nustatymus, žurnalo failo kelią ir dydį, pranešimų nustatymus ir kt.). Galite konfigūruoti tinklo ryšio registravimo nustatymus kiekvienam tinklo vietos profiliui. Pagal numatytuosius nustatymus Windows ugniasienės žurnalai saugomi%systemroot%system32LogFilesFirewall, o failo dydis yra 4 MB. Galite įjungti ryšio registravimą ir padidinti maksimalų failo dydį:
Set-NetFireWallProfile -Profile Domain -LogBlocked True -LogMaxSize 20000 -LogFileName ‘%systemroot%system32LogFilesFirewallpfirewall.log’
Sukurkite „Windows“ ugniasienės taisykles naudodami „PowerShell“.
„Windows“ užkardos taisyklėms valdyti yra 9 „PowerShell“ cmdlet:
- New-NetFirewallRule
- Copy-NetFirewallRule
- Išjungti-NetFirewallRule
- Įgalinti-NetFirewallRule
- Get-NetFirewallRule
- Pašalinti-NetFirewallRule
- Pervardyti-NetFirewallRule
- Set-NetFirewallRule
- Show-NetFirewallRule
Pažvelkime į kelis paprastus pavyzdžius, kaip atidaryti prievadus „Windows“ užkardoje.
Pavyzdžiui, jei norite leisti įeinančius TCP ryšius 80 ir 443 TCP prievaduose tiek domeno, tiek privačiam profiliams, paleiskite šią komandą:
New-NetFirewallRule -DisplayName 'HTTP-Inbound' -Profile @('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('80', '443')


Galite leisti arba blokuoti prieigą prie tinklo konkrečiai programai (vykdomajai). Pavyzdžiui, galbūt norėsite blokuoti išeinančius „Firefox“ naršyklės ryšius:
New-NetFirewallRule -Program “C:Program Files (x86)Mozilla Firefoxfirefox.exe” -Action Block -Profile Domain, Private -DisplayName “Block Firefox browser” -Description “Block Firefox browser” -Direction Outbound
Leiskime įeinantį KPP ryšį per numatytąjį TCP3389 prievadą tik iš vieno IP adreso:
New-NetFirewallRule -DisplayName "AllowRDP" –RemoteAddress 192.168.2.200 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Allow
Norėdami leisti ICMP ping IP adresams iš nurodytų IP adresų ir potinklių diapazonų, sukurkite šią taisyklę:
$ips = @("192.168.2.15-192.168.2.40", "192.168.100.15-192.168.100.200", ”10.1.0.0/16”)
New-NetFirewallRule -DisplayName "Allow inbound ICMPv4" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ips -Action Allow
New-NetFirewallRule -DisplayName "Allow inbound ICMPv6" -Direction Inbound -Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ips -Action Allow
Į ugniasienės taisyklę įtraukite IP adresų sąrašą iš paprasto teksto failo (po vieną IP adresą eilutėje):
$ips=Get-Content C:tempip.txt
Get-NetFirewallrule -DisplayName 'AllowRDP'|Set-NetFirewallRule -RemoteAddress $ips
Ankstesniame straipsnyje parodėme, kaip naudoti PowerShell blokuoti prieigą prie svetainės ne tik pagal IP adresą, bet ir pagal svetainės DNS pavadinimą.
Leisti visus įeinančius ryšius iš nurodyto IP adreso. Taip IP adresas bus įtrauktas į baltąjį ugniasienės sąrašą:
$IP = '192.168.1.20'
New-NetFirewallRule -DisplayName "Allow $IP" -Direction Inbound -Action Allow -RemoteAddress $IP
Esamos „Windows“ ugniasienės taisyklės keitimas naudojant „PowerShell“.
Jei norite redaguoti ugniasienės taisyklę, naudokiteSet-NetFirewallRulecmdlet. Pavyzdžiui, galbūt norėsite leisti įeinančius ryšius iš konkretaus IP adreso pagal taisyklę, kurią anksčiau sukūrėte:
Get-NetFirewallrule -DisplayName 'HTTP-Inbound' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.10
Norėdami pridėti kelis IP adresus prie ugniasienės taisyklės, naudokite šį PowerShell scenarijų:
$ips = @("192.168.2.15", "192.168.2.17",”192.168.100.15”)
$current_ips = (Get-NetFirewallRule -DisplayName 'HTTP-Inbound'| Get-NetFirewallAddressFilter).RemoteAddress
$current_ips += $ips
Get-NetFirewallrule -DisplayName 'HTTP-Inbound'|Set-NetFirewallRule -RemoteAddress $current_ips
Visų ugniasienės taisyklės IP adresų sąrašas:
Get-NetFirewallrule -DisplayName 'Http_inbound'|Get-NetFirewallAddressFilter
Pašalinkite vieną IP adresą iš ugniasienės taisyklės:
$removeip = "192.168.100.5"
$current_ips = (Get-NetFirewallRule -DisplayName 'HTTP-Inbound'| Get-NetFirewallAddressFilter).RemoteAddress
$filterIP = $current_ips | Where-Object{ $_ -notin $removeip }
Get-NetFirewallrule -DisplayName 'HTTP-Inbound'|Set-NetFirewallRule -RemoteAddress $filterIP


Kaip įjungti / išjungti / pašalinti „Windows“ ugniasienės taisyklę naudojant „PowerShell“.
Galite naudotiIšjungti-NetFirewallRuleirĮgalinti-NetFirewallRulecmdlet, kad įjungtumėte ir išjungtumėte ugniasienės taisykles.
Disable-NetFirewallRule –DisplayName 'HTTP-Inbound'
Norėdami leisti ICMP (ping), paleiskite šią komandą:
Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In
Norėdami pašalinti ugniasienės taisyklę, naudokitePašalinti-NetFirewallRulecmdlet.
Remove-NetFirewallRule -DisplayName 'HTTP-Inbound'
Norėdami iš naujo nustatyti visas Microsoft ugniasienės taisykles ir atkurti numatytuosius nustatymus, paleiskite šią komandą
netsh advfirewall reset
arba:
(New-Object -ComObject HNetCfg.FwPolicy2).RestoreLocalFirewallDefaults()
Taip bus ištrinti visi vartotojo nustatyti parametrai ir „Microsoft Defender“ ugniasienės taisyklės. Išliks tik „Windows“ įdiegtos prieigos prie tinklo taisyklės.
Prieš iš naujo nustatydami ugniasienės taisykles, dabartinius nustatymus galite eksportuoti į failą.
netsh advfirewall export "C:Backupfirewall-config.wfw"
Vėliau galėsite atkurti senus ugniasienės nustatymus importuodami taisyklių failą:
netsh advfirewall import "C:Backupfirewall-config.wfw"
PowerShell: išvardykite aktyvias taisykles Windows ugniasienėje
Įjungtų įeinančio srauto ugniasienės taisyklių sąrašas gali būti rodomas taip
Get-NetFirewallRule | where {($_.enabled -eq $True) -and ($_.Direction -eq "Inbound")} |ft
Galite išvardyti tik siunčiamų siuntų blokavimo taisykles:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound
Jei norite, kad taisyklėje būtų rodomas programos (vykdomojo) pavadinimas:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound | %{$_.Name; $_ | Get-NetFirewallApplicationFilter}


Kaip matote, Get-NetFirewallRule cmdlet nerodo ugniasienės taisyklių tinklo prievadų ir IP adresų. Norėdami patogiau pateikti išsamią informaciją apie leidžiamus įeinančius (išeinančius) ryšius su prievado numeriais, naudokite šį PowerShell scenarijų:
Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Format-Table -Property Name,
@{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}},
Enabled,Profile,Direction,Action


„PowerShell“ teikia daugybę „Windows“ ugniasienės taisyklių valdymo komandų eilutės parinkčių. Jei įvyksta tam tikri įvykiai, galite automatiškai paleisti „PowerShell“ scenarijus, kad atidarytumėte / uždarytumėte prievadus. Šiame straipsnyje apžvelgsime paprastus PowerShell ir Windows ugniasienėmis pagrįstus sprendimus, skirtus automatiškai blokuoti KPP žiaurios jėgos atakas prieš jūsų Windows VDS pagrindinį kompiuterį, įtraukiant užkardos taisyklę užpuoliko IP adresą.













![[Programinės įrangos atnaujinimas] „Thunderbird ESR 128.7.0“ ir „115.18.0“ Išleista, štai kas naujo ir ištaisytas](https://media.askvg.com/articles/images8/New_Thunderbird_Supernova_UI_Version_115_2023.png)

