Ako otestovať vypínač VPN bez skutočných účtov
Urobte test vypínača s návnadou a záložným profilom: pokryte každý typ výpadku, prečítajte návratové kódy curl a odlíšte skutočnú blokádu od poruchy DNS.
Na zistenie, či blokovací vypínač drží, nepotrebujete skutočný účet; práve účet test vystavuje riziku. Kontrola vytvára krátke okno, v ktorom prevádzka môže, ale nemusí vyjsť mimo tunela, preto má byť záťažou niečo, čo si môžete dovoliť stratiť. Teraz to robím s návnadou a záložným profilom prehliadača a dostávam jasnejšiu odpoveď než pri skoršom postupe s prehliadačom a webmailom. Ďalej idem v tom istom poradí, ktoré ponúka klient: nastavenie, cieľ, prechod a potom dôkaz.
Test odpovedá len na jednu úzku otázku: môže sa táto aplikácia počas tohto prechodu dostať do siete mimo tunela? nič nehovorí o tom, či je zvyšok politiky rozumný. Držte rozsah takto úzky a výsledok bude stáť za zápis.
Nájdite vypínač a jeho rozsah v klientovi
Otvorte klienta a nájdite nastavenie blokovania skôr, než zmeníte akýkoľvek sieťový stav. Výrobcovia ho nazývajú rôzne: blokovací vypínač, režim uzamknutia, sieťová uzávierka, blokovanie prevádzky mimo tunela. Označenie hovorí menej než možnosti vnútri. Dôležité je, či sa blokovanie uplatňuje vždy, alebo len keď aplikácia usúdi, že tunel práve zlyhal, a či pokrýva všetky aplikácie alebo vybraný zoznam.
Potom vypíšte prechody, ktoré váš klient skutočne dokáže vykonať. Odpojenie z podnetu používateľa, ukončenie aplikácie a strata kontaktu so serverom sú u väčšiny klientov tri rôzne cesty v kóde a nezdieľajú jednu politiku blokovania. Jedny uvoľnia blokovanie pri ukončení aplikácie. Iné nechajú pravidlá filtra, kým ich niečo neodstráni. Prečítajte si referenciu nastavení výrobcu pre svoj build namiesto predpokladov a potom zapíšte, ktorý z troch prípadov testujete.
Zapíšte aj profil: protokol, rodiny adries a či je zapnutý rozdelený tunel. Tvrdenie o ochrane celého zariadenia nemá zmysel, ak profil zámerne vylučuje niekoľko aplikácií, a vylúčenie, ktoré ste sami nastavili, nie je únik. Referencia nastavení OpenVPN Connect je práve taká stránka, ktorá pomenúva, ktorý prepínač mení ktoré správanie, hoci označenia sa medzi klientmi líšia.
Vyberte návnadu, ktorá funguje aj bez tunela
Návnada potrebuje dve vlastnosti a vynechanie ktorejkoľvek dáva nečitateľný výsledok. Musí byť dosiahnuteľná priamo, keď je tunel vypnutý a blokovanie neaktívne, inak môže informácia, že prestala odpovedať, znamenať len to, že host zmizol. A nesmie vyžadovať prihlásenie, súbor cookie ani platbu, aby únik stál jeden riadok logu namiesto relácie.
Statická stránka na hoste, ktorý kontrolujete, je najčistejšia voľba. Záložný virtuálny stroj s obyčajným HTTP serverom je takmer rovnako dobrý a verejná stránka na kontrolu pripojenia poslúži, ak prijmete, že jej dostupnosť je mimo vašej kontroly. Zapíšte adresu, port, rodinu adries a to, či požiadavka potrebuje vyhľadanie názvu, pretože každý z týchto bodov sa stane premennou, ktorú možno budete musieť neskôr izolovať.
Stanovte základný stav skôr, než sa dotknete vypínača. Keď je tunel zapnutý, návnada musí odpovedať cez tunel, čo dokazuje, že trasa podľa politiky funguje. Keď je tunel vypnutý a blokovanie neaktívne, musí odpovedať priamo, čo dokazuje, že cieľ žije. Až potom vám zlyhanie v zablokovanom stave niečo povie.
Vykonávajte prechody v pevnom poradí
Robte prechody po jednom a dajte každému niekoľko sekúnd na ustálenie, pretože klienti práve v tomto intervale často búrajú a znovu stavajú pravidlá. Opakovanie toho istého krátkeho testu zakaždým robí pozorovania porovnateľnými:
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 |
Riadok s ukončením aplikácie si zaslúži samostatné spustenie, aj keď v bežnom používaní klienta nikdy nezatvárate. Ak sa blokovanie pri ukončení uvoľní, pád alebo vynútená aktualizácia vám dajú rovnakú expozíciu, a to je fakt o nasadení, nie o vašej trpezlivosti. V systéme Windows sú ekvivalentné sondy Resolve-DnsName decoy.example a curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
Oddeľte blokovanie od pokazeného resolvera
Stránka, ktorá sa nenačíta, má niekoľko príčin a len jedna z nich je to, že vypínač funguje. Ak sa názov nevyrieši, dozvedeli ste sa, že DNS je blokované alebo pokazené, a nie že je zablokovaná dátová cesta. Otestujte aj doslovnú adresu, aby odpoveď vôbec nezávisela od rozkladu názvov.
Návratové kódy curl tieto prípady oddeľujú. 6 je zlyhanie rozkladu názvu, 7 znamená odmietnuté pripojenie, 28 je vypršanie času. Zablokovaná trasa sa zvyčajne prejaví ako vypršanie času alebo odmietnutie voči doslovnej adrese, zatiaľ čo blokovanie iba DNS nechá 6 a skryje všetko ostatné. Medzipamäťová stránka alebo zachytávací portál klamú oko, preto je dôkazom kód návratu, nie obrazovka.
Zopakujte sondu cez IPv6 s doslovnou adresou. Blokovanie, ktoré pokrýva IPv4 a ignoruje IPv6, je dosť bežné na to, aby si zaslúžilo samostatný riadok v poznámkach, a klient, ktorý vypína IPv6 mimo tunela, by mal čisto zlyhať v oboch rodinách.
Zapíšte rozsah, ktorý výsledok pokrýva
Keď sa tunel vráti, potvrďte obnovenie: návnada odpovedá cez tunel, resolver vracia odpovede a politika stojí tam, kde ste ju nechali. Potom experimenty vráťte späť. Dočasné pravidlo brány firewall, ladiaca trasa alebo testovací profil ponechané na mieste zmätú ďalšie spustenie a môžu prežiť aplikáciu.
Jedno prejdenie pokrýva jeden build klienta, jeden profil, jeden prechod a jednu rodinu adries. Zapíšte tie štyri spolu s výsledkom:
- Build klienta a platforma a to, či je nastavenie na profil alebo globálne.
- Profil, protokol a akékoľvek vylúčenia rozdeleného tunela.
- Testovaný prechod a spôsob, akým ste ho vyvolali.
- Rodiny adries a DNS, s návratovými kódmi curl pre zablokovaný aj nezablokovaný stav.
Ak je ktorýkoľvek riadok prázdny, test nie je dokončený. Roaming znamená zopakovanie riadku so zmenou siete. Neriadený reštart znamená kontrolu, či sa pravidlá vrátia, a to je otázka poradia obnovy, nie vypínača. Sekvenciu opakujte po aktualizácii klienta, pretože prepínače sa menia zriedka, kým správanie za nimi áno. Návnadu si ponechajte: netreba nič rotovať a ďalšia kontrola trvá päť minút.