Küsige, kas Windowsi tulemüür suudab üksi hädaseiskamise lülitina toimida, ja saate kaks enesekindlat ja kokkusobimatut vastust. Üks ütleb, et liidesetüübi reegel teeb kogu töö; teine, et ilma skriptideta see ei tööta. Mõlemad kirjeldavad sama mehhanismi poolt. Tulemüür suudab blokeeringu väljendada, ja kas tulemus tõesti suletult ebaõnnestub, sõltub kolmest asjast: kuidas Windows tunneliadapterit klassifitseerib, kas lõpp-punkti erand püsib ja kas nime lahendamine ning IPv6 on kaetud. Eksige ükskõik millises neist ja masin kas lekitab või kaotab kogu ühenduse.

Kolm tingimust, selles järjekorras

Esimene tingimus on klassifikatsioon ja see otsustab, kas soovitud reeglit on üldse võimalik väljendada. Windowsi tulemüüri reegleid saab piirata liidesetüübi järgi: juhtmega, juhtmeta või kaugjuurdepääs. Poliitika, mis blokeerib füüsilistel tüüpidel väljuva liikluse ja lubab tunnelit, töötab ainult siis, kui Windows tunnistab tunneli kaugjuurdepääsuks.

Teine tingimus on lõpp-punkti erand. Enne mis tahes tunnelit peab klient jõudma VPN-serverini füüsilise adapteri kaudu, seega selle adapteri üldine blokeering takistab just seda ühendust, mis teeks blokeeringu tarbetuks. Erand peab nimetama serveri ja selle pordi ning pakett peab väljuma füüsilise lüüsi kaudu, mitte veel üles tõstmata tunnelisse.

Kolmas on katvus. Reeglistik, mis blokeerib IPv4 ja unustab IPv6, või lubab kohalikul resolveril lõpp-punkti otsida ja seega lubab iga teise otsingu, nurjub avatult täpselt selles aknas, mille katmiseks hädaseiskamise lüliti olemas on. See on projekteerimise lünk, mitte tulemüüri viga. See on ka lünk, mis peab vastu igale lauatestile.

Klassifikatsioon on esimene värav

Vaadake, mida Windows adapteritest arvab, enne kui kirjutate ühegi reegli. Windowsi omane VPN-ühendus ilmub tavaliselt kaugjuurdepääsuna. Kolmanda osapoole klient, mis loob oma virtuaalse adapteri, ilmub sageli juhtmega, mis tähendab, et juhtmega adapteritega piiratud blokeering blokeerib ka tunneli.

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

Kolmas käsk ütleb, kas vaikimisi väljuv blokeering on juba jõus, mis muudab kogu projekti kuju. Kui vaikimisi on juba blokeerimine, kirjutate lubamisreegleid, mitte erandeid lubavale alusele, ja see on palju kergem seisukoht, mille üle mõelda.

Kui teie tunneliadapter teatab end juhtmega, ei ole ainult tulemüür õige tööriist suletud nurjumisega projekti jaoks, ja ükski reeglite häälestamine ei muuda seda. See on juhtum, kus teine arvamus igas foorumiteemas on õige.

Lõpp-punkti erand vajab lisaks reeglile ka marsruuti

Oletame, et klassifikatsioon töötab. Erand on kaks tükki ja need elavad erinevates alamsüsteemides. Tulemüüri reegel lubab liiklust; hosti marsruut paneb selle väljuma õige liidese kaudu, kui tunnel on maas.

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

Ilma marsruudita aitab erand ainult seni, kuni vaikimisi marsruut osutab veel füüsilisele lüüsile. Kui klient paigaldab oma vaikimisi marsruudi ja sureb seejärel, ei ole lubatud pakettidel mõistlikku kohta minna ja ühendust ei saa taastada. See tõrge näeb välja nagu katkine klient ja on tegelikult puuduv marsruut.

Hoidke erand nii kitsas, kui klient lubab. Üks aadress ja üks port on üle vaadatavad; vahemik, mis katab teenusepakkuja kogu võrgu, ei ole. See laiem reegel lubab ka kõike muud sama teenusepakkuja juures majutatut, mis on tavaliselt rohkem, kui kavatsesite.

DNS ja IPv6 on kohad, kus see avatult nurjub

Nimelahendus on klassikaline leke. Kui lõpp-punkt on hostinimi, peab klient selle lahendama enne tunneli olemasolu, mis tähendab, et füüsilisel adapteril tuleb lubada resolverini jõuda. Sama luba laseb tunnelil maas olles välja iga teise päringu, ja ühest päringust piisab, et paljastada, mida kavatsesite külastada.

IPv6 on teine. IPv4 jaoks kirjutatud reeglid ei kata teist perekonda ja paljud kliendid paigaldavad ainult IPv4 marsruudid. Nii võib omaniku IPv6-ühendusega masin jätkata internetiga suhtlemist, kui IPv4 pool on kindlalt blokeeritud, ja lüliti teatab kogu aeg edust.

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

Kolmas rida väärib mõistmist, mitte kõrvalehiilimist. Tulemüür otsustab pakettide üle, mitte selle üle, millist liidest rakendus kasutada palus, ja programmi, mis end selgesõnaliselt seob, võib olla raske ohjes hoida. See on argument kliendi poolel töötava lüliti kasuks, mis töötab rakendusest allpool, mitte rohkemate reeglite kasuks.

Testige klienti peatades, mitte kaablit välja tõmmates

Ainus mõttekas test on see, mis jäljendab tõrget, mille eest end kaitsete. Peatage teenus, tapke protsess või keelake kliendi loodud adapter, seejärel proovige jõuda internetti ja nimeni:

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

Kõik kolm peaksid nurjuma. Kui esimene õnnestub, ei ole blokeering jõus; kui teine õnnestub seal, kus esimene nurjus, on teil DNS-i leke; kui kolmas õnnestub, ei ole IPv6 kaetud. Iga tulemus osutab täpselt ühele ülaltoodud lüngale.

Korrake testi pärast magamist ja ärkamist, sest tulemüüri profiil võib muutuda, kui Windows otsustab, et võrk on avalik või privaatne, ja profiiliga piiratud reeglid järgivad seda. Projekt, mis peab vastu laual ja nurjub rongis, on üks kord testitud projekt.

Kui klassifikatsioonivärav või DNS-i nõue muudab ainult tulemüüri lähenemise kasutuskõlbmatuks, on kliendi poolel asuv lüliti aus vastus. Kui tunnel lõpeb hoopis ruuteril, peaks poliitika kuuluma ruuterile, sest üks reegel seal katab iga selle taga oleva seadme ega sõltu sellest, kuidas Windows adapterit nimetab.

Seotud artiklid