Upravljanje Windows zaštitnim zidom pomoću programa PowerShell

Ovaj članak pokriva osnove upravljanja postavkama i pravilima ugrađenog Windows vatrozida iz naredbenog retka PowerShell. Pogledat ćemo kako omogućiti / onemogućiti vatrozid za razne profile, kreirati i izbrisati pravila vatrozida i razmotriti malu skriptu koja vam omogućuje stvaranje zgodne tablice s trenutnim setom pravila aktivnog vatrozida..

sadržaj:

  • Upravljanje mrežnim profilima Windows vatrozida iz PowerShell-a
  • Stvaranje, uređivanje i brisanje pravila Windows zaštitnog zida iz PowerShell-a
  • Spisak pravila Windows zaštitnog zida kroz PowerShell

Postavkama zaštitnog zida Windows možete upravljati s upravljačke ploče grafičke konzole -> Sustav i sigurnost -> Windows Defender vatrozid. No, počevši od Windows 8.1 (Windows Server 2012R2), ugrađeni PowerShell modul dodan je u sustav za kontrolu ugrađenog vatrozida NetSecurity.

Prije toga, naredba se koristila za upravljanje pravilima i postavkama Windows vatrozida netsh vatrozid advfirewall .

U modulu NetSecurity u sustavu Windows 10 dostupno je 85 naredbi. Možete ih navesti:

Get-Command - modul mrežne sigurnosti

Upravljanje mrežnim profilima Windows vatrozida iz PowerShell-a

Postoje tri vrste mrežnih profila u Windows vatrozidu:

  • Domena - odnosi se na računala uključena u domenu Active Directorya;
  • Private (private) - kućne ili radne mreže;
  • Javne - javne mreže.

Informacije o vrsti mreže spremaju uslugu Mreže svijesti o lokaciji (NLA) u bazu podataka. Mrežni profil možete promijeniti ako je pogrešno definiran.

Svaki se profil može razlikovati u nizu korištenih pravila vatrozida. Prema zadanim postavkama, sva mrežna sučelja računala zaštićena su vatrozidom i na njih se primjenjuju sve tri vrste profila..

Da biste omogućili sva tri mrežna profila Domena, javni i privatni, koristite naredbu:

Set-NetFirewallProfile -All -Enabled True

Ili odredite određeni profil umjesto Sve:

Set-NetFirewallProfile -Profil Public -Enabled True

Za onemogućavanje vatrozida za sva tri mrežna profila koristite naredbu:

Set-NetFirewallProfile -All -Enabled False

Koristeći cmdlet Set-NetFirewallProfile možete promijeniti postavke profila (zadana radnja, prijava, put i veličina datoteke zapisnika, postavke upozorenja itd.).

Kao što vjerojatno znate, Windows firewall je prema zadanim postavkama uključen u moderne operativne sustave za sve profile. U postavkama profila dopuštene su sve odlazne veze, a dolazne veze su blokirane (osim onih koje su dopuštene).

Promijenite zadanu radnju za javni profil - blokirajte sve dolazne veze.

Set-NetFirewallProfile -Name Public -DefaultInboundAction Block

Trenutne postavke profila mogu se prikazati na sljedeći način:

Get-NetFirewallProfile -Name javno

Ako upravljate postavkama zaštitnog zida Windows putem GPO-a, možete prikazati trenutne rezultirajuće postavke profila na sljedeći način:

Get-NetFirewallProfile -policystore activestore

Provjerite da li se sve postavke vatrozida odnose na sva mrežna sučelja računala.

Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases

Ako su sva sučelja zaštićena, naredba treba vratiti:

DisabledInterfaceAliases: NotConfigured

Možete isključiti određeni profil za sučelje (imena sučelja možete navesti pomoću cmdleta Get-NetIPInterface).

Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"

Kao što vidite, javni se profil sada ne odnosi na Ethernet0:

DisabledInterfaceAliases: Ethernet0

Možete konfigurirati postavke za bilježenje mrežnih veza na razini svakog profila. Datoteke vatrozida sustava Windows po zadanom su pohranjene u direktoriju% systemroot% \ system32 \ LogFiles \ Firewall, veličina datoteke je 4 MB. Možete promijeniti kako biste omogućili evidentiranje veze i povećali maksimalnu veličinu datoteke:

Set-NetFireWallProfile -Profil Domena -LogBlocked True -LogMaxSize 20000 -LogFileName '% systemroot% \ system32 \ LogFiles \ Firewall \ pfirewall.log'

Stvaranje, uređivanje i brisanje pravila Windows zaštitnog zida iz PowerShell-a

Postoji 9 cmdleta za upravljanje pravilima vatrozida:

  • Novo-NetFirewallRule
  • Copy-NetFirewallRule
  • Onemogući-NetFirewallRule
  • Omogućiti-NetFirewallRule
  • Get-NetFirewallRule
  • Uklonite-NetFirewallRule
  • Preimenuj-NetFirewallRule
  • Set-NetFirewallRule
  • Show-NetFirewallRule

Pogledajmo nekoliko jednostavnih primjera otvaranja portova u Windows vatrozidu.

Na primjer, ako želite dozvoliti dolazne TCP veze na portove 80 i 443 za domene i privatne profile, koristite ovu naredbu:

New-NetFirewallRule -DisplayName 'WEB-Inbound' -Profile @ ('Domena', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @ ('80', '443')

Možete dopustiti ili blokirati promet za određeni program. Na primjer, želite blokirati odlazne veze za FireFox:

New-NetFirewallRule -Program „C: \ programske datoteke (x86) \ Mozilla Firefox \ firefox.exe“ - blok djelovanja - domena profila, privatno - prikazivanje imena „Blokiraj Firefox“ - opis „blokiraj Firefox“ - izlazni izlaz

Dopusti dolaznu RDP vezu na priključku 3389 sa samo jednom IP adresom:

New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress 192.168.1.55 -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow

Da biste omogućili ping za adrese iz navedene podmreže, koristite naredbe:

$ ips = @ ("192.168.1.50-192.168.1.60", "192.165.2.22-192.168.2.200", "10.10.0.0/16")

Novo-NetFirewallRule -DisplayName "Dopusti ulazni ICMPv4" -Dodlazni ulaz -Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ ips -Action Allow

New-NetFirewallRule -DisplayName "Dopusti ulazni ICMPv6" -Dodlazni ulaz -Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ ips -Action Allow

U prethodnom smo članku pokazali kako pomoću PowerShell-a možete blokirati pristup web lokacijama ne samo IP adresom, već i DNS domenom / nazivom web mjesta.

Za uređivanje postojećeg pravila vatrozida upotrijebite cmdlet Set-NetFirewallRule. Na primjer, želite dopustiti dolazne veze s određene IP adrese za prethodno stvoreno pravilo:

Get-NetFirewallrule -DisplayName 'WEB-ulazni' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.20

Ako u pravilo vatrozida morate dodati nekoliko IP adresa, koristite sljedeću skriptu:

$ ips = @ ("192.168.1.50", "192.165.2.22", "192.168.1.20")

Get-NetFirewallrule -DisplayName 'WEB-ulazni' | Set-NetFirewallRule -RemoteAddress $ ips

Ispišite sve IP adrese sadržane u pravilu vatrozida:

Get-NetFirewallrule -DisplayName 'Dopusti ulazni ICMPv4' | Get-NetFirewallAddressFilter

Pravila vatrozida možete omogućiti / onemogućiti pomoću gumba Disable-NetFirewallRule i Enable-NetFirewallRule.

Disable-NetFirewallRule -DisplayName 'WEB-Inbound'

Da biste omogućili ICMP (ping), pokrenite naredbu:

Omogući-NetFirewallRule -Name FPS-ICMP4-ERQ-In

Za uklanjanje pravila vatrozida upotrijebite cmdlet Remove-NetFirewallRule..

Spisak pravila Windows zaštitnog zida kroz PowerShell

Popis aktivnih pravila za dolazni promet može se prikazati na sljedeći način:

Get-NetFirewallRule | gdje je ($ _. omogućen -eq $ True) -and ($ _. smjer -eq "ulazni") | ft

Ako je, na primjer, potrebno navesti pravila za blokiranje odlaznih pravila:

Get-NetFirewallRule - Blok djelovanja - Omogućeno istina - Izlazni izlaz

Ako želite prikazati naziv programa u pravilu:

Get-NetFirewallRule - Blok djelovanja - Omogućeno istina - Izlazni izlaz | % $ _. Ime; $ _ | Dobili-NetFirewallApplicationFilter

Kao što vidite, cmdlet Get-NetFirewallRule ne sadrži mrežne portove i IP adrese za pravila vatrozida. Za prikaz svih podataka o dozvoljenim dolaznim (odlaznim) vezama u prikladnijem obliku s prikazanim brojevima priključaka, koristite sljedeću skriptu:

Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Format-tablica-Naziv svojstva,
@ 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). Ukloni adresu,
Omogućeno, Profil, Smjer, Akcija

PowerShell pruža opsežno upravljanje naredbenim retkom pravila vatrozida za Windows. Skripte PowerShell možete automatski pokrenuti za otvaranje / zatvaranje portova kad se dogode određeni događaji. U sljedećem ćemo članku razmotriti jednostavan sustav zasnovan na PowerShellu i Windows vatrozidu za automatsko blokiranje IP adresa s kojih se daljinsko pogađanje lozinke putem RDP-a izvodi na Windows VDS poslužitelju.