Terminal ulanadi, so’rov belgisi chiqadi va hamma SSH kirish ishlayotganiga qo’shiladi. Keyin noutbukdagi ma’lumotlar bazasi mijozi hali ham xususiy hostga yetib bora olmaydi va sessiya ayblanadi. Qurilgan narsa qobiq edi va bu SSH taklif qilishi mumkin bo’lgan to’rtta butunlay boshqa interfeysdan biri. Avval interfeysni ayting, keyin ilova undan haqiqatan foydalanishini sinab ko’ring. Tartib muhim, chunki har bir interfeys o’zicha muvaffaqiyatsizlikka uchraydi.

Biror narsani solishtirishdan oldin interfeysni ayting

OpenSSH mijozi qo’llanmasi bir-biriga aralashtirish oson bo’lgan to’rtta mexanizmni ajratadi. Qobiq yoki masofaviy buyruq SSH hostida bajariladi. Mahalliy yo’naltirish mijozda tinglovchi soket ochadi va keyingi ulanishni masofaviy tomondan amalga oshiradi. Masofaviy yo’naltirish buning aksini qilib, server tomonida tinglaydi. Dinamik yo’naltirish undan qanday foydalanishni biladigan dasturlarga SOCKS so’nggi nuqtasini taqdim etadi.

  • Qobiq: dastur masofaviy mashinada ishlaydi, mahalliy joyda hech narsa tinglamaydi.
  • Mahalliy yo’naltirish: noutbukingizda port bor, masofaviy host chiquvchi ulanishni amalga oshiradi.
  • Masofaviy yo’naltirish: masofaviy tomonda port bor, trafik siz tomonga qaytadi.
  • Dinamik: mijozdagi SOCKS proksisi, uni faqat proksini tushunadigan ilovalar ishlatadi.

Bularning hech biri marshrut o’rnatmaydi. Proksi sozlamalarini e’tiborsiz qoldiradigan, yoki UDP bilan gaplashadigan, yoki nomlarni o’zi hal qiladigan dastur, faol SSH sessiyasidan ta’sirlanmaydi. Bu SSHdagi nuqson emas; bu siz tanlagan interfeysning qamrovi.

Mahalliy, masofaviy va dinamik yo’naltirishlar kim tinglashida farqlanadi

Aksariyat holatlarni hal qiladigan farq — tinglovchi soket kimga tegishli ekani. Mahalliy yo’naltirishda mijoz tinglaydi va uzoq chek manzilni teradi, shuning uchun manzil server nuqtai nazaridan hal qilinadi. Masofaviy yo’naltirishda server tinglaydi va ulanish sizning tomonga qaytariladi, shu tarzda siz mahalliy xizmatni to’g’ridan-to’g’ri e’lon qilmasdan ochib berasiz.

ssh -N -L 5432:db.internal.example:5432 [email protected]
ssh -N -D 1080 [email protected]
ss -ltnp | grep -E '5432|1080'

Birinchi buyruq noutbukda 5432 portini bog’laydi va uni bastiondan ko’rinadigan tarzda ma’lumotlar bazasiga yo’naltiradi. Ikkinchisi 1080 portida SOCKS proksisini yaratadi. Uchinchi buyruq qaysi jarayonlar haqiqatan tinglayotganini tasdiqlaydi va bu yo’naltirishning port to’qnashuvi sababli jimgina muvaffaqiyatsizlikka uchrashidan emas, mavjudligining yagona isboti.

Dinamik yo’naltirish o’z ogohlantirishiga loyiq: u faqat SOCKSni hurmat qiladigan ilovalarni qamrab oladi. Brauzerni unga qaratish mumkin, buyruq qatori vositasiga undan foydalanishni aytish mumkin, lekin o’zining ulanish stekiga ega ma’lumotlar bazasi drayveri odatda buni qila olmaydi. Mashinadagi har bir dastur endi tunneldan foydalanadi deb o’ylash — bu butun sohada eng keng tarqalgan xato.

Tunnel-qurilma rejimi yagona haqiqiy tarmoq istisnosidir

OpenSSH shuningdek -w tunnel-qurilma yo’naltirishini qo’llab-quvvatlaydi, u TCP tinglovchisi o’rniga nuqtadan-nuqtaga interfeysni o’tkazadi. Bu haqiqiy tarmoq tunneli va u ataylab sozlanadi, qobiq ochishning yon ta’siri emas.

sudo ssh -w 0:0 [email protected]
ip addr show tun0

Unga ikkala chekda mavjud tegishli interfeys raqamlari, serverda to’g’ri konfiguratsiya va qurilmani yaratish uchun mijozda yetarli imtiyoz kerak. Shuningdek u manzillash va marshrutlash rejasini talab qiladi, chunki yalang’och interfeys qaysi manzillar undan foydalanishi kerakligi haqida hech qanday siyosat olib yurmaydi.

Shunda ham tunnel masofaviy hostda tugaydi. SSH transporti qanday himoya bergan bo’lsa, u o’sha yerda tugaydi va keyingi ulanish alohida sakrashdir. VPN darvozasi ham xuddi shu shakldagi chegaraga ega, shuning uchun solishtirish qaysi vosita kuchliroq ekani emas, qamrov va tugash haqida bo’lishi kerak. Bu chegarani baland ovozda nomlash tunnelning «hamma narsani shifrlaydi» degan bahsini ham hal qiladi, chunki u aniq shifrlamaydi.

Ilovangiz siz qurgan interfeysdan foydalanishini sinab ko’ring

Tekshirish har bir ilova uchun, sessiya uchun emas. Ishlaydigan yo’naltirish port bog’langanini va masofaviy tomon tera olishini isbotlaydi; sizga muhim bo’lgan dasturning u orqali ulanganini isbotlamaydi.

curl -sS --socks5-hostname 127.0.0.1:1080 -o /dev/null -w '%{http_code}\n' https://app.internal.example/health
psql "host=127.0.0.1 port=5432 dbname=app sslmode=require" -c 'select 1'

Birinchi buyruq host nomini masofadan hal qilib, SOCKS so’nggi nuqtasi orqali so’rov yuboradi, ikkinchisi esa TLS hali ham talab qilinayotganda yo’naltirilgan ma’lumotlar bazasi portini sinaydi. Yo’naltirish to’xtatilgan holatda xuddi shu sinovlarni ishga tushiring va ularning muvaffaqiyatsiz bo’lishini tasdiqlang, chunki ikkala yo’l bilan ham o’tadigan sinov tunneldan hech qachon foydalanmagan.

Keyin marshrutlangan VPN bilan faqat muhim o’lchamlarda solishtiring: qaysi manzillar qamrab olingan, qaysi protokollar ishlaydi, himoya qayerda tugaydi va kirishni kim tasdiqlashi kerak. Bitta xizmatning yo’naltirishi torroq va yaxshiroq javob bo’lishi mumkin, ko’p ilovalar bir xil tarmoq yo’liga muhtoj bo’lganda esa VPN to’g’ri shakldir. Hech biri o’zining masofaviy so’nggi nuqtasidan yetib borish mumkin bo’lgan hamma narsani bermaydi.

O'xshash maqolalar