Հաճախորդը հայտնում է միացված, կողպեքը փակ է, և կայքը դեռ գրանցում է ձեր բնակարանի հասցեն։ Ոչինչ չի ձախողվել։ Թունելը չի փոխարինում ձեր Wi-Fi-ը կամ բջջային կապը. այն երկրորդ ծրար է դնում որոշ փաթեթների շուրջ և ուղարկում է այդ ծրարը ձեր արդեն ունեցած ցանցով։ Հնարքի ըմբռնումը հիմնականում մեկ հարցումի հետևելն ու այն նկատելն է, թե որտեղ է բացվում ծրարը, քանի որ գրեթե յուրաքանչյուր շփոթեցնող ախտանիշ՝ տնային հասցեի արտահոսքից մինչև կանգնած մեծ ներբեռնում, գալիս է հենց այդ սահմանից։

Երկու ծրար, մեկ ֆիզիկական կապ

Ձեր նոութբուքը պահպանում է իր սովորական կապը երթուղիչի հետ, իսկ երթուղիչը պահպանում է իր սովորական կապը մատակարարի հետ։ Այդ ուղու վրա ոչինչ չի փոխվում, երբ թունելը բարձրանում է։ Փոխվում է այն, որ ընտրված փաթեթները հանձնվում են վիրտուալ միջերեսին, փաթաթվում VPN գործընկերոջը հասցեագրված նոր փաթեթի մեջ և ուղարկվում որպես սովորական երթևեկություն ֆիզիկական կապով։

Ընդունող ծայրը սարք է, որը բացում է ծրարը և բնօրինակ փաթեթն ուղղում դեպի նշանակված վայրը։ Երկու ծայրերի միջև դիտորդը տեսնում է արտաքին վերնագիրը և ոչինչ ներքինի մասին, եթե արձանագրությունը չի գաղտնագրում այն, ինչն անում են սպառողական արձանագրությունների մեծ մասը և ինչը ընդհանուր տեխնիկան չի պահանջում։

Այդ պատճառով վիրտուալ միջերեսը միաժամանակ իրական է և մոլորեցնող։ Այն գոյություն ունի որպես միջուկի օբյեկտ՝ հասցեով և առավելագույն փոխանցման միավորով, և օպերացիոն համակարգը երթևեկությունն ուղղում է դրա մեջ ինչպես ցանկացած այլ միջերեսի։ Այն մալուխ չէ, և դրա գոյությունը միայն ապացուցում է, որ բաղադրիչ է տեղադրված։ Արդյոք ձեր զննարկիչը օգտագործում է այն, որոշում են երթուղիները, ոչ թե այն, որ միջերեսը միացված է։

Դիտեք մեկ հարցումի ճանապարհը

Ընտրեք նպատակակետ և հարցրեք միջուկին, թե որ միջերեսն է օգտագործելու։ Այս մեկ հրամանը լուծում է վեճերի մեծ մասը այն մասին, թե արդյոք թունելը որևէ բան անում է:

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

Եթե երթուղու ելքը նշում է թունելի միջերեսը, փաթեթը կփաթաթվի։ Եթե այն նշում է ֆիզիկական միջերեսը, չի փաթաթվի, և հաճախորդի վերագործարկումը դա չի փոխի։ Երկրորդ հրամանը ցույց է տալիս երկու միջերեսները կողք կողքի, և հենց այդպես եք նկատում առանց հասցեի կամ սխալ ընտանիքի հասցեով բարձրացած թունելը։

Այնուհետև նայեք ծրարի ներսից առաջին ցատկին և համեմատեք այն դրսի առաջին ցատկի հետ:

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

Թունելի ներսում առաջին ցատկը գործընկերոջ ներքին հասցեն է, ոչ ձեր երթուղիչը։ Թունելի միջերեսի վրա գրավումը ցույց է տալիս ներքին փաթեթները, այսինքն այն երթևեկությունը, որը հավելվածը կարծում է, թե ուղարկում է։ Միաժամանակ ֆիզիկական միջերեսի վրա գրավումը ցույց է տալիս արտաքին փաթեթները, և երկուսը միասին թունելի իրական գործողության ամենապարզ ցուցադրությունն են։

Երեք հասցե, և կայքը տեսնում է միայն մեկը

Մարդիկ անընդհատ շփոթում են դրանք, և շփոթությունը կեղծ արտահոսքի հաշվետվություններ է ստեղծում։ Դրանք տարբեր դաշտեր են տարբեր վերնագրերում՝ տարբեր կյանքի տևողությամբ։

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

Վիրտուալ ադապտերի կողքի թիվը երկրորդ տողն է։ Այն հասցեն չէ, որը գրանցում է կայքը, և այն ձեր հանրային IP անվանելը պարզապես սխալ է։ Կայքի տեսած հասցեն տալիս է ելքը, և մասնավոր ցանցի թունելում կարող է ընդհանրապես հանրային ելք չլինել, քանի որ նպատակակետը գտնվում է կազմակերպության ներսում, ոչ թե ինտերնետում։

Կայքերի միջև թունելը նույն մեխանիզմն է այլ ծայրակետերով։ Երկու երթուղիչներ փաթաթում են երթևեկությունը ցանցերի միջև, և ոչ մի առանձին սարք հաճախորդ տեղադրված չունի։ Ծրարը սկզբունքորեն նույնն է, վարչական սահմանը՝ ոչ։

Որտեղ է բացվում ծրարը, և ինչ է վերապրում այն

Թունելը ավարտվում է իր գործընկերոջ մոտ։ Եթե հավելվածի սեփական գաղտնագրումն ավելի հեռու է տարածվում, այն վերապրում է այդ սահմանը, ինչը HTTPS-ի սովորական դեպքն է. զննարկիչի սեանսը ավարտվում է կայքում, ուստի ելքը փոխանցում է գաղտնագրված տեքստ, որը չի կարող կարդալ։

Ուրիշ ոչինչ չի վերապրում լռելյայն։ Չգաղտնագրված հարցումը ելքում ընթեռնելի է ճիշտ այնպես, ինչպես ընթեռնելի էր սրճարանի Wi-Fi-ում, և թունելը չի ավելացնում պաշտպանություն, որը հավելվածը երբեք չի ունեցել։ Նույն կերպ, ելքի firewall-ի կանոններն ու փոխանցման քաղաքականությունը որոշում են, թե ինչ կլինի հետո. հաջող ձեռքսեղմումը փաստ է գործընկերոջ կապի մասին, ոչ թե ճանապարհորդության մնացած մասի։

Ավելորդ ծախսը մյուս տեսանելի հետևանքն է։ Յուրաքանչյուր փաթեթ կրում է լրացուցիչ վերնագիր, և արտաքին տրանսպորտը կարող է ավելացնել իր սեփականը, ուստի փաթեթի օգտակար բեռը փոքրանում է։ Հաստատուն առավելագույն փոխանցման միավորով ուղու վրա հենց դրա համար թունելը կարող է անցկացնել ping և կանգնեցնել մեծ վերբեռնում։

Ստուգեք այն ուղին, որն իրականում անցել է հավելվածը

Վերջին քայլը կոնկրետ հավելվածը հաստատելն է, ոչ թե մեքենան ընդհանուր առմամբ։ Լուծեք նպատակակետը, նայեք այդ հասցեի երթուղուն, ապա դիտեք կապը, քանի դեռ այն բաց է:

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

Եթե երթուղին նշում է թունելը, բայց սոքեթների ցանկը ցույց է տալիս կապ ֆիզիկական միջերեսի աղբյուրի հասցեով, հավելվածը կապված է ինչ-որ կոնկրետ բանի, կամ երկրորդ թունելը մրցում է լռելյայն երթուղու համար։ Սա երթուղավորման հարց է, և դրան կարելի է պատասխանել այս երեք ելքերից, ոչ թե հաճախորդի կարգավիճակի էկրանից։

RFC 4301 անվտանգության ճարտարապետությունը նկարագրում է այս փաթաթման IP շերտի տարբերակը IPsec-ի համար, և շերտերի նույն տրամաբանությունը գործում է WireGuard-ի և OpenVPN-ի համար։ Երբ կարողանաք մատնանշել ներքին փաթեթը և արտաքին փաթեթը որպես առանձին օբյեկտներ, թունելի վարքագծի մեծ մասը դադարում է առեղծված լինելուց և դառնում է երթուղային աղյուսակ, որը կարող եք կարդալ։

Առնչվող հոդվածներ