Претпостављате да SOCKS прокси мора да ради тамо где мрежни приступ већ постоји. OpenSSH може да постави слушаоца сасвим другде. Удаљено динамичко прослеђивање отвара SOCKS порт на удаљеном хосту и започиње сваку везу са вашег локалног SSH клијента, који носи одобрену VPN путању лаптопа. 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, и то је изложеност коју желите. Сервер конфигурисан да наметне џокер прослеђивање објављује исти порт на сваком интерфејсу, што лични прокси претвара у нешто до чега локална мрежа може да дође.

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 ограничења по уређају или ресурсу; коришћен унутар њих, он је само једна овлашћена апликацијска путања са изричитим границама.

Повезани чланци