Туннелийг зочны дотор барих нь болон хост дээр барих нь хоёулаа хөтөч мэдээлдэг хаягийг өөрчилдөг, төсөөтэй тал нь тэнд дуусна. Зочинд харьяалагддаг туннель өөрийн түлхүүр, анхдагч маршрут, шийдэгчийг зочны цөм дотор хадгалж, хост нь шифрлэсэн пакетуудыг нэг алслагдсан хаяг руу дамжуулдаг. Хостод харьяалагддаг туннель бол түүний толь дүрс: хостын клиент сессийг барьж, маршрут, бодлогыг хэрэгжүүлдэг, зочин нь гадагш гарч буй зүйлийг зээлдэг. Буруу эзнийг сонговол дараагийн бүх шинж тэмдэг таныг буруу машин руу хөтөлнө. Хоёр команд энэ асуудлыг нэг минут орчимд шийддэг, энэ гарын авлагын үлдсэн хэсэг нь хариултаар юу хийх вэ гэдэг нь юм.

Клиентэд хүрэхээс өмнө эзнийг шийдээрэй

Дүрэм нь шифрлэсэн текст хаана үүсдэг тухай, аль машин 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 юу хардаг хоёуланг нь өөрчилдөг.

Гарын авлага: байрлуулах, тохируулах, батлах

Эдгээр дөрвөн шалгалтыг шинэ зочны бүрхүүлд дараалан ажиллуулж, бичсэн эзэнтэй таарахгүй эхний шалгалт дээр зогсоорой.

  1. ip route get 1.1.1.1 нь tun0 эсвэл wg0 буцаавал зочны өмч, хувийн дараагийн үсрэлттэй eth0 буцаавал хостын өмч гэсэн үг.
  2. resolvectl query example.com, эсвэл зочин шийдэгч үйлчилгээ ажиллуулдаггүй газарт /etc/resolv.conf-ыг уншина уу. Трафик дамжуулдаг ч DNS дамжуулдаггүй туннель бол хамгийн түгээмэл хагас тохируулсан төлөв.
  3. Гарах хаягуудыг харьцуулна уу: зочинд curl -4 -s https://ifconfig.me, хостод curl.exe -4 -s https://ifconfig.me. Өөр хаяг байвал туннель зочны өмч, VPN дээрх хосттой гэрийн ISP харуулж буй зочин бол «юу ч өвлөгдөөгүй» тохиолдол юм.
  4. Хоёуланг -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 дүрмээр ижил үр дүнд хүрдэг бөгөөд мөн ижил буцах замын шалгалт хэрэгтэй.

Байршил нь нээлттэй хэвээр байвал энэ хүснэгт хамгийн түгээмэл зохион байгуулалтыг хамарна:

SituationOwnerCheck first
One VM, host also on a corporate VPNGuestDoes the host client block local networks?
Six lab VMs, one exit addressHost plus forwardingip_forward, NAT rule, server AllowedIPs
Malware or research VMGuest, NATSnapshot age and resolver state
Bridged VM on an office LANGuestDHCP lease and port security

Хоёр туннель, хоёр зочин ба тэдгээрийн хоорондын зөрчил

Нэгэн зэрэг хоёр гарах гарц хэрэгтэй үед тэсвэрлэдэг загвар нь зочин бүрт нэг туннель юм. Аливаа VM өөрийн анхдагч маршрут, шийдэгчийг хадгалж, хост нь энгийн сүлжээнд үлдэж, хоёр туннель нэг маршрутын хүснэгтийн төлөө хэзээ ч мэтгэлцэхгүй. Хоёр зочныг гүүрээр холбох нь тэдний маршрутыг нэгтгэдэггүй: виртуал сүлжээ зам өгдөг, энэ локал трафик туннелийг тойрч болно гэдгийг клиент бүрт хэлэх шаардлагатай хэвээр.

Хостын туннель болон зочны туннелийг хамт ажиллуулах нь хууль ёсны бөгөөд санаатай үүрлэх нь заримдаа яг таны хүсэж буй зүйл байдаг, зочин өөрийн туннелээр гарч, тэр туннель нь хостын туннелээр гарна. Үүнийг тасалдал болгох нь аль төгсгөлийн цэгт аль давхаргаар хүрэх ёстойг хэн ч бичиж үлдээгээгүйд оршино. Очих газар болон эзний хоёр баганы жагсаалт хөтөлбөл маршрутын зөрчил нь хагас өдрийн нээлтийн оронд нэг хайлт болно.

Баталгаажуулаад, сэргээлтийг эзэнд нь үлдээгээрэй

Зочны дотроос туршина уу шинэ програмын процессоор: трафик, нэрийн шийдэл, хоёр хаягийн гэр бүл, туннель унах үед юу болох. Хостын VPN дүрс зочны хамрах хүрээний талаар юу ч хэлдэггүй бөгөөд энэ салбар даяар хамгийн түгээмэл хуурамч баталгаа нь энэ юм.

Сэргээлт нь мөн эзнийх. Зочинд харьяалагддаг туннелийг зочны өөрийн клиент болон түүний бичсэн маршрутуудаар сэргээдэг. Хостод харьяалагддаг загварыг хостын ачааллын дарааллаар сэргээдэг бөгөөд дамжуулалтын дүрмүүд нь unit эсвэл эхлүүлэх даалгавар дахин хэрэгжүүлэхгүй бол дахин ачааллыг давахгүй. Сэргээсэн агшин хувилбар нь байршуулалт, буцаалт биш, учир нь дисктэй хамт хуучин итгэмжлэл болон хуучин маршрутыг буцааж авчирдаг. Ажлыг дууссан гэж зарлахаас өмнө эзэн нь бичсэн мөртэй таарч байгаа, DNS болон хоёр хаягийн гэр бүл зочны дотор шийдэгдэж байгаа, үхсэн туннель хар нүхний оронд ашиглах боломжтой сүлжээ үлдээж байгаа, дахин ачаалал эсвэл агшин хувилбарыг сэргээх нь ижил төлөвийг дахин үүсгэж байгааг баталгаажуулаарай.

Холбоотой нийтлэлүүд