Bitta mashinada allaqachon tasdiqlangan VPN kirish mavjud, ikkinchi mashinaga aynan bitta xususiy HTTPS xizmat kerak, va mahalliy SSH yo'naltirish ikkinchi mashinaga tunnel bermasdan bu bo'shliqni to'ldirishi mumkin. Yo'naltirish butun tarmoq o'rniga bitta TCP manzilni olib o'tadi, va aynan shu cheklov mazmunning mohiyatidir. Quyidagi besh qadamni tartib bilan bajaring, chunki har biri boshqa sabab bilan muvaffaqiyatsiz bo'ladi va keyingi qadam avvalgi bo'shliqni qutqara olmaydi. Agar biron shart bo'lmasa, bu loyiha uni hal qilmaydi va buyruqlarni sozlash yordam bermaydi.

Birinchi qadam: uchta shartni tasdiqlang

Har qanday buyruq ma'noga ega bo'lishidan oldin uch narsa allaqachon to'g'ri bo'lishi kerak. Birinchi mashinani yo'naltirish xosti sifatida ishlatishga ruxsat, unga ishlaydigan SSH kirish va mo'ljallangan manzilga ruxsat beruvchi server siyosati kerak. Fayl uzatish uchun yaratilgan SSH hisobida yo'naltirish o'chirilgan bo'lishi mumkin, va yo'naltirishga ruxsat beruvchi server ham u orqali qaysi manzillarga yetish mumkinligini cheklashi mumkin. Sinashdan oldin so'rang, chunki hamkasbning ish stantsiyasini kelishuvsiz sakrash nuqtasi sifatida ishlatish buyruq benuqson ishlasa ham siyosat muammosidir.

Ikki buyruq o'sha ro'yxatning texnik yarmini hal qiladi. Birinchisi hisob va kalitning interaktiv so'rovsiz ishlashini isbotlaydi, ikkinchisi konfiguratsiya faylidagi izohlangan misol o'rniga haqiqiy server siyosatini chop etadi.

ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'

Ikkinchi qadam: loopback portni bog'lang va sessiyani tirik tuting

Mijoz ilovasi ishlaydigan mashinada xususiy xizmatga mahalliy yo'naltirish oching. Uni mahalliy tarmoqqa e'lon qilinmasligi uchun loopbackga aniq bog'lang va hech qaysi mahalliy xizmat egallamagan yuqori portni tanlang. Ishlayotganda sessiyani ochiq tuting, chunki uni yopish tinglovchini ham yopadi. ExitOnForwardFailure rad etilgan bog'lanish yoki egallangan portni yo'naltirishsiz qolgan sessiya o'rniga darhol chiqishga aylantiradi, va aynan shu nosozlik rejimi eng ko'p vaqtni yo'qotadi.

Xususiy ulanish sakrash xostidan o'rnatiladi, shuning uchun o'sha xostning DNS, marshrutlari, VPN siyosati va xizmatga kirishi barchasi ishlashi kerak. SSH sessiyasi sakrash xostida bo'lmagan yetib borishni yaratmaydi va VPN hech qachon itarmagan marshrutni tuzata olmaydi. Tinglovchini buyruqning sukunatiga ishonish o'rniga u haqiqatan turgan joyda tasdiqlang.

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'

Uchinchi qadam: soket mahalliy bo'lganda HTTPS nomini saqlang

https://127.0.0.1:9443/ ga kirish TLS server nomi va ilova vakolatini o'zgartiradi. portal.lab.example uchun berilgan sertifikat loopback manziliga nisbatan tekshirilmaydi, va yuzaga kelgan xato yo'naltirish qisqartmasi emas, buzilgan sertifikatga o'xshaydi. Buyruq satri sinovi uchun haqiqiy URLni saqlang va faqat soket manzilini o'zgartiring. --connect-to shuni qiladi, va curl qo'llanmasi quyida ishlatilgan to'rt maydonli shaklni hujjatlashtiradi.

curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/

Nom URLda, TLS qo'l berishda va Host sarlavhasida qoladi, TCP ulanish esa mahalliy tinglovchiga boradi. Proksisiz variant sinovni aynan shu yo'naltirishda ushlab turadi, sozlangan HTTP proksining uni tutib olishiga yo'l qo'yish o'rniga, va sertifikat tekshiruvini yoqilgan holda saqlash natijani mazmunli qiladi.

To'rtinchi qadam: bitta yo'naltirish nimani qamrab olmasligini biling

Bitta TCP yo'naltirish bitta manzil portini qamrab oladi. Ikkinchi xost nomiga yo'naltiruvchi, xususiy tarmoq ichidagi xostdan resurslar yuklovchi yoki boshqa portga yuboruvchi sahifa o'z yo'naltirishiga muhtoj, va ularning har biri birinchisiga o'xshash siyosat tekshiruvini talab qiladi. Brauzer ish oqimlari o'z talablarini qo'shadi, chunki brauzerga haqiqiy nomni proksi konfiguratsiyasi yoki mahalliy xaritalash orqali mahalliy portga yuborishni aytish kerak. Shuning uchun muvaffaqiyatli buyruq satri sinovi brauzer ham muvaffaqiyat qozonishini isbotlamaydi, garchi yo'lni isbotlasa ham.

UDP, SMB aniqlash va domenga kirish TCP yo'naltirishdan umuman o'tmaydi. Agar haqiqiy ehtiyoj umumiy tarmoq kirishi bo'lsa, bu loyiha noto'g'ri vosita, va qo'llab-quvvatlanadigan masofaviy kirish shlyuzi to'g'ri.

Beshinchi qadam: tozalang va yozib qo'ying

Sinov tugagach sessiyani to'xtating va tinglovchi ketganini tasdiqlang. Agar tanlangan port allaqachon egallangan bo'lsa, raqamni bo'shatish uchun aloqasiz mahalliy xizmatni to'xtatish o'rniga boshqa ishlatilmagan loopback portni tanlang va URL, sinov buyrug'i hamda yozuvni birga yangilang. Noutbukda ochiq qoldirilgan yo'naltirish diagnostikani boshqarilmaydigan xizmatga aylantiradi.

Sakrash xostini, yo'naltirilgan manzilni, mahalliy portni va bu kelishuvni kim tasdiqlaganini yozib qo'ying. Faqat kimningdir shell tarixida mavjud bo'lgan yo'naltirish bitta qayta yuklashdan keyin takroriy tekshiruvga olib keladi, va keyingi odam uchta shartdan qaysi biri allaqachon tekshirilganini bilmaydi.

O'xshash maqolalar