Keri sisuni

Teooria 3: Tulemüür käsureal

Miks käsurida?

Hiirega on ühte reeglit lihtne teha. Käsureal on eelised siis, kui:

  • sama reegel on vaja teha mitmes arvutis (kopeerid käsu, mitte ei klõpsa 20 korda)
  • tahad reegli üles kirjutada: käsk on ühtlasi dokumentatsioon, mida teine inimene saab korrata
  • haldad arvutit eemalt või serverit, millel pole graafilist liidest (Server Core)
  • tahad kiiresti näha, millised reeglid on olemas, ilma loendeid kerimata

Tunnis 6 näed, kuidas samad käsud lähevad automaatsesse paigaldusse.

Käsud

Käsk Mida teeb Näide
Get-NetFirewallRule Näitab reegleid Get-NetFirewallRule -DisplayName "Lab*" näitab reegleid, mille nimi algab sõnaga Lab
New-NetFirewallRule Loob uue reegli New-NetFirewallRule -DisplayName "Lab - web" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
Set-NetFirewallRule Muudab olemasolevat reeglit Set-NetFirewallRule -DisplayName "Lab - web" -Profile Any
Disable-NetFirewallRule Lülitab reegli välja (reegel jääb alles) Disable-NetFirewallRule -DisplayName "Lab - web"
Enable-NetFirewallRule Lülitab reegli uuesti sisse Enable-NetFirewallRule -DisplayName "Lab - web"
Remove-NetFirewallRule Kustutab reegli jäädavalt Remove-NetFirewallRule -DisplayName "Lab - web"
Get-NetFirewallProfile Näitab profiilide sätteid: kas tulemüür on sees ja mida tehakse ühendusega, millele reeglit pole Get-NetFirewallProfile -Name Public

Kontrolli nime enne kustutamist

Remove-NetFirewallRule kustutab kõik reeglid, mis nimele vastavad. Vaata enne käsuga Get-NetFirewallRule -DisplayName "...", mida see leiab. Kui pole kindel, lülita reegel hoopis välja.

Reegli osad

New-NetFirewallRule parameetrid vastavad osadele, mida nägid hiirega reeglit luues:

Parameeter Tähendus Näide
-DisplayName Reegli nimi, mida näed loendis "Lab - web"
-Direction Suund Inbound või Outbound
-Protocol Protokoll TCP, UDP, ICMPv4
-LocalPort Port selles arvutis (sissetuleva reegli puhul) 80
-RemoteAddress Kellelt ühendus võib tulla 192.168.50.20 või 192.168.50.0/24
-Program Ainult see programm "C:\Program Files\App\app.exe"
-Action Tegevus Allow või Block
-Profile Millises profiilis kehtib Any, Domain, Private, Public

Parameetrid, mille jätad ära, tähendavad „kõik”. Näiteks ilma -RemoteAddress-ita on ühendus lubatud kõigilt aadressidelt.

Näited

Luba sissetulev ping kõigis profiilides (-IcmpType 8 on ping-i päring, Echo Request):

New-NetFirewallRule -DisplayName "Lab - ping" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow -Profile Any

Luba veebiserveri port 80, kuid ainult laborivõrgust:

New-NetFirewallRule -DisplayName "Lab - web LabNet" -Direction Inbound -Protocol TCP -LocalPort 80 -RemoteAddress 192.168.50.0/24 -Action Allow -Profile Any

Muuda olemasolevat reeglit: luba ainult ühelt arvutilt:

Set-NetFirewallRule -DisplayName "Lab - ping" -RemoteAddress 192.168.50.20

Vaata oma reegleid tabelina:

Get-NetFirewallRule -DisplayName "Lab*" | Format-Table DisplayName, Enabled, Direction, Action, Profile

Vaata profiilide sätteid:

Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction

Pane oma reeglitele ühine eesliide

Windowsis on juba sadu sisseehitatud reegleid. Kui kõigi sinu reeglite nimi algab sõnaga Lab -, leiad need käsuga Get-NetFirewallRule -DisplayName "Lab*" kohe üles. Ettevõtetes kasutatakse samal põhjusel firma või projekti nime.

Ära lülita tulemüüri välja

Tulemüüri väljalülitamine (näiteks Set-NetFirewallProfile -Enabled False) „parandab” kõik ühendusprobleemid, kuid avab arvuti kõigile. Ava ainult see, mida on vaja.

Huvilistele: vana tööriist netsh

Enne PowerShelli käske hallati tulemüüri käsuga netsh advfirewall. See töötab ka CMD-s ja seda näed vanemates juhendites:

New-NetFirewallRule -DisplayName "Lab - web" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
netsh advfirewall firewall add rule name="Lab - web" dir=in protocol=TCP localport=80 action=allow

Uutes skriptides kasuta PowerShelli käske.

➜ Edasi: Praktiline 3