Odjemalec pravi povezano, ključavnica je zaklenjena, spletno mesto pa še vedno beleži naslov vašega stanovanja. Nič ni spodletelo. Tunel ne nadomesti vašega Wi-Fi ali mobilne povezave; okoli izbranih paketov položi drug ovoj in ta ovoj pošlje po omrežju, ki ste ga že imeli. Razumevanje trika je predvsem sledenje eni zahtevi in opazovanje, kje se ovoj odpre, saj skoraj vsak zmeden simptom, od uhajanja domačega naslova do zataknjenega velikega prenosa, izvira s te meje.

Dva ovoja, ena fizična povezava

Vaš prenosnik ohranja običajno povezavo z usmerjevalnikom, usmerjevalnik pa ohranja običajno povezavo s ponudnikom. Na tej poti se ob dvigu tunela ne spremeni nič. Spremeni se to, da se izbrani paketi predajo navideznemu vmesniku, zavijejo v nov paket, naslovljen na partnerja VPN, in pošljejo kot običajen promet po fizični povezavi.

Sprejemna stran je naprava, ki ovoj odpre in izvirni paket pošlje naprej proti njegovemu cilju. Med obema koncema opazovalec vidi zunanjo glavo in nič o notranji, razen če jo protokol šifrira, kar počne večina potrošniških protokolov in splošna tehnika tega ne zahteva.

Zato je navidezni vmesnik hkrati resničen in zavajajoč. Obstaja kot jedrni objekt z naslovom in največjo prenosno enoto, operacijski sistem pa usmerja promet vanj kot v kateri koli drug vmesnik. Ni kabel in njegov obstoj dokazuje le, da je komponenta nameščena. Ali ga vaš brskalnik uporablja, odločajo poti, ne pa to, da je vmesnik dvignjen.

Spremljajte eno zahtevo na poti

Izberite cilj in vprašajte jedro, kateri vmesnik bo uporabilo. Ta en sam ukaz razreši večino razprav o tem, ali tunel sploh kaj počne:

ip route get 203.0.113.7
ip -brief addr show
ip -4 addr show dev wg0

Če izpis poti navaja vmesnik tunela, bo paket zavit. Če navaja fizični vmesnik, ne bo, in noben ponovni zagon odjemalca tega ne spremeni. Drugi ukaz prikaže oba vmesnika drug ob drugem, in tako opazite tunel, ki se je dvignil brez naslova ali z naslovom iz napačne družine.

Nato poglejte prvi skok znotraj ovoja in ga primerjajte s prvim skokom zunaj:

traceroute -n -m 3 203.0.113.7
sudo tcpdump -ni wg0 -c 5

Znotraj tunela je prvi skok notranji naslov partnerja, ne vaš usmerjevalnik. Zajem na vmesniku tunela prikaže notranje pakete, to je promet, za katerega aplikacija meni, da ga pošilja. Sočasni zajem na fizičnem vmesniku prikaže zunanje pakete, oba skupaj pa sta najjasnejši prikaz tega, kaj tunel v resnici počne.

Trije naslovi in spletno mesto vidi le enega

Ljudje to nenehno mešajo, zmeda pa ustvarja lažna poročila o uhajanju. To so različna polja v različnih glavah z različno življenjsko dobo.

AddressWhere it appearsWho can see it
Endpoint addressOuter header, the peer you connect toYour access network and the path to it
Inner tunnel addressInside the envelope, on the virtual interfaceThe peer, and anything the peer routes to
Exit addressSource of the packet that reaches the websiteThe website and its upstream

Številka ob navideznem vmesniku je druga vrstica. To ni naslov, ki ga zabeleži spletno mesto, in navajanje kot vaš javni IP je preprosto napačno. Naslov, ki ga vidi spletno mesto, dodeli izhod, pri tunelu v zasebno omrežje pa javnega izhoda morda sploh ni, ker cilj živi znotraj organizacije in ne na internetu.

Tunel med lokacijami je isti mehanizem z drugimi končnimi točkami. Dva usmerjevalnika zavijata promet med omrežji in nobena posamezna naprava nima nameščenega odjemalca. Ovoj je načeloma enak, upravna meja pa ne.

Kje se ovoj odpre in kaj ga preživi

Tunel se konča pri svojem partnerju. Če šifriranje same aplikacije sega dlje, preživi to mejo, kar je običajen primer pri HTTPS: seja brskalnika se konča na spletnem mestu, zato izhod posreduje šifrirano besedilo, ki ga ne more prebrati.

Nič drugega privzeto ne preživi. Nešifrirana zahteva je na izhodu berljiva natanko tako, kot je bila berljiva v Wi-Fi kavarne, in tunel ne doda zaščite, ki je aplikacija ni imela nikoli. Prav tako pravila požarnega zidu in politika posredovanja izhoda odločajo, kaj se zgodi naprej; uspešno rokovanje je dejstvo o povezavi s partnerjem, ne o preostanku poti.

Dodatna obremenitev je druga vidna posledica. Vsak paket nosi dodatno glavo, zunanji transport pa lahko doda svojo, zato se uporabna obremenitev na paket zmanjša. Na poti s fiksno največjo prenosno enoto je prav zato tunel lahko spusti ping in ustavi veliko nalaganje.

Preverite pot, ki jo je aplikacija resnično ubrala

Zadnji korak je potrditi konkretno aplikacijo, ne stroja na splošno. Razrešite cilj, poglejte pot za ta naslov in nato opazujte povezavo, dokler je odprta:

getent hosts example.com
ip route get "$(getent hosts example.com | awk '{print $1; exit}')"
ss -tnp state established '( dport = :443 )'

Če pot navaja tunel, seznam vtičnic pa kaže povezavo z izvornim naslovom s fizičnega vmesnika, je aplikacija vezana na nekaj določenega, ali pa drugo tunel tekmuje za privzeto pot. To je vprašanje usmerjanja in nanj je mogoče odgovoriti iz teh treh izpisov, ne z zaslona stanja odjemalca.

Varnostna arhitektura RFC 4301 opisuje različico tega zavijanja na ravni IP za IPsec, in enaka logika plasti velja za WireGuard in OpenVPN. Ko lahko pokažete na notranji paket in zunanji paket kot na ločena objekta, večina vedenja tunela preneha biti skrivnostna in postane usmerjevalna tabela, ki jo lahko preberete.

Sorodni članki