Kiel testi VPN-mortŝaltilon sen viaj realaj kontoj
Faru teston de la mortŝaltilo kun loga paĝo kaj rezerva profilo: kovru ĉiun interrompan tipon, legu la elirkodojn de curl kaj apartigu veran blokadon de DNS-fiasko.
Vi ne bezonas realan konton por ekscii, ĉu mortŝaltilo tenas; ĝuste tion riskigas testo. La kontrolo kreas mallongan fenestron, en kiu trafiko eble aŭ ne eble eliros ekster la tunelon, do la ŝarĝo devus esti io, kion vi povas perdi. Mi nun faras tion kun loga paĝo kaj rezerva retumila profilo, kaj ĝi donas pli klaran respondon ol la rutino kun retumilo kaj retpoŝto, kiun mi uzis antaŭe. La sekvo sekvas la saman ordon, kiun la kliento prezentas: la agordo, la celo, la transiro, poste la pruvoj.
La testo respondas unu mallarĝan demandon: dum ĉi tiu transiro, ĉu ĉi tiu aplikaĵo povas atingi la reton ekster la tunelo? Ĝi diras nenion pri tio, ĉu la resto de la politiko estas prudenta. Tenu la amplekson tiel malgranda, kaj la rezulto indas esti skribita.
Trovu la ŝaltilon kaj ĝian amplekson en la kliento
Malfermu la klienton kaj trovu la blokan agordon antaŭ ol ŝanĝi ajnan retan staton. Vendistoj nomas ĝin malsame: mortŝaltilo, ŝlosa reĝimo, reta seruro, bloki trafikon ekster la tunelo. La etikedo diras malpli ol la opcioj interne. Gravas ĉu la blokado validas ĉiam, aŭ nur kiam la aplikaĵo decidas, ke tunelo ĵus malsukcesis, kaj ĉu ĝi kovras ĉiun aplikaĵon aŭ elektitan liston.
Poste listigu la transirojn, kiujn via kliento efektive povas plenumi. Uzanto-iniciatita malkonekto, eliro el la aplikaĵo kaj perdo de kontakto kun la servilo estas tri malsamaj kodaj vojoj en la plej multaj klientoj, kaj ili ne kunhavas unu blokan politikon. Iuj liberigas la blokadon kiam la aplikaĵo finiĝas. Aliaj lasas filtrajn regulojn instalitaj ĝis io forigas ilin. Legu la agordan referencon de la vendisto por la konstruo, kiun vi rulas, anstataŭ supozi, poste notu, kiun el la tri vi testas.
Notu ankaŭ la profilon: protokolo, adresaj familioj kaj ĉu dividita tunelado estas ŝaltita. Aserto pri la tuta aparato estas sensignifa, se la profilo intence ekskludas kelkajn aplikaĵojn, kaj ekskludo, kiun vi agordis, ne estas liko. La agorda referenco de OpenVPN Connect estas la speco de paĝo, kiu nomas, kiu ŝaltilo ŝanĝas kiun konduton, kvankam la etikedoj varias laŭ kliento.
Elektu logan celon, kiu funkcias ankaŭ sen la tunelo
La logo bezonas du ecojn, kaj preterlasi iun ajn el ili produktas nelegeblan rezulton. Ĝi devas esti atingebla rekte kiam la tunelo estas malŝaltita kaj la blokado estas malŝaltita, alie «ĝi ĉesis respondi» povus simple signifi, ke la gastiganto foriris. Kaj ĝi ne devas bezoni ensaluton, kuketon aŭ pagon, por ke liko kostu al vi loglinion anstataŭ sesion.
Statika paĝo sur gastiganto, kiun vi kontrolas, estas la pura elekto. Rezerva virtuala maŝino kun simpla HTTP-servilo estas preskaŭ same bona, kaj publika ligokontrola paĝo funkcias, se vi akceptas, ke ĝia havebleco estas ekster via kontrolo. Notu la adreson, la pordon, la adresan familion kaj ĉu la peto bezonas nomserĉon, ĉar ĉiu el tiuj fariĝas variablo, kiun vi eble devos izoli poste.
Establu la bazlinion antaŭ ol tuŝi la ŝaltilon. Kun la tunelo supre, la logo devas respondi tra la tunelo, kio pruvas, ke la politika itinero funkcias. Kun la tunelo malsupre kaj la blokado malŝaltita, ĝi devas respondi rekte, kio pruvas, ke la celo vivas. Nur tiam malsukceso en la blokita stato diras al vi ion.
Plenumu la transirojn en fiksa ordo
Prenu la transirojn unu post la alia kaj donu al ĉiu kelkajn sekundojn por stabiligi, ĉar klientoj ofte disfaligas kaj rekonstruas regulojn en tiu intervalo. Ruli la saman mallongan kontrolon ĉiufoje tenas la observojn kompareblaj:
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 |
La vico pri eliro el la aplikaĵo meritas sian propran ruladon, eĉ se vi neniam fermas la klienton en normala uzo. Se la blokado liberiĝas ĉe eliro, paneo aŭ devigita ĝisdatigo donas al vi la saman ekspozicion, kaj tio estas fakto pri la deplojo, ne pri via pacienco. En Windows la ekvivalentaj provoj estas Resolve-DnsName decoy.example kaj curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
Apartigu blokadon de rompita solvilo
Paĝo, kiu malsukcesas ŝargi, havas plurajn kaŭzojn, kaj nur unu el ili estas la ŝaltilo funkcianta. Se la nomo ne solviĝas, vi lernis, ke DNS estas blokita aŭ rompita, ne ke la datenvojo estas blokita. Provu ankaŭ laŭliteran adreson, por ke la respondo tute ne dependu de solvado.
La elirkodoj de curl apartigas tiujn kazojn: 6 estas malsukceso de nomsolvado, 7 signifas, ke la konekto estis rifuzita, 28 estas tempolimo. Blokita itinero kutime aperas kiel tempolimo aŭ rifuzo kontraŭ laŭlitera adreso. Blokado nur de DNS lasas 6 kaj kaŝas ĉion alian. Kaŝmemorigita paĝo aŭ kapta portalo trompas la okulon, tial la pruvo estas la elirkodo, ne la ekrano.
Ripetu la provon super IPv6 kun laŭlitera adreso. Blokado, kiu kovras IPv4 kaj ignoras IPv6, estas sufiĉe ofta por meriti sian propran linion en viaj notoj, kaj kliento, kiu malŝaltas IPv6 ekster la tunelo, devus malsukcesi pure en ambaŭ familioj.
Notu la amplekson, kiun la rezulto kovras
Kiam la tunelo revenos, konfirmu la resaniĝon: la logo respondas tra la tunelo, la solvilo redonas respondojn, kaj la politiko restas tie, kie vi lasis ĝin. Poste malfaru la eksperimentojn. Provizora fajroŝirma regulo, sencimiga itinero aŭ testa profilo lasitaj en la loko konfuzos la sekvan ruladon kaj povas postvivi la aplikaĵon.
Unu paŝo kovras unu klientan konstruon, unu profilon, unu transiron kaj unu adresan familion. Skribu tiujn kvar kune kun la rezulto:
- Klienta konstruo kaj platformo, kaj ĉu la agordo estas por profilo aŭ tutmonda.
- Profilo, protokolo kaj ajnaj ekskludoj de dividita tunelo.
- Testita transiro, kaj kiel vi ekigis ĝin.
- Adresaj familioj kaj DNS, kun la elirkodoj de curl por la blokita kaj la neblokita stato.
Se iu linio estas malplena, la testo ne finiĝis. Vagado signifas ripeti la vicon pri retŝanĝo. Nesuperrigardata restarto signifas kontroli, ke la reguloj revenas, kio estas demando pri restaŭra ordo, ne pri la ŝaltilo. Ripetu la sekvencon post klienta ĝisdatigo, ĉar la ŝaltiloj malofte ŝanĝiĝas dum la konduto malantaŭ ili ja ŝanĝiĝas. Tenu la logon proksime: nenio por rotacii, kaj la sekva kontrolo daŭras kvin minutojn.