Bitta qurilma uchun teskari SSH: loopback tinglovchimi yoki marshrutlangan VPNmi?
Faqat tashqariga qo'ng'iroq qila oladigan qurilma uchun bitta boshqaruv porti. Teskari tunnel yetarlimi yoki haqiqiy marshrutlangan yo'l kerakmi — buni uch shart hal qiladi.
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.
| Condition | Reverse tunnel fits | Something else is needed |
|---|---|---|
| How many services must be reachable? | One, or a small fixed set on loopback | Anything that needs many ports or dynamic discovery |
| Who connects, and how are they authenticated? | Named administrators with their own hub accounts | Third parties, or anything needing per-flow audit you do not control |
| Does the device's own LAN need to be reachable? | No | Yes, 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.