Хоёр туннель хоёулаа холбогдож, клиент бүр гарцад хүрдэг, нэг нь нөгөөгийнхөө хаягийг туршсан тэр мөчид пакетууд алга болдог. Хоёр гар барилтын аль нэгэнд нь ч алдаа байхгүй, түлхүүрийг дахин гаргах нь ч үүнийг өөрчлөхгүй. Гарц өөрийн хоёр интерфэйсийн хооронд энгийн шифрлэгдээгүй IP пакетийг зөөдөг тул протоколууд бие биенээ ойлгох шаардлагагүй; тэдэнд ямар ч гар барилт өгдөггүй гурван зүйл хэрэгтэй. Эхлэх клиент дээр очих газрын хамрах хүрээ, гарц дээр эх сурвалжийн эзэмшил, холын талд буцах зам. Шинж тэмдэг гурвуулаа ижил тул тэдгээрийг хамт оношилно.

Шинж тэмдэгт нэг удаад нэг хэсэг л дутагдана

Энэ загвар нь wg1 дээр 10.71.0.0/24-ийн WireGuard сан, tun1 дээр 10.72.0.0/24-ийн OpenVPN сан ашигладаг бөгөөд хоёулаа нэг гарцад төгсдөг. Туршиж буй хүсэлт 10.71.0.5-аас 10.72.0.30 дээрх HTTPS рүү явна. Доорх алхам бүр тэр нэг урсгалын тухай. Шалгалт бүр өөр бүтэлгүйтлийн гарын үсэгтэй боловч хэрэглэгч тэдгээрийг адилхан мэдэрдэг бөгөөд ихэвчлэн нэг удаад гурвын зөвхөн нэг нь дутагддаг.

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

Салбарын очих газрын хамрах хүрээг өргөжүүл

WireGuard клиент дээр байгаа хамтрагчийн бичлэг OpenVPN-ийн очих газрын хувьд гарцыг сонгох ёстой, өөрөөр хэлбэл очих газрын угтвар тэр хамтрагчийн зөвшөөрсөн жагсаалтад байх ёстой. Үүнийг нэмэх нь хоёр дахь туннель үүсгэхгүй; клиент тэр хаягийг хайхдаа аль хамтрагчийг сонгохыг өөрчилдөг бөгөөд wg-quick-той үед маршрут ихэвчлэн жагсаалтыг өөрөө дагадаг.

AllowedIPs = 10.71.0.0/24, 10.72.0.0/24

Бодит түлхүүр болон төгсгөлийн цэгийн мөрүүдийг хөндөхгүй орхиж, Table = off ашигладаг менежер энэ жагсаалтаас огт маршрут авдаггүй гэдгийг сана. Тийм тохиолдолд мөн тэр угтварыг системийн маршрутын хүснэгтэд эзэмшигч нь суулгах ёстой бөгөөд тэнд дутуу маршрут яг дутуу зөвшөөрөгдсөн угтвар мэт харагдана.

Гарц дээр эх сурвалжийн эзэмшлийг хадгал

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

AllowedIPs = 10.71.0.5/32

Тэр бичлэгийг маршрутын тав тух биш, эзэмшлийн мэдэгдэл гэж унш. Клиент хүрэх ёстой бусад бүхэн клиентийн очих газрын жагсаалтад хамаарах бөгөөд энэ хамтрагч юу илгээж болох тухай гарцын төсөөлөлд биш.

OpenVPN талд буцах маршрут өг

Очих газарт одоо WireGuard-ийн эх рүү буцах маршрут хэрэгтэй бөгөөд сангийн клиентүүдэд энэ нь ихэвчлэн OpenVPN серверээс түлхэгдсэн маршрут хэлбэрээр ирдэг. Зөвхөн байх ёстой клиентүүдэд түүнийг түлхэж, заавар хэрэгжсэн гэж таамаглахын оронд клиент дээр хүлээн авсан эсэхийг батал.

push "route 10.71.0.0 255.255.255.0"

Маршрут хуваарилах нь зөвшөөрөл биш. Очих газар санд биш, өөр OpenVPN клиентийн ард байх үед, тэр клиентийн өөрийн LAN-ийн эзэмшил ба дамжуулалтын шаардлага загварт нэмэгдэнэ, түлхэгдсэн маршрут нь зөвхөн эхний хагас. Заавар нэмэхийн өмнө шаардлагыг граф хэлбэрээр дахин бич: аль зангилаа аль угтварыг эзэмшиж, аль зангилаа тийш нь дамжуулдаг.

Зөвшөөрөхөөр зорьсон тэр нэг үйлчилгээг л зөвшөөр

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

sudo ufw --dry-run route allow in on wg1 out on tun1 proto tcp from 10.71.0.5 to 10.72.0.30 port 443

Эдгээр нь дамжуулагдсан урсгалын дүрэм бөгөөд гарцын хоёр VPN үйлчилгээний сонсох дүрмээс тусдаа. Гаднах UDP портуудыг онгойлгох нь дотоод хүсэлтийг зөвшөөрөхгүй, дотоод хүсэлтийг зөвшөөрөх нь гарц руу хязгааргүй SSH эсвэл дамжуулалтад анхдагч зөвшөөрөл шаардахгүй. Очих газрын өөрийн firewall болон сонсох хаяг ч таарах ёстой, учир нь loopback-д уясан үйлчилгээ хамгийн болгоомжтой маршрутлагдсан пакетыг ч үгүйсгэдэг. Ярианы зөвхөн нэг чиглэлийг хамарсан бодлого ихэвчлэн амжилттай хүсэлт ба чимээгүй хариугаар бүтэлгүйтдэг бөгөөд энэ нь гурван үр дүнгийн хамгийн будлиантай нь.

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

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