Сіз SOCKS прокси желіге қатынау бұрыннан бар жерде жұмыс істеуі керек деп ойлайсыз. OpenSSH тыңдаушыны мүлдем басқа жерге орналастыра алады. Қашықтағы динамикалық бағыттау SOCKS портын қашықтағы хостта ашады және әрбір қосылымды ноутбугіңіздің мақұлданған VPN жолын тасымалдайтын жергілікті SSH клиентіңізден бастайды. Pi шектеулі прокси алады; ол сіздің туннеліңізді немесе артықшылықтарыңызды мұраға алмайды.

Тыңдаушы мен қосылым басталатын жақ өзгеше болуы мүмкін

Қарапайым ssh -D 1080 тыңдаушыны өз машинаңызда іске қосады және қосылымдарды сол жерден жібереді. Қашықтағы динамикалық бағыттау мұны керісінше жасайды: тыңдаушы қашықтағы хостта пайда болады, ал ол қабылдаған әрбір қосылым жергілікті жақтан ашылады. OpenSSH клиентінің нұсқаулығы -R параметрін тіркелген мақсатсыз дәл осы SOCKS4/5 құрылымы ретінде сипаттайды.

Ноутбуктен қолдау көрсетілетін пәрмен осылай көрінеді, мұнда тіркелгі, хосттар және порт орнын толтырғыштар ретінде қаралады:

ssh -NT -S none -o ExitOnForwardFailure=yes \
  -o PermitRemoteOpen=app.corp.example:443 \
  -R 1080 [email protected]

Онда үш бөлшек пайдалы жұмыс істейді. -S none сессияны ортақ басқару шеберінен аулақ ұстайды, ExitOnForwardFailure сізді жартылай ашық сессиямен қалдырудың орнына тез сәтсіздікке ұшырайды, ал PermitRemoteOpen қашықтағы тыңдаушының қайда жете алатынын шектейді. Уәкілетті Pi тіркелгісін пайдаланыңыз және осылардың кез келгенін қоспас бұрын хост кілтін тексеріңіз.

Қашықтағы тыңдаушы шын мәнінде нені ашады

Тыңдаушыға сену алдында сервердің бағыттау саясатын тексеріңіз. GatewayPorts no кезінде қашықтағы бағыттау loopback-ке байланған күйде қалады және бұл сіз қалаған әсер. Wildcard бағыттауды мәжбүрлейтін сервер бір портты барлық интерфейстерде жариялайды, бұл жеке проксиді жергілікті желі жете алатын нәрсеге айналдырады.

Loopback та пайдаланушыға қатысты шекара емес. Pi-дегі басқа процесс портты білсе, 127.0.0.1:1080-ге қосыла алады, сондықтан Pi-дің жергілікті тіркелгілері және онда жүретіннің бәрі сіздің қатынау жобаңыздың бөлігі. Бұл мақсаттар тізімін тар ұстаудың себебі, саясат тексерісін өткізіп жіберудің себебі емес.

Рұқсат етілген мақсатты жетуге тырысып жатқан қолданбаға тән етіп ұстаңыз. Оны шексіз бағыттаумен алмастыру, байланысы жоқ бағдарлама жұмыс істесін деп, жолды сіз бастаған мәселеден әлдеқайда кеңейтеді. Мақсаттар тізімі сессияның не үшін болғанын да жазады, бұл кейін оны тексерген адамға көмектеседі. Оны пайдаланған тіркелгіңіздің қасына жазып қойыңыз.

Бір қолданбаны прокси арқылы жіберіңіз

Pi-де проксиді түсінетін клиент содан кейін сұранысты жібере алады. socks5h префиксі мақсат атауын проксиге береді, сондықтан іздеу мен қосылым екеуі де ноутбук жағында болады және PermitRemoteOpen ішіндегі аталған мақсатқа сәйкес келеді:

curl --proxy socks5h://127.0.0.1:1080 \
  --noproxy '' https://app.corp.example/

Кәдімгі сертификат тексеруін және қолданбаның өз аутентификациясын сақтаңыз. Прокси TCP қосылымының қайда орнатылатынын өзгертеді; ол аутентификациясыз қызметті қауіпсіз етпейді және өзіне қол қойылған шеткі нүктені сенімді етпейді.

Ноутбукке әлі де өз маршруты мен SSH серверіне де, қолданбаға да шешушіге қатынау қажет. Оның SSH клиентінің трафигі мақұлданған VPN саясатымен таңдалуы керек, ал split-tunnel ерекшелігі бұл трафикті сіз сынаған жолдан өзгеше жолмен жіберуі мүмкін.

Жолды дәлелдеп, оны жабыңыз

Тыңдаушының күткен жерде бар екенін және тек көзделген мақсат жауап беретінін растаңыз:

$ ss -ltnp | grep 1080
LISTEN 0 128 127.0.0.1:1080 0.0.0.0:*
$ curl -sS -o /dev/null -w '%{http_code}\n' \
    --proxy socks5h://127.0.0.1:1080 https://app.corp.example/

ExitOnForwardFailure бағыттаудың орнатылғанын дәлелдей алады, бірақ қолданбаға кірудің төменгі ағында сәтті болатынын куәландыра алмайды. Тек портты емес, қолданбаны сынаңыз. Қабылдап, содан кейін әрбір сұранысты сәтсіз ететін тыңдаушы әдетте туннель істен шыққанын емес, мақсат атауының немесе ноутбук маршрутының қате екенін білдіреді.

Бұл құрылым тек TCP тасымалдайды. UDP, ICMP және прокси параметрлерін елемейтін бағдарламалар оның сыртында қалады, ал бағыттау SSH сессиясы аяқталған сәтте аяқталады. Жұмысыңыз біткенде сол сессияны тоқтатыңыз және қолданбаға қосқан прокси параметрін алып тастаңыз.

Тұрақты қатынау үшін оның орнына желі иесінің қолдайтын тіркеуін немесе басқарылатын шлюзді пайдаланыңыз. Кері прокси VPN-нің құрылғы немесе ресурс шектеулерін айналып өту үшін қате құрал; сол шектеулердің ішінде қолданса, ол айқын шектеулері бар бір ғана уәкілетті қолданба жолы.

Қатысты мақалалар