VPN аркылуу гана жеткиликтүү HTTPS сайтка SSH өткөрмөсү аркылуу жетүү
VPN аркылуу гана жеткиликтүү бир HTTPS кызматын жергиликтүү SSH өткөрмөсү менен туташтырыңыз, чыныгы хост атын --connect-to менен сактаңыз жана бир TCP өткөрмөсү эмнени камтый албасын билиңиз.
Бир машинада мурунтан бекитилген VPN кирүү мүмкүнчүлүгү бар, экинчи машинага так бир жеке HTTPS кызматы керек, жана жергиликтүү SSH өткөрмөсү экинчи машинага туннель бербестен ошол боштукту жаба алат. Өткөрмө бүт тармактын ордуна бир TCP багыттоосун алып жүрөт, жана дал ушул чектөө — маселенин маңызы. Төмөнкү беш кадамды ирети менен аткарыңыз, анткени ар бири башка себептен ишке ашпайт жана кийинки кадам мурунку боштукту куткара албайт. Эгер кандайдыр бир шарт жетишпесе, бул курулуш аны чечпейт жана буйруктарды жөндөө эч жардам бербейт.
Биринчи кадам: үч шартты ырастаңыз
Кандайдыр бир буйрук маанилүү болушунан мурун үч нерсе мурунтан туура болушу керек. Биринчи машинаны өткөрмө хосту катары колдонууга уруксат, ага иштеген SSH кирүү жана көздөлгөн багыттоону уруксат кылган сервер саясаты керек. Файл өткөрүү үчүн түзүлгөн SSH эсебинде өткөрмө өчүрүлгөн болушу мүмкүн, ал эми өткөрмөгө уруксат берген сервер да анын аркылуу кайсы багыттоолорго жетүү мүмкүн экенин чектей алат. Сыноодон мурун сураңыз, анткени кесиптешиңиздин жумуш станциясын макулдашуусуз секирүү чекити катары колдонуу — буйрук так иштесе да саясат маселеси.
Эки буйрук ошол тизменин техникалык жарымын чечет. Биринчиси эсеп менен ачкычтын интерактивдүү суроосуз иштээрин далилдейт, экинчиси конфигурация файлындагы комментарийленген мисалдын ордуна иш жүзүндөгү сервер саясатын басып чыгарат.
ssh -o BatchMode=yes [email protected] 'echo ok'
sudo sshd -T | grep -E 'allowtcpforwarding|permitopen'
Экинчи кадам: loopback портун байлап, сессияны тирүү кармаңыз
Клиент колдонмосун иштеткен машинада жеке кызматка жергиликтүү өткөрмө ачыңыз. Аны жергиликтүү тармакта жарыяланбашы үчүн loopbackке ачык байлаңыз жана эч бир жергиликтүү кызмат ээлебеген бийик портту тандаңыз. Иштеп жатканда сессияны ачык кармаңыз, анткени аны жабуу угуучуну жабат. ExitOnForwardFailure четке кагылган байлоону же ээленген портту өткөрмөсүз калган сессиянын ордуна дароо чыгууга айландырат, жана дал ушул бузулуу режими эң көп убакытты текке кетирет.
Жеке байланыш секирүү хосттон түзүлөт, ошондуктан ошол хосттун DNS, маршруттары, VPN саясаты жана кызматка кирүү — баары иштеши керек. SSH сессиясы секирүү хостто жок жеткиликтүүлүктү жаратпайт жана VPN эч качан жибербеген маршрутту оңдой албайт. Угуучуну буйруктун үнсүздүгүнө ишенүүнүн ордуна чынында кайда болсо, ошол жерден ырастаңыз.
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:9443:portal.lab.example:443 [email protected]
ss -ltn '( sport = :9443 )'
Үчүнчү кадам: сокет жергиликтүү болгондо HTTPS атын сактаңыз
https://127.0.0.1:9443/ баракчасын ачуу TLS сервер атын жана колдонмо ыйгарым укугун өзгөртөт. portal.lab.example үчүн берилген сертификат loopback дарегине каршы текшерилбейт, жана пайда болгон ката өткөрмө кыска жолу эмес, бузулган сертификат сыяктуу көрүнөт. Буйрук сабынын сыноосу үчүн чыныгы URLди сактап, сокеттин багыттоосун гана өзгөртүңүз. --connect-to ушундай кылат, ал эми curl колдонмосу төмөндө колдонулган төрт талаа формасын документтештирет.
curl --noproxy portal.lab.example --connect-to portal.lab.example:443:127.0.0.1:9443 https://portal.lab.example/
Ат URLде, TLS кол алышуусунда жана Host аталышында калат, ал эми TCP байланышы жергиликтүү угуучуга барат. Проксисиз опция сыноону конфигурацияланган HTTP проксиси кармап калышына жол бербей ушул өткөрмөдө кармайт, ал эми сертификат текшерүүсүн күйүк тутуу натыйжаны маанилүү кылат.
Төртүнчү кадам: бир өткөрмө эмнени камтый албасын билиңиз
Бир TCP өткөрмөсү бир багыттоо портун камтыйт. Экинчи хост атына багыттай турган, жеке тармактын ичиндеги хосттон ресурстар жүктөгөн же башка портко жиберген баракка өзүнүн өткөрмөсү керек, жана алардын ар бири биринчисиндей саясат текшерүүсүн талап кылат. Браузердин жумуш агымдары өз талаптарын кошот, анткени браузерге чыныгы атты прокси конфигурациясы же жергиликтүү дал келтирүү аркылуу жергиликтүү портко жиберүүнү айтуу керек. Ошондуктан ийгиликтүү буйрук сабынын сыноосу браузер да ийгиликтүү болорун далилдебейт, бирок жолду далилдейт.
UDP, SMB издөө жана доменге кирүү TCP өткөрмөсүнөн такыр өтпөйт. Эгер чыныгы муктаждык жалпы тармактык кирүү болсо, бул курулуш туура эмес курал, ал эми колдоого алынган алыскы кирүү шлюзу туура болуп саналат.
Бешинчи кадам: тазалап, жазып коюңуз
Сыноо бүткөндө сессияны токтотуп, угуучунун кеткенин ырастаңыз. Эгер тандалган порт мурунтан ээленген болсо, номерди бошотуу үчүн байланышы жок жергиликтүү кызматты токтотуунун ордуна башка колдонулбаган loopback портун тандап, URLди, сыноо буйругун жана жазууну чогуу жаңыртыңыз. Ноутбукта ачык калтырылган өткөрмө диагностиканы башкарылбаган кызматка айландырат.
Секирүү хостту, өткөрүлгөн багыттоону, жергиликтүү портту жана бул макулдашууну ким бекиткенин жазып коюңуз. Бирөөнүн shell тарыхында гана бар өткөрмө бир кайра жүктөөдөн кийин кайталануучу иликтеөгө алып келет, ал эми кийинки адам үч шарттын кайсынысы текшерилгенин билбейт.