Klients saka, ka ir savienots, slēdzene ir aizvērta, un vietne joprojām reģistrē jūsu dzīvokļa adresi. Nekas nav neizdevies. Tunelis neaizstāj jūsu Wi-Fi vai mobilo savienojumu; tas ietin atsevišķus paketes otrajā aploksnē un sūta šo aploksni pa tīklu, kas jums jau bija. Trika izpratne lielākoties nozīmē sekot vienam pieprasījumam un pamanīt, kur aploksne tiek atvērta, jo gandrīz katrs mulsinošais simptoms, no mājas adreses noplūdes līdz iesprūdušai lielai lejupielādei, nāk no šīs robežas.

Divas aploksnes, viens fizisks savienojums

Jūsu portatīvais dators saglabā parasto savienojumu ar maršrutētāju, un maršrutētājs saglabā parasto savienojumu ar pakalpojumu sniedzēju. Šajā ceļā nekas nemainās, kad tunelis paceļas. Mainās tas, ka atlasītās paketes tiek nodotas virtuālajai saskarnei, ietītas jaunā paketē, kas adresēta VPN partnerim, un nosūtītas kā parasta plūsma pa fizisko savienojumu.

Saņēmējs gals ir ierīce, kas atver aploksni un pārsūta sākotnējo paketi tās galamērķa virzienā. Starp abiem galiem novērotājs redz ārējo galveni un neko par iekšējo, ja vien protokols to nešifrē, ko dara lielākā daļa patērētāju protokolu un ko vispārējā tehnika neprasa.

Tāpēc virtuālā saskarne ir gan reāla, gan maldinoša. Tā pastāv kā kodola objekts ar adresi un maksimālo pārraides vienību, un operētājsistēma novirza plūsmu uz to kā uz jebkuru citu saskarni. Tas nav kabelis, un tā pastāvēšana pierāda tikai to, ka komponents ir instalēts. Vai jūsu pārlūks to izmanto, izlemj maršruti, nevis tas, vai saskarne ir ieslēgta.

Vērojiet vienu pieprasījumu ceļā

Izvēlieties galamērķi un pajautājiet kodolam, kuru saskarni tas izmantos. Šī vienā komanda atrisina lielāko daļu strīdu par to, vai tunelis vispār kaut ko dara:

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

Ja maršruta izvade nosauc tuneļa saskarni, pakete tiks ietīta. Ja tā nosauc fizisko saskarni, tā netiks ietīta, un nekāda klienta restartēšana to nemainīs. Otrā komanda rāda abas saskarnes līdzās, un tā jūs pamanāt tuneli, kas pacēlās bez adreses vai ar nepareizas saimes adresi.

Pēc tam aplūkojiet pirmo lēcienu aploksnes iekšpusē un salīdziniet to ar pirmo lēcienu ārpusē:

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

Tuneļa iekšpusē pirmais lēciens ir partnera iekšējā adrese, nevis jūsu maršrutētājs. Uzņemšana tuneļa saskarnē rāda iekšējās paketes, tas ir trafiks, ko lietotne uzskata par sūtāmu. Vienlaicīga uzņemšana fiziskajā saskarnē rāda ārējās paketes, un abas kopā ir skaidrākais pierādījums tam, ko tunelis patiešām dara.

Trīs adreses, un vietne redz tikai vienu

Cilvēki tos nemitīgi jauc, un apjukums rada viltus noplūdes ziņojumus. Tie ir dažādi lauki dažādās galvenēs ar dažādu mūžu.

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

Skaitlis blakus virtuālajam adapterim ir otrā rinda. Tā nav adrese, ko reģistrē vietne, un to kā jūsu publisko IP minēt ir vienkārši nepareizi. Adresi, ko vietne redz, piešķir izeja, un privāttīkla tunelī publiskas izejas var vispār nebūt, jo galamērķis atrodas organizācijas iekšienē, nevis internetā.

Tunelis starp vietnēm ir tas pats mehānisms ar citiem galapunktiem. Divi maršrutētāji ietin trafiku starp tīkliem, un nevienā atsevišķā ierīcē nav instalēts klients. Aploksne principā ir identiska, administratīvā robeža nav.

Kur aploksne tiek atvērta un kas to pārdzīvo

Tunelis beidzas pie sava partnera. Ja pašas lietotnes šifrēšana sniedzas tālāk, tā pārdzīvo šo robežu, kas ir parastais HTTPS gadījums: pārlūka sesija beidzas vietnē, tāpēc izeja pārsūta šifrētu tekstu, ko tā nevar nolasīt.

Nekas cits pēc noklusējuma nepārdzīvo. Nešifrēts pieprasījums izejā ir nolasāms tieši tāpat, kā tas bija nolasāms kafejnīcas Wi-Fi, un tunelis nepievieno aizsardzību, kas lietotnei nekad nav bijusi. Tāpat izejas ugunsmūra noteikumi un pārsūtīšanas politika izlemj, kas notiks tālāk; veiksmīga roku saspiešana ir fakts par savienojumu ar partneri, nevis par pārējo ceļojumu.

Papildu izmaksas ir otra redzamā sekas. Katra pakete nes papildu galveni, un ārējais transports var pievienot savu, tāpēc izmantojamā lietderīgā krava uz paketi sarūk. Ceļā ar fiksētu maksimālo pārraides vienību tieši tāpēc tunelis var izlaist ping un apstādināt lielu augšupielādi.

Pārbaudiet ceļu, ko lietotne patiešām nogāja

Pēdējais solis ir apstiprināt konkrēto lietotni, nevis mašīnu kopumā. Atrisiniet galamērķi, apskatiet šīs adreses maršrutu un pēc tam novērojiet savienojumu, kamēr tas ir atvērts:

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

Ja maršruts nosauc tuneli, bet ligzdu saraksts rāda savienojumu ar avota adresi no fiziskās saskarnes, lietotne ir piesaistīta kaut kam konkrētam, vai arī otrs tunelis sacenšas par noklusēto maršrutu. Tas ir maršrutēšanas jautājums, un uz to var atbildēt no šīm trim izvadēm, nevis no klienta statusa ekrāna.

RFC 4301 drošības arhitektūra apraksta šī ietīšanas IP slāņa versiju IPsec, un tā pati slāņu loģika attiecas uz WireGuard un OpenVPN. Kad varat norādīt uz iekšējo paketi un ārējo paketi kā uz atsevišķiem objektiem, lielākā daļa tuneļa uzvedības pārstāj būt noslēpumaina un kļūst par maršrutēšanas tabulu, ko varat nolasīt.

Saistītie raksti