Samo Windows zaštitni zid kao VPN prekidač za isključivanje: drži li?
Pravila po tipu interfejsa mogu blokirati fizičke adaptere, ali tunel treće strane često izgleda žično. Provjerite klasifikaciju, rutu do krajnje tačke, pa DNS.
Pitajte može li Windows zaštitni zid sam poslužiti kao prekidač za isključivanje i dobit ćete dva sigurna i nespojiva odgovora. Jedan kaže da pravilo po tipu interfejsa obavlja cijeli posao; drugi da bez skripti ne radi. Oba opisuju polovinu istog mehanizma. Zid može izraziti blokadu, a da li se rezultat zaista zatvara sigurno zavisi od tri stvari: kako Windows klasificira tunelski adapter, da li izuzetak za krajnju tačku preživi i da li su razrješavanje imena i IPv6 pokriveni. Pogriješite li barem jedno, mašina ili propušta ili gubi svu vezu.
Tri uslova, ovim redom
Prvi uslov je klasifikacija i ona odlučuje da li se pravilo koje želite uopšte može izraziti. Pravila Windows zaštitnog zida mogu se ograničiti po tipu interfejsa: žični, bežični ili daljinski pristup. Politika koja blokira odlazni saobraćaj na fizičkim tipovima i dozvoljava tunel radi samo ako Windows tunel prepoznaje kao daljinski pristup.
Drugi uslov je izuzetak za krajnju tačku. Prije nego što tunel postoji, klijent mora doći do VPN servera preko fizičkog adaptera, pa sveobuhvatna blokada tog adaptera sprječava upravo vezu koja bi blokadu učinila nepotrebnom. Izuzetak mora imenovati server i njegov port, a paket mora izaći kroz fizički pristupnik, a ne u tunel koji još nije podignut.
Treće je pokrivenost. Skup pravila koji blokira IPv4 i zaboravi IPv6, ili dozvoli lokalnom razrješivaču traženje krajnje tačke i time dozvoli svako drugo traženje, pada otvoreno upravo u prozoru zbog kojeg prekidač i postoji. To je praznina u dizajnu, a ne greška u zidu. To je i praznina koja preživi svako testiranje za stolom.
Klasifikacija je prva kapija
Provjerite šta Windows misli o adapterima prije nego napišete i jedno pravilo. Ugrađena Windows VPN veza obično se pojavljuje kao daljinski pristup. Klijent treće strane koji stvara vlastiti virtuelni adapter često se pojavljuje kao žični, što znači da blokada ograničena na žične adaptere blokira i tunel.
Get-NetConnectionProfile | Select-Object Name,InterfaceAlias,NetworkCategory
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,ifIndex
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultOutboundAction
Treća komanda vam kaže da li je zadana blokada odlaznog saobraćaja već na snazi, što mijenja cijeli oblik dizajna. Ako je zadana postavka već blokada, pišete pravila dozvole, a ne izuzetke od popustljive osnove, i to je mnogo lakši stav za razmišljanje.
Ako se vaš tunelski adapter prijavljuje kao žični, samo zid nije pravi alat za dizajn sa zatvaranjem pri otkazu, i nikakvo podešavanje pravila to ne mijenja. To je slučaj u kojem je drugo mišljenje u svakoj forumskoj temi tačno.
Izuzetak za krajnju tačku traži i rutu, ne samo pravilo
Pretpostavite da klasifikacija radi. Izuzetak su dva dijela i oni žive u različitim podsistemima. Pravilo zida dozvoljava saobraćaj; ruta domaćina tjera ga da izađe kroz pravi interfejs dok je tunel spušten.
New-NetFirewallRule -DisplayName "VPN endpoint allow" -Direction Outbound -Action Allow \
-Protocol TCP -RemoteAddress 203.0.113.9 -RemotePort 443 -InterfaceType Wired,Wireless
New-NetRoute -DestinationPrefix 203.0.113.9/32 -InterfaceIndex 12 -NextHop 192.168.1.1
Get-NetRoute -DestinationPrefix 203.0.113.9/32
Bez rute izuzetak pomaže samo dok zadana ruta još pokazuje na fizički pristupnik. Kad klijent instalira vlastitu zadanu rutu i zatim prestane s radom, dozvoljeni paketi nemaju kuda razumno otići i veza se ne može ponovo uspostaviti. Takav kvar izgleda kao pokvaren klijent, a zapravo je ruta koja nedostaje.
Držite izuzetak što užim nego što klijent dopušta. Jedna adresa i jedan port daju se pregledati; raspon koji pokriva cijelu mrežu provajdera ne. To šire pravilo dozvoljava i sve drugo hostovano kod istog provajdera, što je obično više nego što ste namjeravali.
DNS i IPv6 su mjesta gdje pada otvoreno
Razrješavanje imena je klasično curenje. Ako je krajnja tačka ime domaćina, klijent ga mora razriješiti prije nego tunel postoji, što znači da fizičkom adapteru mora biti dozvoljen pristup razrješivaču. Ista dozvola pušta svako drugo traženje dok je tunel spušten, a jedno traženje dovoljno je da otkrije šta ste namjeravali posjetiti.
IPv6 je drugi. Pravila napisana za IPv4 ne pokrivaju drugu familiju, a mnogi klijenti instaliraju samo IPv4 rute. Zato mašina s ugrađenom IPv6 vezom može nastaviti razgovarati s internetom dok je IPv4 strana čvrsto blokirana, a prekidač cijelo vrijeme prijavljuje uspjeh.
| Gap | What leaks | Control |
|---|---|---|
| Resolver permitted for endpoint lookup | Every name queried while down | Pin the endpoint as an address, or block non-tunnel DNS |
| Rules only for IPv4 | Full IPv6 connectivity | Add the same rules for the other family |
| Application bound to physical interface | Its own traffic | Firewall cannot fix this; change the binding |
Treći red vrijedi razumjeti umjesto zaobilaziti. Zid odlučuje o paketima, ne o tome koji je interfejs aplikacija tražila, a program koji se izričito veže može biti teško obuzdati. To je argument za prekidač na strani klijenta koji radi ispod aplikacije, ne za još pravila.
Testirajte zaustavljanjem klijenta, a ne čupanjem kabla
Jedini smislen test je onaj koji oponaša kvar od kojeg se štitite. Zaustavite servis, ubijte proces ili onemogućite adapter koji je klijent stvorio, pa pokušajte doći do interneta i imena:
Stop-Service -Name "YourVpnService" -Force
Test-NetConnection -ComputerName 1.1.1.1 -Port 443
Resolve-DnsName example.com
Test-NetConnection -ComputerName 2606:4700:4700::1111 -Port 443
Sva tri treba da padnu. Ako prvi uspije, blokada nije na snazi; ako drugi uspije tamo gdje je prvi pao, imate curenje DNS-a; ako treći uspije, IPv6 nije pokriven. Svaki ishod pokazuje tačno na jednu od gore navedenih praznina.
Ponovite test nakon spavanja i buđenja, jer se profil zida može promijeniti kad Windows odluči da je mreža javna ili privatna, a pravila vezana za profil ga slijede. Dizajn koji drži za stolom i pada u vozu je dizajn koji je testiran jednom.
Ako kapija klasifikacije ili zahtjev DNS-a čine pristup samo sa zidom neupotrebljivim, prekidač na strani klijenta je iskren odgovor. Ako tunel pak završava na ruteru, politika treba pripadati ruteru, jer jedno pravilo tamo pokriva svaki uređaj iza njega i ne zavisi od toga kako Windows naziva adapter.