Demandu, ĉu la fajroŝirmilo de Windows povas mem agi kiel ĉesigilo, kaj vi ricevos du memfidajn kaj nekongruajn respondojn. Unu diras, ke la regulo laŭ interfaca tipo faras la tutan laboron; la alia, ke ĝi ne funkcias sen skriptoj. Ambaŭ priskribas duonon de la sama mekanismo. La fajroŝirmilo povas esprimi la blokadon, kaj ĉu la rezulto vere malsukcesas fermite dependas de tri aferoj: kiel Windows klasifikas la tunelan adaptilon, ĉu la escepto por la finpunkto pluvivas, kaj ĉu nomrezolucio kaj IPv6 estas kovritaj. Eraru pri iu ajn el ili kaj la maŝino aŭ likas aŭ perdas ĉiun konekton.

Tri kondiĉoj, laŭ ĉi tiu ordo

La unua kondiĉo estas klasifiko, kaj ĝi decidas, ĉu la regulo, kiun vi volas, estas eĉ esprimebla. Reguloj de la fajroŝirmilo de Windows povas esti limigitaj laŭ interfaca tipo: drata, sendrata aŭ fora aliro. Politiko, kiu blokas elirantan trafikon sur la fizikaj tipoj kaj permesas la tunelon, funkcias nur se Windows rekonas la tunelon kiel foran aliron.

La dua kondiĉo estas la escepto por la finpunkto. Antaŭ ol ekzistas tunelo, la kliento devas atingi la VPN-servilon per la fizika adaptilo, do tuta blokado de tiu adaptilo malhelpas ĝuste tiun konekton, kiu igus la blokadon nenecesa. La escepto devas nomi la servilon kaj ĝian pordon, kaj la paketo devas eliri tra la fizika pordego anstataŭ en tunelon ankoraŭ ne levitan.

La tria estas kovrado. Regularo, kiu blokas IPv4 kaj forgesas IPv6, aŭ kiu permesas al la loka solvilo serĉi la finpunkton kaj tiel permesas ĉiun alian serĉon, malsukcesas malfermite ĝuste en la fenestro, kiun la ĉesigilo ekzistas por kovri. Tio estas manko en la dezajno, ne cimo en la fajroŝirmilo. Ĝi estas ankaŭ la manko, kiu postvivas ĉiun testadon sur labortablo.

Klasifiko estas la unua pordego

Rigardu, kion Windows pensas pri la adaptiloj antaŭ ol skribi eĉ unu regulon. Indiĝena VPN-konekto de Windows kutime aperas kiel fora aliro. Kliento de tria partio, kiu kreas sian propran virtualan adaptilon, ofte aperas kiel drata, kio signifas, ke blokado limigita al drataj adaptiloj ankaŭ blokas la tunelon.

Get-NetConnectionProfile | Select-Object Name,InterfaceAlias,NetworkCategory
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,ifIndex
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultOutboundAction

La tria komando diras al vi, ĉu defaŭlta elira blokado jam validas, kio ŝanĝas la tutan formon de la dezajno. Se la defaŭlto jam estas blokado, vi skribas permesajn regulojn anstataŭ esceptojn al permesema bazo, kaj tio estas multe pli facila sinteno por pripensi.

Se via tunela adaptilo raportas sin kiel drata, nur-fajroŝirmilo ne estas la ĝusta ilo por fermite-malsukcesa dezajno, kaj neniu kvanto da regulagordado tion ŝanĝas. Tio estas la kazo, en kiu la dua opinio en ĉiu forumfadeno estas ĝusta.

La escepto por la finpunkto bezonas itineron same kiel regulon

Supozu, ke la klasifiko funkcias. La escepto estas du pecoj, kaj ili loĝas en malsamaj subsistemoj. La fajroŝirmila regulo permesas la trafikon; la gastiga itinero igas ĝin eliri per la ĝusta interfaco dum la tunelo estas malsupre.

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

Sen la itinero, la escepto helpas nur dum defaŭlta itinero ankoraŭ montras al la fizika pordego. Post kiam la kliento instalas sian propran defaŭltan itineron kaj poste mortas, la permesitaj paketoj havas neniun saĝan lokon por iri kaj la konekto ne povas esti restarigita. Tiu malsukceso aspektas kiel rompita kliento kaj estas fakte mankanta itinero.

Tenu la escepton tiel mallarĝa, kiel la kliento permesas. Unu adreso kaj unu pordo estas revideblaj; gamo, kiu kovras la tutan reton de la provizanto, ne estas. Tiu pli larĝa regulo ankaŭ permesas ĉion alian gastigitan ĉe la sama provizanto, kio kutime estas pli ol vi intencis.

DNS kaj IPv6 estas kie ĝi malsukcesas malfermite

Nomrezolucio estas la klasika liko. Se la finpunkto estas gastnomo, la kliento devas solvi ĝin antaŭ ol ekzistas la tunelo, kio signifas, ke la fizika adaptilo devas rajtigi atingi solvilon. Tiu sama permeso ellasas ĉiun alian serĉon dum la tunelo estas malsupre, kaj unu serĉo sufiĉas por malkaŝi, kion vi estis vizitonta.

IPv6 estas la dua. Reguloj skribitaj por IPv4 ne kovras la alian familion, kaj multaj klientoj instalas nur IPv4-itinerojn. Maŝino kun indiĝena IPv6-konekteco do povas daŭrigi paroli kun la interreto dum la IPv4-flanko estas firme blokita, kaj la ĉesigilo raportas sukceson la tutan tempon.

GapWhat leaksControl
Resolver permitted for endpoint lookupEvery name queried while downPin the endpoint as an address, or block non-tunnel DNS
Rules only for IPv4Full IPv6 connectivityAdd the same rules for the other family
Application bound to physical interfaceIts own trafficFirewall cannot fix this; change the binding

La tria vico indas komprenon anstataŭ ĉirkaŭiron. Fajroŝirmilo decidas pri paketoj, ne pri tio, kiun interfacon aplikaĵo petis uzi, kaj programo, kiu eksplicite ligiĝas, povas esti malfacile kontrolebla. Tio estas argumento por klientflanka ĉesigilo, kiu funkcias sub la aplikaĵo, ne por pli da reguloj.

Testu haltigante la klienton, ne tirante la kablon

La sola signifa testo estas tiu, kiu imitas la malsukceson, kontraŭ kiu vi protektas vin. Haltigu la servon, mortigu la procezon, aŭ malŝaltu la adaptilon kreitan de la kliento, poste provu atingi la interreton kaj nomon:

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

Ĉiuj tri devus malsukcesi. Se la unua sukcesas, la blokado ne validas; se la dua sukcesas tie, kie la unua malsukcesis, vi havas DNS-likon; se la tria sukcesas, IPv6 ne estas kovrita. Ĉiu rezulto montras al ekzakte unu el la mankoj supre.

Ripetu la teston post dormo kaj vekiĝo, ĉar la fajroŝirmila profilo povas ŝanĝiĝi, kiam Windows decidas, ke reto estas publika aŭ privata, kaj reguloj limigitaj al profilo sekvas ĝin. Dezajno, kiu tenas sur labortablo kaj malsukcesas en trajno, estas dezajno testita unufoje.

Se la klasifika pordego aŭ la DNS-postulo igas la nur-fajroŝirmilan aliron nefunkciebla, klientflanka ĉesigilo estas la honesta respondo. Se la tunelo finiĝas sur enkursigilo, la politiko apartenu al la enkursigilo, ĉar unu regulo tie kovras ĉiun aparaton malantaŭ ĝi kaj ne dependas de tio, kiel Windows etikedas adaptilon.

Rilataj artikoloj