Pravilo zvuči precizno: dozvoli lokalni saobraćaj na privatnom profilu i samo VPN saobraćaj na javnom. Nije, jer mrežni profil bira koji se skup firewall pravila primjenjuje i ne govori ništa o tome koji je adapter nosio paket. Tretirati ime profila kao zahtjev za put jeste greška zbog koje dizajn ograničenog izlaza izgleda završen kad nije.

Prvo zapišite tokove, pa odlučite koji mehanizam zaista može nametnuti svaki od njih. Ta lista tokova jedini je artefakt koji preživi sljedeću promjenu pravila.

Kategorija bira pravila, ne rute

Kada Windows klasifikuje mrežu kao javnu ili privatnu, firewall primjenjuje skup pravila konfigurisan za taj profil. Klasifikacija prati mrežu kojoj se adapter pridružio, a skup pravila odlučuje šta je na njoj dozvoljeno. Nijedna od tih činjenica ne zavisi od toga da li je saobraćaj aplikacije koristio tunel. Upravo ta nezavisnost je sva teškoća.

Izbor puta pravi rutiranje, kroz metriku interfejsa i prefiks koji tunel instalira. Profil zato može biti označen kao javni dok veza aplikacije ide fizičkim putem, a firewall će i dalje prijaviti da je primijenjen javni skup pravila.

Zato pravilo ograničeno na profil ne može značiti samo tunel. Ta dva svojstva odlučuju različite komponente i jedno ne može zamijeniti drugo.

FlowWhat decides itWhat a rule can enforce
VPN client to its endpointRouting plus the outer transportAllow the client process before the tunnel exists
Application to an internet hostInterface metric and prefix lengthBlock the process unless the tunnel interface is up
Application to a LAN hostLocal subnet routeAllow one destination, not the whole category

Eksplicitna blokada nadjačava užu dozvolu

Microsoftove smjernice za firewall pravila razlikuju dozvolu kao izuzetak od radnje blokiranja po defaultu od eksplicitne blokade koja je u sukobu s dozvolom. Eksplicitne blokade pobjeđuju u tom sukobu, a odlazna pravila slijede isti prioritet.

Zato popularni recept da dodate pravilo koje blokira sve i oslonite se na užu dozvolu postavljenu iznad njega ne radi ono što njegov autor očekuje. Windows Firewall ne rješava sukob redoslijedom pravila koji je dodijelio administrator. Blokada se jednostavno primijeni, a aplikacija koja se povezuje prijavi istek vremena. Pravilo koje je izgledalo kao izuzetak nikada nije bilo u igri.

Podržani oblik je politika zabrane po defaultu s odobrenim pravilima dozvole, gdje svaka dozvola imenuje program, uslugu ili odredište dovoljno precizno da se može pregledati. Takav dizajn prolazi reviziju, jer je svaki izuzetak vidljiv i nijedan ne zavisi od redoslijeda nastanka.

Dva pravila koja protivrječe jedan drugom gora su od jednog pravila, jer je rezultujuće ponašanje istovremeno ispravno i neobjašnjivo.

Dajte odlaznoj politici jednog vlasnika

Podržani VPN klijent već održava vlastito ponašanje blokiranja i vlastite izuzetke za krajnje tačke. Dodavanje neusklađenih ručnih pravila može taj klijent ostaviti izvan tunela koji mu treba za postavljanje ili ostaviti otvoren drugi put koji niko nije primijetio.

Odlučite ko posjeduje odlaznu politiku prije pisanja pravila: vlastita konfiguracija klijenta, upravljana firewall politika ili dokumentovana lokalna lista izuzetaka s vlasnikom. Zatim uskladite slojeve umjesto da slažete eksperimente dok se nešto ne poveže. Imenovani vlasnik je i onaj koga pitate kada se dva sloja ne slažu.

Sačuvajte kanal za oporavak prije nego što bilo šta promijenite. Udaljena mašina zaključana izvan vlastite putanje upravljanja gori je ishod od praznine u politici koju ste zatvarali. Pravilo oporavka lakše je opravdati kad je unaprijed zapisano i lakše ga je naći kad promjena krene po zlu u sat koji nikome nije drag.

Testirajte četiri ishoda umjesto da čitate oznaku

Politika je dobra onoliko koliko razlikuje slučajeve, pa oznaku profila tretirajte kao polaznu tačku, a ne kao rezultat. Četiri ishoda kažu radi li: namjeravani LAN zahtjev uspijeva, pokriveni internetski zahtjev uspijeva, zabranjeni direktni zahtjev ne uspijeva, a slučaj kvara tunela ponaša se kako je projektovan umjesto da se tiho povuče. Zapišite četiri rezultata uz promjenu pravila. Plan testiranja s četiri imenovana slučaja dovoljno je kratak da se izvodi svaki put i dovoljno konkretan da glasno padne.

Get-NetConnectionProfile | Select-Object Name,NetworkCategory,InterfaceAlias
Get-NetFirewallProfile | Select-Object Name,DefaultOutboundAction
Get-NetFirewallRule -Direction Outbound -Enabled True | Where-Object Action -eq Block |
  Select-Object DisplayName,Profile

Prva komanda pokazuje kako je klasifikovana svaka povezana mreža, što često nije ono što je osoba koja je napisala pravilo pretpostavila. Druga pokazuje zadanu radnju po profilu, a treća navodi omogućene odlazne blokade, uključujući one koje će tiho poništiti užu dozvolu.

Pokrenite četiri slučaja ponovo nakon promjene mreže, jer profil može biti reklasifikovan kada se mašina pridruži drugoj mreži. Poklapanje oznake profila nije dokaz da je put bio onaj koji ste namjeravali.

Povezani članci