Энд гурван тээврийн түвшин давхарлаж, тус бүр өөрийн фреймжтэй. VPN ачаа TLS сессийн дотор явна, тэр TLS сесс loopback порт руу TCP холболтын дотор явна, тэр холболтын байтууд SSH дотор relay хост руу явж, relay нь VPN сонсогч руу бодит TCP холболтыг нээнэ. Энэ зохион байгуулалт юуг ч өөрчлөхгүй: OpenVPN юуг баталгаажуулдаг, мөн үүнд юу ч UDP сонсогчийг TCP-ээр хүртээмжтэй болгодоггүй. Үлдсэнийг байтын замын тайлбар гэж уншаарай, сүлжээний хяналтыг тойрох жор гэж биш.

Локал дамжуулалт үнэндээ юу зөөдөг

SSH клиент локал порт дээр сонсдог. Локал процесс холбогдоход клиент байтуудыг шифрлэсэн суваг руугаа багцалж, сервер тал дамжуулалтын хүсэлтэд нэрлэсэн очих газар руу шинэ TCP холболт нээнэ.

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

SSH сессийг эхлүүлэх нь relay хүртээмжтэй, баталгаажсан гэдгийг л батална. Дараагийн сонсогч ажиллаж байгаа эсэх, relay болон сонсогчийн хоорондох firewall холболтыг хүлээж авах эсэх, эсвэл VPN таны профайлыг хүлээж авах эсэхийг энэ нь хэлэхгүй.

Клиентийг локал сонсогч руу чиглүүл

Зарласан жишээ: relay gw.internal.example:443 дээрх TCP сонсогч руу хүрч чадна, өндөр локал порт тэр замыг зөвхөн энэ машин руу нээнэ.

ssh -N -L 127.0.0.1:24011:gw.internal.example:443 [email protected]

OpenSSH гарын авлага локал дамжуулалтыг TCP холболтыг локалаар хүлээн авч, дараагийн холболтыг алсын талаас нээх гэж тайлбарладаг. Сонсогчийг бүх интерфэйс биш, loopback-д холбоорой, учир нь сүлжээнээс хүртээмжтэй дамжуулалт бол таны нэртэй нээлттэй relay юм. Wildcard холболт нь портыг хуваалцсан машин дээрх бусад локал бүртгэлд ч нээнэ.

Дараа нь VPN клиентийг TCP горимд оруулж, 127.0.0.1:24011 руу чиглүүл. Профайл UDP ашиглаж байвал энэ загвар туслахгүй: дамжуулалт байтын урсгал зөөдөг, түүгээр датаграм замын байхгүй.

Хоёр баталгаажуулалтыг тусдаа бариарай

SSH relay хостйг баталгаажуулна. OpenVPN VPN түншийг баталгаажуулсаар байна, loopback очих газар тэр шаардлагыг өөрчлөхгүй. Сокет одоо localhost руу зааж байна гээд гэрчилгээний шалгалтыг унтраах нь энэ загварын хамгийн муу товчлол юм. Энэ нь тээврийн зохион байгуулалтыг итгэлцийн зохион байгуулалт болгож, хоёр дахьд нь хэн ч зөвшөөрөөгүй.

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

Relay-г итгэлцийн түүхэн дэх хоёр дахь тал гэж үзээрэй: түүний администратор холболтын мета өгөгдлийг харж, тохиргоо өөрчлөгдвөл дамжуулалтыг өөр тийш чиглүүлж чадна. Энэ зохион байгуулалтад relay болон VPN үйлчилгээний эзэмшигч хоёулангийн зөвшөөрөл хэрэгтэй, зөвхөн өнөөдөр хэрэгтэй хүнийх биш.

Туннелийн доор давталт бүү байгуул

VPN маршрутуудыг суулгасны дараа түүнийг зөөж буй SSH холболтод туннелээр орохгүй relay руу зам хэрэгтэй хэвээр. Хэрэв анхдагч маршрут VPN руу шилжиж, relay зөвхөн тэр туннелээр л хүртээмжтэй бол тээвэр нуран унаж, VPN ч хамт явна. Гэмтэл нь маршрутын алдаа мэт биш, унасан туннел мэт харагддаг тул буруу оношлогддог.

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

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

Дууссаны дараа сонсогчийг хаа

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

Relay-ийн зөвшөөрөгдсөн дамжуулалтын очих газруудыг ч хянаарай, учир нь зөвшөөрөмтгий тохиргоо эвдэрсэн аливаа бүртгэлийг ерөнхий тулгуур болгодог. Порт, relay, очих газрыг хамт тэмдэглэж, дараагийн хүн дамжуулалт юунд байсан, одоо ч зөвшөөрөгдсөн эсэхийг мэдэх боломжтой болго.

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