App li titkellem biss SOCKS m’għandhiex ma’ min titkellem fuq VPN ordinarju, għax il-mina ġġorr pakketti u l-app trid punt tat-tarf tal-prokura. OpenSSH jista’ jipprovdi dak il-punt meta sid l-aċċess jippermetti, għax l-ibgħit dinamiċi jibdel sessjoni SSH waħda fi prokura lokali. Imbagħad hemm żewġ qabżiet li għandhom jinżammu separati: il-mina li tasal għall-host SSH, u l-konnessjoni li dak il-host jiftaħ wara. Is-separazzjoni tagħhom tispjega kemm għaliex dan l-arranġament jaħdem kif ukoll x’mhu se jagħmel qatt.

F’xiex isir u f’xiex ma jsirx is-semmiegħ SSH

L-ibgħit dinamiċi ġġiegħel il-klijent SSH jisma’ lokalment u jitkellem SOCKS4 jew SOCKS5 ma’ kull ma jikkonnettja. Kull talba ssemmi destinazzjoni u s-server SSH jiftaħ il-konnessjoni li jmiss, u għalhekk it-tfittxija tad-destinazzjoni tista’ sseħħ fuq in-naħa l-oħra. Dan huwa ibgħit TCP fil-livell tal-app, mhux VPN għall-apparat kollu. Ma jġorr ebda assoċjazzjoni UDP, ebda ICMP, u xejn għall-apps li jinjoraw għal kollox is-settings tal-prokura. Il-qabża mis-server SSH għall-app lanqas mhi ġewwa l-mina tiegħek, u dan hu importanti meta d-destinazzjoni taċċetta traffiku biss minn networks magħrufa.

Il-kundizzjonijiet huma reali: rotta lejn il-host SSH, kont awtorizzat, muftieħ tal-host tas-server verifikat u permess li tibgħat. L-ebda waħda minnhom ma tinħoloq mill-prokura, u l-aħħar waħda normalment tkun l-ewwel li tonqos. Ikkonferma l-erbgħa kollha qabel ma tibda tiddibbagħ xi ħaġa oħra, għax mill-klijent il-falliment jidher l-istess, tkun liema tkun li tonqos.

Ibdejha fuq loopback b’port espliċitu

Agħżel port lokali mhux użat u orbtu b’mod espliċitu mal-loopback minflok tħalli l-indirizz barra. It-tliet għażliet hawn taħt jeżistu kull waħda għal raġuni waħda.

ssh -D 127.0.0.1:1080 -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
  [email protected]

-N jaqbeż il-kmand remot u -T jaqbeż il-pseudo-terminal, għalhekk is-sessjoni teżisti biss biex tibgħat. ExitOnForwardFailure iġġiegħel il-klijent joħroġ meta s-semmiegħ ma jistax jinħoloq, minflok jaħdem mingħajr l-ibgħit li tlabt. ControlPath=none iżomm is-sessjoni barra minn konnessjoni multiplexata eżistenti li tista’ żżid l-ibgħit tagħha stess. Loopback iżomm is-semmiegħ barra mil-LAN, imma fuq magna kondiviża din mhix fruntiera ta’ awtorizzazzjoni, għax proċessi lokali oħra jistgħu jilħquha wkoll. Ir-referenza tal-klijent OpenSSH tiddokumenta dawn il-flags kollha, u t-twissija dwar loopback ġejja minn x’inhu socket li jisma’.

Ibgħat l-ismijiet mill-prokura, mhux madwarha

Klijent SOCKS5 jista’ jħoll id-destinazzjoni hu stess jew jitlob lill-prokura tagħmel dan, u dik l-għażla tiddetermina liema solver iwieġeb. B’socks5h curl jibgħat l-isem tal-host mill-prokura, għalhekk it-tfittxija sseħħ fuq is-server SSH. B’socks5 sempliċi l-laptop iħoll l-ewwel u tivvjaġġa biss il-konnessjoni, li bil-kwiet tiżvojta l-iskop meta l-isem ikun intern. It-talba hawn taħt tbattal ukoll il-lista mingħajr prokura, għalhekk valur NO_PROXY li ntiret ma jistax iwassalha madwar il-prokura.

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

Il-validazzjoni taċ-ċertifikat u d-dħul tal-app stess għadhom japplikaw, għax il-prokura ma tissostitwixxi l-ebda waħda. Jibqgħu żewġ tfittxijiet: il-laptop irid jasal għall-host SSH mill-passaġġ VPN u DNS permess, u s-server SSH irid iħoll hu l-isem tal-app. It-tieni waħda tista’ tiġi ttestjata waħedha qabel ma jgħaddi xi traffiku mill-prokura.

ssh [email protected] getent hosts app.corp.example

Ipprova destinazzjoni waħda permessa, imbagħad agħlaq is-sessjoni

Ittestja destinazzjoni li l-politika tippermetti u waħda li għandha tirrifjuta, għax ibgħit li jaħdem jipprova biss li s-semmiegħ jaħdem u xejn aktar. L-app tara l-indirizz tas-sors li jagħżel is-server SSH, u dan mhuwiex l-indirizz tal-mina tal-laptop tiegħek. Fejn in-naħa l-bogħida tirreġistra l-konnessjonijiet skont is-sors, dik id-differenza hi l-ewwel ħaġa li għandha tiġi ċċekkjata meta talba tiġi rrifjutata.

Waqqaf is-sessjoni permezz tal-proċess li jippossjediha minflok toqtol shell mhux relatat. Imbagħad ikkonferma li s-semmiegħ telaq, għax port li għadu jwieġeb hi sessjoni li ma għalaqtx tassew. Neħħi biss is-setting tal-prokura li daħħal dan l-eżerċizzju, u ħalli l-bqija tal-konfigurazzjoni tal-app kif inhi. Terminal mingħajr sorveljanza li jżomm regola ta’ ibgħit mhuwiex servizz, u prokura permanenti teħtieġ ċiklu tal-ħajja approvat, mhux tieqa minsi.

ss -ltn | grep 1080

Fallimenti li dan l-arranġament ma jistax isewwi

Xi sintomi jindikaw direttament il-limiti hawn fuq, u li tagħrafhom kmieni jiffranka wara nofsinhar ta’ dibbagħ tal-prokura. It-tabella torbot dak li tara ma’ dak li normalment ifisser. Kull ma hemm fl-aħħar kolonna hija kwistjoni ta’ disinn, mhux żball ta’ konfigurazzjoni.

What you seeWhat it usually meansWhere to look
The app connects and nothing followsIt ignores proxy settings entirelyIts own network settings, not the SSH session
A name resolution error for the destinationThe SSH server cannot resolve itServer resolver and search domains
A UDP-only application failsDynamic forwarding carries TCP onlyThis arrangement cannot serve it
curl works, the browser does notThe browser is not using the socks5h endpointBrowser proxy configuration
The listener answers after the session endedAnother process owns port 1080The ss output, then the owning process

L-ewwel tliet ringieli huma dawk li n-nies jiddijanjostikaw ħażin, għax kull wieħed jipproduċi tentattiv ta’ konnessjoni minflok żball dwar il-prokura stess. Isem li jiġi solvut fuq il-laptop ma jgħid xejn dwar is-solver tas-server, u l-falliment jinqara minflok bħala problema ta’ ċertifikat jew ta’ limitu ta’ żmien. Apps b’UDP biss joqogħdu barra mid-disinn, mhux imkissrin ġo fih, u l-ebda għażla ssh żejda ma tibdel dan. Ir-ringiela tal-brawżer hija t-tfakkira tas-soltu li s-settings tal-prokura huma għal kull app. L-aħħar ringiela hija r-raġuni għaliex teżisti l-verifika tal-għeluq: port li għadu jisma’ jfisser li issa xi ħaġa oħra tippossjedih.

Artikli relatati