Routing ibbażat fuq il-politika kontra SOCKS: liema saff tassew jagħmel il-proxy
Rotta lejn port SOCKS mhix sessjoni SOCKS. Qabbel is-settings tal-proxy fil-livell tal-app, adapter minn IP għall-proxy u gateway routjat skont is-saff li jagħmel il-konverżjoni.
Żidt rotta tal-politika li tibgħat it-traffiku ta' klijent VPN lejn host li jmexxi listener SOCKS fuq il-port 1080. Il-pakketti jaslu, il-listener ma jirreġistra xejn, u l-konnessjoni tibqa' mdendla. M'hemm xejn ħażin fir-rotta: l-hop li jmiss jagħżel fejn tmur pakkett, u SOCKS hija konversazzjoni li l-klijent irid jibda. Qabbel it-tliet arkitetturi li n-nies normalment ifissru meta jibagħtu traffiku permezz ta' proxy, u jkun ċar liema biċċa qed tonqos fis-setup tiegħek.
Ir-routing, id-DNAT u SOCKS ibiddlu affarijiet differenti
Rotta tal-politika terġa' tikteb deċiżjoni tas-saff 3. Żewġ linji huma biżżejjed biex jibagħtu t-traffiku ta' klijent wieħed lejn l-hop li jmiss magħżul:
ip route add default via 10.50.0.2 table 101
ip rule add from 10.77.0.2 lookup 101Wara dan, il-kernel iċedi l-pakkett lil 10.50.0.2 bid-destinazzjoni oriġinali għadha fl-intestatura IP. Jekk 10.50.0.2 huwa router, huwa jgħaddi l-pakkett. Jekk huwa host b'daemon SOCKS fuq 1080, il-pakkett mhuwiex indirizzat lil xi ħaġa li tista' taċċettah, u anki d-DNAT għall-port 1080 ma jgħin, għax pakkett tradott xorta jġorr il-payload oriġinali tal-app minflok salut SOCKS.
SOCKS5 jibda b'byte tal-verżjoni, lista ta' metodi, skambju ta' awtentikazzjoni u talba li ssemmi d-destinazzjoni. Dawk huma data tal-app. L-ebda entrata tar-routing u l-ebda mira netfilter ma jiġġenerawha, u dan huwa l-paragun f'linja waħda: ir-routing jagħżel triq, SOCKS jitlob lis-server jagħmel it-tieni konnessjoni.
L-ewwel każ: l-app tista' titkellem SOCKS waħedha
Meta l-programm ikollu setting tal-proxy, din hija l-iqsar triq u m'għandhiex bżonn bidla fil-kernel. Ippuntaha lejn il-listener, ipprovdi kredenzjali jekk is-server jitolbom, u iddeċiedi jekk l-ismijiet jiġux solvuti lokalment jew mgħoddija lill-proxy. Ma' curl dawn huma flag differenti, u d-differenza hija importanti meta d-destinazzjoni tiġi solvuta biss mill-ġenb tal-proxy:
curl --socks5 10.50.0.2:1080 https://docs.example.com
curl --socks5-hostname 10.50.0.2:1080 https://internal.example.comApps li jinjoraw il-varjabbli tal-ambjent tal-proxy, jew li jiftħu sockets mhux maħduma, ma jistgħux jiġu megħjuna b'dan il-mod. Il-browsers u l-biċċa l-kbira tal-għodod HTTP huma tajbin; klijent tal-logħob, daemon tal-posta jew binariu arbitrarju ta' fornitur normalment mhumiex. Il-konfini huwa għal kull app u għal kull protokoll, u għalhekk din l-għażla hija eċċellenti għall-ittestjar u dgħajfa bħala tweġiba għall-VPN kollu.
It-tieni każ: adapter li jikkonverti l-flussi IP f'sessjonijiet tal-proxy
Għall-programmi li ma jistgħux jitkellmu SOCKS, il-konverżjoni trid isseħħ f'xi ħaġa li ttemm it-traffiku IP u tiftaħ sessjonijiet tal-proxy f'isimhom. Dak il-komponent għandu interface tat-tunnel, jaċċetta l-flussi li għażel ir-routing tal-politika, iwettaq il-handshake SOCKS għal kull wieħed u jerġa' jibni t-tweġibiet. Ir-rotta tiddirieġi t-traffiku lejh; l-adapter huwa dak li joħloq is-sessjoni.
Aqra d-dokumentazzjoni tiegħu qabel tafdah b'subnet sħiħ. Ħafna adapters iġorru TCP tajjeb u jimmaniġġjaw UDP biss permezz ta' assoċjazzjoni UDP tas-SOCKS5, u l-ebda wieħed minnhom ma jbiddel ICMP fi traffiku tal-proxy, għalhekk ping li jirnexxi ma jgħid xejn dwar it-triq tal-proxy. Id-DNS huwa n-nassa l-oħra: jekk l-adapter jissolvi l-ismijiet lokalment, ir-rekords interni biss jiġu solvuti fi tweġiba ħażina, jew fi xejn.
Il-prevenzjoni tal-loops hija d-dettall operattiv li jigdim. Il-konnessjonijiet tal-adapter stess mas-server SOCKS ma jridux jiġu routjati lura fl-adapter, għalhekk it-traffiku tiegħu jeħtieġ eċċezzjoni fir-regola jew indirizz tas-sors iddedikat. Agħmel dan ħażin u s-sessjoni tal-proxy tipprova tagħmel proxy lilha nnifisha.
It-tielet każ: il-host huwa fil-fatt gateway routjat
Xi drabi s-setup li jaħdem ma jkunx fih SOCKS xejn. Il-host remot iwassal il-pakketti 'l quddiem jew jagħmel NAT fuqhom, u r-regola bbażata fuq is-sors sempliċement tagħżlu bħala l-ħruġ. Dak id-disinn huwa leġittimu, u jispjega għaliex konfigurazzjoni kkupjata taħdem fuq netwerk wieħed u tfalli fuq ieħor: ir-regola hija identika, il-biċċa nieqsa hija servizz ta' trażmissjoni fuq in-naħa l-oħra.
It-tliet każijiet jinfirdu malajr. Iċċekkja x'inhu tassew jisma', imbagħad ħares lejn l-ewwel bytes li jaslu għand il-host:
ss -ltnp 'sport = :1080'
tcpdump -ni eth0 -X 'tcp port 1080'L-ewwel byte tal-payload ta' klijent SOCKS veru huwa 0x05, il-verżjoni fis-salut. Jekk il-qabda turi minflok data oriġinali tal-app, l-ebda daemon SOCKS mhu se jwieġeb, għax in-negozjati qatt ma bdew. Jekk xejn mhu jisma' fuq 1080, il-host huwa gateway, u l-mistoqsija ssir jekk jgħaddix 'il quddiem u jekk teżistix triq lura.
Agħżel is-saff b'erba' mistoqsijiet
Il-programm għandu setting tal-proxy? Użah u waqaf hemm. It-traffiku jinkludi UDP jew ICMP li jridu jibqgħu ħajjin? Gateway routjat jew NAT biss iġorr ICMP, u UDP jeħtieġ assoċjazzjoni SOCKS5 appoġġjata miż-żewġ naħat. Kull proċess fuq il-magna għandu jiġi kopert, inklużi dawk li ma tistax tikkonfigura? Allura għandek bżonn adapter li jippossjedi l-interface u jtemm il-flussi. Tista' wkoll tieħu f'idejk ir-routing tiegħu, id-DNS u l-eċċezzjonijiet tal-prevenzjoni tal-loops? Jekk le, il-gateway sempliċi se jiswa inqas biex jiġi operat.
Distinzjoni waħda hija tajba li tinżamm dritta. L-għażla socks-proxy tal-klijent VPN stess tiddeskrivi kif il-konnessjoni tat-tunnel ta' barra tasal għand is-server tagħha, u ma tgħid xejn dwar il-konverżjoni tal-flussi tal-klijent ta' ġewwa. It-tnejn jiġu mħawda b'mod kostanti fl-istess biljett. Iddeċiedi liema relazzjoni għandek bżonn qabel ma tmiss rotta.