Qurilmangiz operator NAT orqasida turadi, chiquvchi ulanishlarni ocha oladi va hech kim yeta olmaydigan SSH serverini ishga tushiradi. Keladigan so'rov odatda "unga VPN bering" deb ifodalanadi, bu esa bir necha javobdan biri. Uni qabul qilishdan oldin bitta ma'muriy TCP port kerakmi yoki butun quyi tarmoqqa marshrutlangan yo'l kerakmi — shuni hal qiling, chunki ular turli ta'sirga ega turli loyihalardir.

Teskari tunnel tor versiyaga yaxshi javob beradi. Qurilma hubingizga qo'ng'iroq qiladi, hubdan loopback portda tinglashni so'raydi va o'sha portni o'z SSH xizmatiga qaytaradi. Shundan so'ng administratorlar tinglovchiga ochiq internet orqali emas, hub orqali yetib boradi.

Tanlovni hal qiladigan uch shart

Ularni har qanday konfiguratsiyadan oldin yozib qo'ying. Ular cheklangan boshqaruv kirishi bilan tarmoq kengaytmasi o'rtasidagi chegara, ularni aralashtirish esa besh qatorli tunnelning egasiz tekis tarmoqqa aylanish yo'lidir.

ConditionReverse tunnel fitsSomething else is needed
How many services must be reachable?One, or a small fixed set on loopbackAnything that needs many ports or dynamic discovery
Who connects, and how are they authenticated?Named administrators with their own hub accountsThird parties, or anything needing per-flow audit you do not control
Does the device's own LAN need to be reachable?NoYes, so a routed VPN or a managed platform is the honest answer

Uchinchi qator odamlar bahslashadigan qatordir. Qurilmaning SSH portiga tunnel uning qo'shnilarini sizning tarmog'ingizga qo'shmaydi va qo'shimcha yo'naltirishlar zanjiri orqali shunday ko'rinishga keltirilmasligi kerak. Agar talab haqiqatan LAN bo'lsa, shuni ayting va uning o'rniga o'shani loyihalang.

Hub tomoni: cheklangan reley hisobi

Har bir qurilmaga ochiq kalit bilan autentifikatsiya qilinadigan va interaktiv sessiyasiz o'z reley hisobini bering. Match blok o'sha hisob bilan cheklangani uchun ruxsat kichik qoladi, xususiy kalit esa o'zi tegishli qurilmada qoladi.

Match User relay-dev-7
    AuthenticationMethods publickey
    PubkeyAuthentication yes
    AllowTcpForwarding remote
    PermitListen 127.0.0.1:21022
    GatewayPorts no
    MaxSessions 0
    PermitTTY no
    X11Forwarding no
    AllowAgentForwarding no

MaxSessions 0 qiziqarli qatordir. U shell va quyi tizim sessiyalarini rad etadi, shu bilan birga qurilmaga kerakli yo'naltirishga ruxsat beradi, shuning uchun o'g'irlangan kalitni interaktiv kirishga aylantirib bo'lmaydi. PermitListen hub tomonidagi tinglovchi manzili va portini mahkamlaydi, va GatewayPorts no uni hub joylashgan tarmoqqa ochish o'rniga loopbackda ushlab turadi.

Qayta yuklashdan oldin amaldagi konfiguratsiyani sinab ko'ring va buni qilayotganda ikkinchi sessiyani ochiq tuting. Match blok tasodifan hammaga qo'llansa yoki parametr nomida xatolik bo'lsa, bu siz qattiqlashtirayotgan mashinadan o'zingizni qulflashning klassik usuli. Ishlab turgan konfiguratsiyani chiqaring va hozir yozgan faylga ishonish o'rniga parametrlarni qayta o'qing. Parametrlarni qo'llash versiyalar orasida farq qilishini unutmang, shuning uchun yangi serverda qabul qilingan qator eskisida shunchaki e'tiborsiz qolishi mumkin.

Qurilma tomoni: baland ovozda muvaffaqiyatsiz bo'ladigan yo'naltirish

Qurilma ulanishni ochadi va tinglovchini so'raydi. Argumentdagi ikki manzil -R turli ma'no bildiradi va ularni chapdan o'ngga o'qish qaysi biri qaysi ekanini eslab qolishning eng tez yo'lidir.

ssh -NT \
    -o ExitOnForwardFailure=yes \
    -o ServerAliveInterval=30 \
    -o ServerAliveCountMax=3 \
    -R 127.0.0.1:21022:127.0.0.1:22 \
    [email protected]

Chap juftlik — hub tinglashi kerak bo'lgan joy. O'ng juftlik — so'rov kelganda qurilma ulanadigan manzil, u qurilmaning o'z tomonidan hal qilinadi. Ularni almashtirish toza ko'tariladigan va noto'g'ri joyga yo'naltiradigan tunnel hosil qiladi, bu esa muvaffaqiyatsizlikdan ham yomonroq.

ExitOnForwardFailure=yes so'ralgan tinglovchini o'rnatib bo'lmaganda buyruqni chiqishga majbur qiladi, shuning uchun qayta ishga tushirish sikli yarim ishlaydigan sessiyani qoldirish o'rniga sizga haqiqatni aytadi. Mahalliy SSH xizmatining keyin sog'lom ekanligi haqida hech narsa demaydi, shuning uchun uni jarayon menejeri va vaqti-vaqti bilan haqiqiy ulanish testi bilan birga qo'llang.

Qo'shimcha sakrashdan qochish uchun loopback tinglash manzilini hech qachon yovvoyi belgi bilan almashtirmang. Aynan shu bitta o'zgarish boshqaruv yo'li bilan ochiq kirish mumkin bo'lgan port o'rtasidagi farqdir va u odatda nosozliklarni tuzatish paytida yuz beradi, keyin qolib ketadi. Agar hamkasb portga hub orqali yeta olmasa, bog'lanishni kengaytirish o'rniga sakrash konfiguratsiyasini tuzating. Loopback — bu dizaynning butun xavfsizlik dalilidir.

Hub orqali administrator kirishi

Hubda oddiy hisobga ega administrator u orqali yo'naltirilgan portga sakrashi mumkin. Reley hisobi buning uchun ishlatilmaydi va ularni alohida saqlashning ma'nosi ham shunda.

ssh -J [email protected] -o HostKeyAlias=device-7 \
    -p 21022 [email protected]

Qurilmaning xost kalitini tanlagan taxallusingiz ostida tekshiring, chunki o'sha kalit zanjir oxiridagi qurilmani aniqlaydi, tunnel esa faqat transport. Uchdan-uchga kirish hali ham ikkala tomonni autentifikatsiya qiladi; umumiy hubda tugaydigan tunnel uni o'z-o'zidan ishonchli yo'lga aylantirmaydi.

Hayot tsiklini o'z qo'lingizga oling

Qurilma buyrug'ini jarayon menejeri ostida aynan bitta faol nusxa va o'zingiz ongli ravishda tanlagan qayta ishga tushirish siyosati bilan ishga tushiring. keepalive parametrlari o'lgan hamkorani aniqlaydi; ular chiqib ketgan jarayonni tiriltirmaydi.

So'ngra foydalanishdan chiqarish tartibini yozing. Har bir qurilma o'z tinglovchisi va o'z kalitini oladi, shuning uchun foydalanishdan chiqarish o'sha hisobni bekor qilish va o'sha kalitni olib tashlashni bildiradi, butun flot bo'lishadigan sirni aylantirishni emas.

Nihoyat, loopback sizga nima berishini eslang. U tarmoq ta'sirini cheklaydi va umumiy hubdagi boshqa mahalliy foydalanuvchilarga nisbatan hech narsa qilmaydi, shuning uchun hubning o'z kirish siyosati baribir to'g'ri bo'lishi kerak. sshd_config ma'lumotnomasi yuqorida qo'llanilgan har bir parametrni hujjatlashtiradi va ulardan birini kengaytirishdan oldin yo'naltirish bo'limlarini to'liq o'qib chiqishga arziydi.

O'xshash maqolalar