Бир түзмөк үчүн кайтарым SSH: loopback угуучусубу же маршрутталган VPNби?
Тышкары гана чала ала турган түзмөк үчүн бир башкаруу порту. Кайтарым туннель жетиштүүбү же чыныгы маршрутталган жол керекпи — муну үч шарт чечет.
Түзмөгүңүз оператордун NAT-ынын артында, ал чыгуучу байланыштарды ача алат жана эч ким жете албаган SSH серверин иштетет. Келген сурам адатта "ага VPN бер" деп түзүлөт, бул бир нече жооптун бири. Аны кабыл алардан мурун бир административдик TCP порту керекпи же бүткүл субтармакка маршрутталган жол керекпи, ошону чечиңиз, анткени булар ар башка таасирдеги ар башка долбоорлор.
Кайтарым туннель тар версияга жакшы жооп берет. Түзмөк сиздин хабга кошулат, хабдан loopback портунда угууну суранат жана ал портту өзүнүн SSH кызматына кайра жиберет. Андан кийин администраторлор угуучуга хаб аркылуу жетишет, ачык интернет аркылуу эмес.
Тандоону чечүүчү үч шарт
Аларды ар кандай конфигурациядан мурун жазып алыңыз. Алар чектелген башкаруу киребери менен тармакты кеңейтүүнүн ортосундагы чек, жана аларды чаташтыруу беш саптуу туннелди ээсиз тегиз тармакка айландырган жол.
| 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 |
Үчүнчү сап — адамдар талашкан сап. Түзмөктүн SSH портуна туннель анын коңшуларын сиздин тармакка кошпойт жана андан ары жиберүүлөрдүн чынжыры аркылуу ошондой көрсөтүүгө болбойт. Эгер талап чындап LAN болсо, ошону айтыңыз жана анын ордуна ошону долбоорлоңуз.
Хаб тарабы: чектелген релелик эсеп
Ар бир түзмөккө ачык ачкыч менен аутентификациясы бар жана интерактивдүү сессиясыз өзүнүн релелик эсебин бериңиз. Match Ошол эсеп менен чектелген блок укукту кичине кармайт, ал эми жеке ачкыч тиешелүү түзмөктө калат.
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 кызыктуу сап. Ал shell жана ички тутум сессияларынан баш тартат, бирок түзмөккө керектүү кайра жиберүүгө уруксат берет, ошондуктан уурдалган ачкычты интерактивдүү кирүүгө айландырууга болбойт. PermitListen хаб тарабындагы угуучунун дарегин жана портун бекитет, жана GatewayPorts no аны хаб жайгашкан тармакка ачуунун ордуна loopback-та кармайт.
Кайра жүктөөдөн мурун натыйжалуу конфигурацияны текшериңиз жана муну кылып жатканда экинчи сессияны ачык кармаңыз. Match блок кокустан баарына колдонулса, же параметр атында тамга катасы болсо, бул катайтып жаткан машинаңыздан өзүңүздү кулпулоонун классикалык жолу. Иштеп жаткан конфигурацияны чыгарыңыз жана жаңы жазган файлга ишенүүнүн ордуна параметрлерди кайра окуңуз. Параметрлерди колдоо курулуштар арасында айырмаланарын эске алыңыз, ошондуктан жаңа серверде кабыл алынган сап эскисинде жөн эле этибарга алынбашы мүмкүн.
Түзмөк тарабы: катуу ийгиликсиздикке учураган кайра жиберүү
Түзмөк байланышты ачат жана угуучуну сурайт. Аргументтеги эки дарек -R ар башка маанилерди билдирет, жана аларды солдон оңго окуу кайсынысы кайсы экенин эстөөнүн эң тез жолу.
ssh -NT \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-R 127.0.0.1:21022:127.0.0.1:22 \
[email protected]
Сол жуп — хаб угуусу керек болгон жер. Оң жуп — сурам келгенде түзмөк кошулган нерсе, ал түзмөктүн өз тарабынан чечилет. Аларды алмаштыруу таза көтөрүлүп, туура эмес жерге жиберген туннель жаратат, бул ийгиликсиздиктен да жаман.
ExitOnForwardFailure=yes суралган угуучуну орнотуу мүмкүн болбогондо буйрукту чыгууга мажбурлайт, ошондуктан кайра баштоо цикли жарым иштеген сессияны калтыруунун ордуна сизге чындыкты айтат. Жергиликтүү SSH кызматынын кийин ден соолугу тууралуу эч нерсе айтпайт, ошондуктан аны процесс менеджери жана кээде чыныгы байланыш тести менен айкалыштырыңыз.
Кошумча секириктен кутулуу үчүн loopback угуу дарегин эч качан жапайы карта менен алмаштырбаңыз. Ошол бир өзгөртүү башкаруу жолу менен коомдук жеткиликтүү порттун ортосундагы айырма, жана ал адатта мүчүлүштүктөрдү издөө учурунда болот да, анан калат. Эгер кесиптеш портко хаб аркылуу жете албаса, байлоону кеңейтүүнүн ордуна секирик конфигурациясын оңдоңуз. Loopback — бул долбоордун бүткүл коопсуздук далили.
Хаб аркылуу администратор кирүүсү
Хабдагы кадимки эсеби бар администратор ал аркылуу кайра жиберилген портко секире алат. Релелик эсеп буга колдонулбайт, жана аларды өзүнчө кармоонун мааниси да ушунда.
ssh -J [email protected] -o HostKeyAlias=device-7 \
-p 21022 [email protected]
Түзмөктүн хост ачкычын тандаган бүркөктүү ат астында текшериңиз, анткени ал ачкыч чынжырдын аягындагы түзмөктү аныктайт, ал эми туннель жөн гана транспорт. Учтан учка кирүү эки учту тең дагы эле аутентификациялайт; жалпы хабда аяктаган туннель аны өз алдынча ишенимдүү жол кыла албайт.
Жашоо циклин өз колуңузга алыңыз
Түзмөк буйругун процесс менеджеринин астында так бир активдүү нуска жана атайын тандалган кайра баштоо саясаты менен иштетиңиз. Keepalive параметрлери өлгөн өнөктөштү аныктайт; алар чыккан процессти тирилтпейт.
Андан кийин пайдалануудан чыгаруу жол-жобосун жазыңыз. Ар бир түзмөк өз угуучусун жана өз ачкычын алат, ошондуктан чыгаруу ошол эсепти кайтарып алуу жана ошол ачкычты жок кылуу дегенди билдирет, бүт флот бөлүшкөн сырды айландыруу эмес.
Акырында loopback сизге эмне берерин эстеңиз. Ал тармактык таасирди чектейт жана жалпы хабдагы башка жергиликтүү колдонуучуларга карата эч нерсе кылбайт, ошондуктан хабдын өзүнүн кирүү саясаты дагы эле туура болушу керек. sshd_config шилтемеси жогоруда колдонулган ар бир параметрди документтейт, жана алардын кайсынысын болбосун кеңейтүүдөн мурун кайра жиберүү бөлүмдөрүн толук окуган жөн.