VPN-ді хостта немесе VM ішінде іске қосу керек пе? Шешім нұсқаулығы
Туннель иесі ненің нені қамтитынын шешеді. Хост немесе қонақ орналасуын таңдап, оны қонақтың ішіндегі бағыт, DNS және шығыс тексерулерімен растаңыз.
Туннельді қонақтың ішінде құру да, оны хостта құру да браузер хабарлайтын мекенжайды өзгертеді, және ұқсастық осы жерде бітеді. Қонаққа тиесілі туннель өз кілттерін, әдепкі бағытын және шешушісін қонақ ядросының ішінде ұстайды, ал хост шифрланған пакеттерді бір қашықтағы мекенжайға жібереді. Хостқа тиесілі туннель — оның айна бейнесі: хост клиенті сеансты ұстайды және бағыттар мен саясатты қолданады, ал қонақ сыртқа шыққанды қарызға алады. Қате иесін таңдасаңыз, кейінгі әрбір белгі сізді қате машинаға жібереді. Екі команда бұл сұрақты шамамен бір минутта шешеді, ал бұл нұсқаулықтың қалғаны — жауаппен не істеу керектігі.
Клиентке қол тигізбес бұрын иесін анықтаңыз
Ереже шифрланған мәтіннің қайда өндірілетіні туралы, қай машина VPN белгішесін көрсететіні туралы емес. Егер оны қонақ өндірсе, қонаққа VPN серверіне жұмыс істейтін бағыт қажет және хосттан басқа ештеңе қажет емес. Егер оны хост өндірсе, қонақтың хост арқылы өтетін жолы хост клиенті жергілікті трафикке жүктейтін кез келген саясатқа төтеп беруі керек.
Әдетте үш сұрақ орналасуды сіз үшін таңдайды. Қонақтың трафигі хосттағы корпоративтік клиенттен өтуі керек пе? Онда туннель қонақтың ішінде. Бірнеше қонаққа бір тіркелгі дерегі мен бір шығыс мекенжайы керек пе? Онда ол хостта, қасақана реттелген қайта бағыттаумен. Қонақтың трафигі хосттың VPN-інен толығымен тыс қалуы керек пе? Онда қонақ туннелі ғана мұны құрылымы бойынша береді.
Жауапты VM атауының жанына бір жолға жазып қойыңыз: guest-owned немесе host-owned. Алты машинадан тұратын зертханада бұл жазба төмендегі кез келген қадамнан көбірек уақыт үнемдейді, өйткені ол сізді кірген машинада ешқашан болмаған туннельді тексеруден сақтайды.
WSL1 мен WSL2 — қарама-қарсы жағдайлар
WSL1 виртуалды машина емес, сондықтан орналасу сұрағы көбіне буланып кетеді. Оның Linux бинарлық файлдары аударма қабаты арқылы Windows желілік стекіне қарсы жұмыс істейді, ал Linux VPN клиентінің конфигурациялайтын дербес интерфейстері жоқ. Жұмыс істейтін нұсқа — Windows жағындағы туннель, ал дистрибутив ештеңеге ие болмай-ақ нәтижені пайдаланады.
WSL2 — керісінше. Ол Hyper-V виртуалды коммутаторының артындағы жеңіл көмекші VM-де нақты ядроны іске қосады, ал оның мекенжай кеңістігі хост жағындағы адаптер арқылы NAT-талады. Сондықтан дистрибутив ішіндегі Linux клиенті физикалық Linux жәшігіндегідей әрекет етеді: ол tun0 немесе wg0 жасайды, өз бағыттарын орнатады және жұмыс істейді. Ақау хост жағында тұрады. Windows VPN клиенті жергілікті желілерде трафикті бөгейтін саясатпен қосылғанда, ол WSL2 ішкі желісін сенімсіз жергілікті желі деп санайды және NAT жолын кеседі. Сонда дистрибутив DNS пен сыртқы қатынасты жоғалтады, ал өз туннелі әлі сау: wg show қол алысуды хабарлайды, ip route дұрыс көрінеді, ал curl ілініп қалады.
Қандай түзетуді қолдана алатыныңыз Windows жинағына байланысты. Ескісі — WSL ішкі желісі үшін хост клиентіндегі ерекшелік, ол клиенттің жергілікті желі немесе бөлінген туннель параметрлерінің астына қосылады. Жаңасы, оны қолдайтын Windows 11 жинақтарында, айналы желілеу: %UserProfile%\.wslconfig файлының [wsl2] бөліміне networkingMode=mirrored қойыңыз, wsl --shutdown іске қосыңыз, сонда дистрибутив жеке NAT ішкі желісінің орнына хосттың интерфейстерін бөліседі. Айналы режим localhost пен кіріс порттарының әрекетін де өзгертеді, сондықтан оны ауыстырып-қосқыш емес, көшіру ретінде қарастырыңыз.
NAT, көпір және хост нені көре алады
NAT астында қонақтың туннель пакеттері VPN серверінің жария мекенжайына бағытталады және хост адаптерінен шифрланған UDP немесе TCP ретінде шығады. Хост бір ағынды және оның байт санын көреді, ішіндегі межелер туралы ештеңе көрмейді. Көпірлі адаптер астында қонақтың физикалық LAN-да өзінің 2-деңгейлік сәйкестігі бар, өз DHCP жалдауын алады және MAC негізіндегі кез келген саясатқа екінші құрылғы болып көрінеді. Екі режимнің ешқайсысы хостқа туннель жүктемесін оқуға мүмкіндік бермейді; көпірлі қонақ жай ғана айналасындағы желіге әлдеқайда көрінеді.
Оқшаулаудың да төменгі шегі бар. Қонақ өз жадысына ие машинадан жасырына алмайды, ал хостты басқаратын адам қонақтың RAM-ынан кілттерді оқи алады. Қонақ туннелі сізге бағыттау шекарасы мен зиянды бағдарлама шекарасын береді, ноутбукті ұстап отырған адамнан қорғанысты емес. Құжатталған адаптер режимдерін таңдау кезінде ашық ұстаған жөн, өйткені режим хост көретін де, LAN көретін де нәрсені өзгертеді.
Нұсқаулық: орналастыру, конфигурациялау, дәлелдеу
Осы төрт тексеруді жаңа қонақ қабығында ретімен орындап, жазған иесіне сәйкес келмейтін біріншісінде тоқтаңыз.
ip route get 1.1.1.1tun0немесеwg0қайтарса — қонақтың меншігі, ал жеке келесі секіріспенeth0қайтарса — хосттың меншігі.resolvectl query example.com, немесе қонақ шешуші қызметті іске қоспайтын жерде/etc/resolv.confоқыңыз. Трафикті таситын, бірақ DNS-ті тасымайтын туннель — ең көп кездесетін жартылай конфигурацияланған күй.- Шығыстарды салыстырыңыз: қонақта
curl -4 -s https://ifconfig.meжәне хосттаcurl.exe -4 -s https://ifconfig.me. Әртүрлі мекенжайлар қонақ туннельге ие дегенді білдіреді, ал VPN-дегі хост үй провайдерін көрсететін қонақпен бірге — «ештеңе мұраға алынбады» жағдайы. - Екеуін де
-6-мен қайталаңыз. Тек v4 туннелі v6-ны ағызады, егер клиент оны бөгемесе немесе бағыттамаса, ал көп клиент әдепкі бойынша v6-ны физикалық интерфейсте қалдырады.
Бірнеше қонақ бір туннельді бөлісетін хост-шлюз дизайнында хост қайта бағыттап, аударуы керек. Linux хостта бұл үш бөлік, және олардың бірі жоқ болса, қонақ үнсіз әдеттегі бағытына қайтады:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
iptables -A FORWARD -i virbr0 -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
WireGuard жағында хост серіктесінің AllowedIPs мәні қонақтардың ішкі желісін қамтуы керек, мысалы 192.168.122.0/24, әйтпесе қайтарым пакеттер ешқашан жетпейді және конфигурация өрт қабырғасының мәселесіне ұқсайды. Windows хост Интернет қосылысын бөлісу немесе Hyper-V коммутаторындағы NAT ережесі арқылы сол нәтижеге жетеді және сол қайтарым жолын тексеруді қажет етеді.
Орналасу әлі ашық болса, бұл кесте ең жиі кездесетін нұсқаларды қамтиды:
| Situation | Owner | Check first |
|---|---|---|
| One VM, host also on a corporate VPN | Guest | Does the host client block local networks? |
| Six lab VMs, one exit address | Host plus forwarding | ip_forward, NAT rule, server AllowedIPs |
| Malware or research VM | Guest, NAT | Snapshot age and resolver state |
| Bridged VM on an office LAN | Guest | DHCP lease and port security |
Екі туннель, екі қонақ және олардың арасындағы қайшылықтар
Бір уақытта екі шығыс қажет болса, төтеп беретін үлгі — әр қонаққа бір туннель. Әр VM өз әдепкі бағыты мен шешушісін сақтайды, хост кәдімгі желіде қалады, ал екі туннель бір бағыттау кестесі үшін ешқашан таласпайды. Екі қонақты көпірмен қосу олардың бағыттарын да біріктірмейді: виртуалды желі жол береді, ал әр клиентке бұл жергілікті трафиктің туннельді айналып өтуі мүмкін екенін әлі де айту керек.
Хост туннелі мен қонақ туннелін бірге іске қосу заңды, және әдейі біріктіру кейде дәл керек нәрсе: қонақ өз туннелінен шығады, ал ол туннель хосттың туннелінен шығады. Мұны үзіліске айналдыратын нәрсе — қай соңғы нүктеге қай қабаттан жету керектігін ешкім жазып қоймаған. Меже мен иесінен тұратын екі бағанды тізім ұстаңыз, сонда бағыт қайшылығы түстен кейінгі іздеудің орнына бір сұрауға айналады.
Тексеріңіз, содан кейін қалпына келтіруді иесінде қалдырыңыз
Қонақтың ішінен сынаңыз жаңа қолданба процесімен: трафик, атауды шешу, екі мекенжай тұқымдасы және туннель құлағанда не болады. Хосттың VPN белгішесі қонақтың қамтуы туралы ештеңе айтпайды, және бұл осы саланың барлығында ең жиі кездесетін жалған растау.
Қалпына келтіру де иесіне тиесілі. Қонаққа тиесілі туннель қонақтың өз клиентімен және оның жазған бағыттарымен қалпына келеді. Хостқа тиесілі дизайн хосттың жүктелу ретімен қалпына келеді, ал қайта бағыттау ережелері unit немесе іске қосу тапсырмасы оларды қайта қолданбаса, қайта жүктеуден кейін қалмайды. Қалпына келтірілген сурет — орналастыру, болдырмау емес, өйткені ол дискімен бірге ескі тіркелгі деректері мен ескі бағыттарды қайтарады. Жұмысты аяқталды деп жарияламас бұрын иесінің жазған жолыңызға әлі сәйкес келетінін, DNS пен екі мекенжай тұқымдасының қонақтың ішінде шешілетінін, өлі туннельдің қара құрдымның орнына пайдалануға жарамды желі қалдыратынын және қайта жүктеу немесе суретті қалпына келтіру сол күйді қайталайтынын растаңыз.