Kill switch v Windowsu brez dodatne programske opreme: profili ali poti?
Profili požarnega zidu sledijo kategoriji omrežja, poti sledijo vmesniku. Primerjajte oboje, nato preizkusite primer okvare, ko tunela ni in ikona laže.
Odjemalec umre sredi prenosa in ikona v pladnju izgine. Prenos se nadaljuje po domači povezavi. Prav to zaporedje je razlog, da kill switch obstaja, in Windows se mu lahko približa brez drugega izdelka.
Vredno je poznati dve metodi. Spodletita na različnih mestih in nobena ni popoln odgovor.
Prva metoda: dovolite program samo v enem profilu
Požarni zid Windows omejuje pravila na profile Domain, Private in Public. Trik je, da tunelskemu vmesniku daste eno kategorijo, fizičnemu vmesniku pa drugo. Nato napišete odhodno pravilo, ki zaščitenemu programu dovoli delovanje v profilu tunela in ga povsod drugje blokira. Požarni zid bere kategorijo, ne imena vmesnika.
Najprej nastavite povezavo VPN na Private, fizično omrežje pa na Public. Nato dodajte pravilo blokiranja za program, ki velja za nezaželene profile. Nato potrdite dodelitev s Get-NetConnectionProfile, ker pravilo sledi prav tej dodelitvi.
Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory
New-NetFirewallRule -DisplayName 'Block browser off VPN' -Direction Outbound `
-Program 'C:\Program Files\Mozilla Firefox\firefox.exe' -Action Block -Profile Public
New-NetFirewallRule -DisplayName 'Allow browser on VPN' -Direction Outbound `
-Program 'C:\Program Files\Mozilla Firefox\firefox.exe' -Action Allow -Profile Private
Šibkost je strukturna. Pravilo profila sledi kategoriji, zato lahko blokada preneha veljati, ko Windows prekategorizira hotelsko omrežje. Na seznamu pravil se ob tem nič ne spremeni.
Druga metoda: odstranite fizično privzeto pot
Pristop s potmi je bolj grob in veliko lažji za revizijo. Zapišite fizični prehod, pustite VPN, da namesti svojo privzeto pot z nižjo metriko, nato izbrišite fizično privzeto. Nič drugega potem ne more prenašati prometa.
route print -4
route delete 0.0.0.0 mask 0.0.0.0 192.168.50.1
route print -4 | findstr /c:"0.0.0.0"
Ko odjemalec umre, pot VPN odide skupaj s svojim vmesnikom. Stroj preide v stanje brez povezave, namesto da bi puščal, in prav to naj bi kill switch ustvaril.
Dve podrobnosti odločita, ali bo zdržalo teden. DHCP vrne prehod vsakič, ko povezava zatrese. Fizični vmesnik s statičnim naslovom se temu presenečenju izogne. Tudi naslov samega strežnika VPN mora ostati dosegljiv. Brez te poti do gostitelja se odjemalec po prekinitvi, ki je sprožila blokado, nikoli več ne more povezati.
Tretja metoda: brez prehoda, ena trajna pot do gostitelja
Tretja možnost se začne s čiščenjem prehoda v nastavitvah vmesnika. Nato ga nadomesti ena trajna pot do končne točke VPN. Stroj se lahko nato pogovarja s strežnikom in z ničimer drugim, dokler se tunel ne dvigne.
route -p add 198.51.100.44 mask 255.255.255.255 192.168.50.1 metric 1
route print -4 | findstr 198.51.100.44
Obnovitev prehoda obnovi običajni internet, kar to naredi za čisto stikalo za vklop in izklop. Ni odvisno od skripta, ki spremlja dogodke vmesnika. Prav tako mu ni mar, kako je omrežje kategorizirano.
Cena je popolna izolacija, dokler tunel ne deluje. Posodobitve se ustavijo, z njimi pa tudi prav tisti prenos, ki je sprožil vajo. Na delovnem prenosniku je to pogosto pravilno, na osebnem stroju pa je odločitev, ki jo je treba sprejeti zavestno.
Zakaj ikona globusa ničesar ne dokazuje
Windows poroča o dosegljivosti s preizkusom proti končni točki Microsofta. Ta preizkus ne pove ničesar o vašem tunelu. Povezan tunel lahko sedi za globusom, ki poroča, da interneta ni, mrtev pa lahko kaže zdravo povezavo.
Preizkusite tako, da ubijete proces odjemalca, nato pa poskusite doseči javni naslov po številki. Poizvedba imena je lahko odgovorjena iz predpomnilnika, zato niti ikona niti odgovor DNS nista dokaz.
Kaj zabeležiti po resnični prekinitvi
Test izvedite kot zaporedje in ne kot eno preverjanje. Ubijte proces namesto da se odklopite, nato poskusite številčni naslov v obeh družinah. Nato obnovite odjemalca in potrdite, da še vedno doseže svoj strežnik po poti, ki ste jo obdržali.
taskkill /IM openvpn-gui.exe /F
ping -4 198.51.100.44
ping -6 2606:4700:4700::1111
route print -4 | findstr /c:"0.0.0.0"
Zaporedje ponovite po mirovanju, po spremembi Wi-Fi in po prehodu s kabla na brezžično. Prav pri teh prehodih spodletita metoda profila in vedenje DHCP. Pravilo, ki drži na pisalni mizi, ne drži nujno v hotelu.
Korak razveljavitve zapišite ob vsako pravilo in pot. Microsoft dokumentira ustvarjanje odhodnih pravil v svoji referenci pravil požarnega zidu Windows, in to je boljši vir od priročnika samo s posnetki zaslona.