VPN туннелі дегеніміз не және қорғаныс қайда тоқтайды
Туннель таңдалған пакеттерді сізде бұрыннан бар байланыс үстінде екінші конвертке салады. Бір сұранысты бақылап, сайт қандай мекенжайды шынымен жазатынын көріңіз.
Клиент қосылғанын айтады, құлып жабық, ал сайт әлі де пәтеріңіздің мекенжайын жазып отыр. Ешнәрсе істен шыққан жоқ. Туннель 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
Туннельдің ішінде бірінші секіріс — серіктестің ішкі мекенжайы, сіздің маршрутизаторыңыз емес. Туннель интерфейсіндегі жазу ішкі пакеттерді көрсетеді, бұл қолданба жіберіп жатыр деп есептейтін трафик. Сол уақытта физикалық интерфейсте жазу сыртқы пакеттерді көрсетеді, ал екеуі бірге туннельдің шын мәнінде не істейтінінің ең айқын көрінісі.
Үш мекенжай, ал сайт тек біреуін көреді
Адамдар бұларды үнемі шатастырады, ал шатасу жалған ағып кету есептерін тудырады. Бұлар әртүрлі тақырыпшалардағы әртүрлі өрістер, өмір сүру мерзімі де әртүрлі.
| Address | Where it appears | Who can see it |
|---|---|---|
| Endpoint address | Outer header, the peer you connect to | Your access network and the path to it |
| Inner tunnel address | Inside the envelope, on the virtual interface | The peer, and anything the peer routes to |
| Exit address | Source of the packet that reaches the website | The 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 қауіпсіздік архитектурасы IPsec үшін осы ораудың IP қабаты нұсқасын сипаттайды, ал қабаттардың сол логикасы WireGuard пен OpenVPN үшін де қолданылады. Ішкі пакет пен сыртқы пакетті бөлек нысандар ретінде көрсете алған кезде, туннель мінезінің көпшілігі жұмбақ болудан қалады да, оқуға болатын маршруттау кестесіне айналады.