Näin testaat VPN:n kill switchin ilman oikeita tilejäsi
Tee kill switch -testi houkutussivulla ja varaprofiililla: kata jokainen katkostyyppi, lue curlin poistumiskoodit ja erota todellinen esto DNS-virheestä.
Et tarvitse oikeaa tiliä selvittääksesi, pitääkö kill switch; juuri sen testi asettaa vaaraan. Tarkistus luo lyhyen ikkunan, jossa liikenne voi tai ei voi poistua tunnelin ulkopuolelle, joten hyötykuorman pitäisi olla jotain, minkä voit menettää. Teen tämän nyt houkutussivulla ja varaselainprofiililla, ja se antaa selvemmän vastauksen kuin aiemmin käyttämäni selain-ja-verkkosähköpostirutiini. Seuraava etenee samassa järjestyksessä, jonka asiakas esittää: asetus, kohde, siirtymä ja sitten todisteet.
Testi vastaa yhteen kapeaan kysymykseen: voiko tämä sovellus tämän siirtymän aikana päästä verkkoon tunnelin ulkopuolelle? Se ei kerro mitään siitä, onko muu käytäntö järkevä. Pidä laajuus niin pienenä, ja tulos on kirjaamisen arvoinen.
Löydä kytkin ja sen laajuus asiakkaasta
Avaa asiakas ja etsi eston asetus ennen kuin muutat mitään verkon tilaa. Valmistajat kutsuvat sitä eri tavoin: kill switch, lukitustila, verkkolukko, estä liikenne tunnelin ulkopuolella. Nimike kertoo vähemmän kuin sen sisällä olevat valinnat. Ratkaisevaa on, päteekö esto aina vai vain silloin, kun sovellus päättää, että tunneli on juuri epäonnistunut, ja kattaako se kaikki sovellukset vai valitun luettelon.
Listaa sitten siirtymät, jotka asiakkaasi todella voi suorittaa. Käyttäjän käynnistämä katkaisu, sovelluksesta poistuminen ja yhteyden menettäminen palvelimeen ovat useimmissa asiakkaissa kolme eri koodipolkua, eivätkä ne jaa yhtä estokäytäntöä. Jotkut vapauttavat eston, kun sovellus sulkeutuu. Toiset jättävät suodatussäännöt asennetuiksi, kunnes jokin poistaa ne. Lue valmistajan asetusviite siltä versiolta, jota ajat, sen sijaan että olettaisit, ja kirjaa sitten, mitä kolmesta testaat.
Kirjaa myös profiili: protokolla, osoiteperheet ja onko jaettu tunnelointi käytössä. Väite koko laitteesta on merkityksetön, jos profiili jättää tarkoituksella pois muutaman sovelluksen, eikä määrittämäsi poissulkeminen ole vuoto. OpenVPN Connectin asetusviite on sellainen sivu, joka nimeää, mikä kytkin muuttaa mitäkin toimintaa, vaikka nimikkeet vaihtelevat asiakkaittain.
Valitse houkutuskohde, joka toimii myös ilman tunnelia
Houkutus tarvitsee kaksi ominaisuutta, ja kumman tahansa väliin jättäminen tuottaa lukukelvottoman tuloksen. Sen on oltava suoraan tavoitettavissa, kun tunneli on alas ja esto pois päältä, muuten ”se lakkasi vastaamasta” voi yksinkertaisesti tarkoittaa, että isäntä katosi. Eikä se saa vaatia kirjautumista, evästettä tai maksua, jotta vuoto maksaa sinulle lokirivin istunnon sijaan.
Staattinen sivu isännällä, jota hallitset, on puhdas valinta. Varavirtuaalikone, jossa on tavallinen HTTP-palvelin, on lähes yhtä hyvä, ja julkinen yhteydentarkistussivu toimii, jos hyväksyt, että sen saatavuus on hallintasi ulkopuolella. Kirjaa osoite, portti, osoiteperhe ja tarvitseeko pyyntö nimihaun, koska jokaisesta niistä tulee muuttuja, joka sinun on ehkä eristettävä myöhemmin.
Aseta perustaso ennen kuin kosket kytkintä. Kun tunneli on ylhäällä, houkutuksen on vastattava tunnelin kautta, mikä todistaa, että käytännön reitti toimii. Kun tunneli on alhaalla ja esto pois päältä, sen on vastattava suoraan, mikä todistaa, että kohde on elossa. Vasta silloin estetyn tilan virhe kertoo sinulle jotain.
Suorita siirtymät kiinteässä järjestyksessä
Ota siirtymät yksi kerrallaan ja anna kullekin muutama sekunti asettua, koska asiakkaat usein purkavat ja rakentavat sääntöjä uudelleen siinä välissä. Saman lyhyen tarkistuksen ajaminen joka kerta pitää havainnot vertailukelpoisina:
curl -sS -o /dev/null -w 'http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_exit=$?"
dig +short decoy.example
curl -6 -sS -o /dev/null -w 'v6_http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_v6_exit=$?"
| Transition | Expected with the block on | Failure signature |
|---|---|---|
| Manual disconnect | Decoy stops answering within seconds | Decoy still returns 200 |
| Server or path failure | Blocked, with no exemption for the old endpoint | Direct access during the gap |
| Quit the app | Client-dependent; record what happens | Block disappears with the process |
| Wi-Fi to Ethernet | Block holds until the tunnel returns | Traffic flows mid-change |
Sovelluksesta poistumisen rivi ansaitsee oman ajoituksensa, vaikka et koskaan sulkisi asiakasta normaalissa käytössä. Jos esto vapautuu poistuttaessa, kaatuminen tai pakotettu päivitys antaa sinulle saman altistuksen, ja se on tosiasia käyttöönotosta, ei kärsivällisyydestäsi. Windowsissa vastaavat koetukset ovat Resolve-DnsName decoy.example ja curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
Erota esto rikkinäisestä ratkaisijasta
Sivulla, joka ei lataudu, on useita syitä, ja vain yksi niistä on toimiva kytkin. Jos nimi ei ratkea, olet oppinut, että DNS on estetty tai rikki, ettei datapolku ole estetty. Kokeile myös kirjaimellista osoitetta, jotta vastaus ei riipu lainkaan ratkaisemisesta.
curlin poistumiskoodit pitävät ne tapaukset erillään: 6 on nimen ratkaisun virhe, 7 tarkoittaa, että yhteys hylättiin, 28 on aikakatkaisu. Estetty reitti näkyy yleensä aikakatkaisuna tai hylkäyksenä kirjaimellista osoitetta vastaan. Pelkkä DNS-esto jättää 6:n ja kätkee kaiken muun. Välimuistiin tallennettu sivu tai vangitsemisportaali pettää silmän, siksi todiste on poistumiskoodi, ei näyttö.
Toista koe IPv6:n yli kirjaimellisella osoitteella. Esto, joka kattaa IPv4:n ja jättää IPv6:n huomiotta, on tarpeeksi yleinen ansaitakseen oman rivin muistiinpanoihisi, ja asiakkaan, joka poistaa IPv6:n käytöstä tunnelin ulkopuolella, pitäisi epäonnistua puhtaasti molemmissa perheissä.
Kirjaa laajuus, jonka tulos kattaa
Kun tunneli palaa, vahvista palautuminen: houkutus vastaa tunnelin kautta, ratkaisija palauttaa vastauksia ja käytäntö pysyy siinä, mihin jätit sen. Kumoa kokeet sen jälkeen. Paikalleen jäänyt tilapäinen palomuurisääntö, viritysreitti tai testiprofiili sekoittaa seuraavan ajon ja voi elää sovellusta pidempään.
Yksi kierros kattaa yhden asiakasversion, yhden profiilin, yhden siirtymän ja yhden osoiteperheen. Kirjoita ne neljä tuloksen kanssa:
- Asiakasversio ja alusta, sekä onko asetus profiilikohtainen vai yleinen.
- Profiili, protokolla ja mahdolliset jaetun tunnelin poissulkemiset.
- Testattu siirtymä ja miten laukaisit sen.
- Osoiteperheet ja DNS, curlin poistumiskoodeilla estetyn ja estämättömän tilan osalta.
Jos jokin rivi on tyhjä, testi ei ole valmis. Roaming tarkoittaa verkonvaihtorivin toistamista. Valvomaton uudelleenkäynnistys tarkoittaa sen tarkistamista, että säännöt palaavat, mikä on kysymys palautusjärjestyksestä, ei kytkimestä. Toista sarja asiakaspäivityksen jälkeen, koska kytkimet muuttuvat harvoin, kun taas niiden takana oleva toiminta muuttuu. Pidä houkutus lähellä: ei mitään kierrätettävää, ja seuraava tarkistus kestää viisi minuuttia.