OpenVPN thar SOCKS5: ailínigh an leagan, an t-iompar agus DNS
Teipeann slabhra SOCKS nuair nach n-oireann leagan an tseachfhreastalaí, an t-iompar nó an cosán DNS. Úsáid SOCKS5, iompair TCP, agus coinnigh an slabhra laistigh de namespace.
Bealach amháin amach as an stáisiún oibre seo is ea seachfhreastalaí SOCKS, agus tuairiscíonn OpenVPN taobh thiar de thréimhse chun teagmhála gan aon rud úsáideach ceangailte. Oibríonn brabhsálaí ar an meaisín céanna tríd an seachfhreastalaí sin, tá na dintiúirí ceart, agus freagraíonn an port. Tá trí rud a dhifríonn go minic go leor le seiceáil ar dtús: an leagan SOCKS a labhraíonn an seachfhreastalaí, an t-iompar a roghnaigh an cliant, agus cá mbíonn réiteach ainmneacha ar siúl. Deimhnigh gach ceann acu sula gcinneann tú gurb é an balla dóiteáin atá ciontach.
Ailínigh leagan SOCKS roimh an mballa dóiteáin
Labhraíonn OpenVPN pobail SOCKS5 le haghaidh socks-proxy. Cuir in iúl é chuig seachfhreastalaí nach dtugann ach SOCKS4, agus osclaíonn an nasc TCP, ansin stopann sé, mar go bhfanann an cliant le freagra ar fháilte nach ndéanann an taobh eile a pharsáil riamh. Ón taobh amuigh, tá an stad sin díreach cosúil le port scagtha, agus is é sin an fáth a dtagann ceist an leagain roimh aon riail balla dóiteáin. Socraíonn iarratas atá feasach ar SOCKS é in aon ordú amháin.
curl --socks5-hostname 127.0.0.1:9050 gw.lab.example
Cruthaíonn iarratas críochnaithe dhá rud ag an am céanna: ghlac an seachfhreastalaí leis an iarratas SOCKS agus réitigh sé an t-ainm. Ní gá scéim URL ar bith, mar go measann curl óstach lom mar HTTP, agus is leor sin don tástáil seo.
Cuireann an t-iarratas sin deireadh freisin leis an teip a cheileann logáil an chliaint. Is féidir le seachfhreastalaí an brabhsálaí a cheadú agus ceann scríbe an VPN a dhiúltú fós, agus sa chás sin tarlaíonn an diúltú ag CONNECT, roimh aon fhíordheimhniú VPN. Ní thuairiscíonn OpenVPN ach tréimhse chun teagmhála, mar sin is é freagra an tseachfhreastalaí féin an fhianaise atá uait.
Ní mór an t-iompar a bheith TCP ar an dá thaobh
Iompraíonn SOCKS5 sruth TCP anseo, mar sin teastaíonn proto tcp-client ón tollán féin. Ní oibreoidh próifíl atá fós socraithe do UDP tríd an gcosán seo, mar nach n-úsáideann an cliant mód comhlachais UDP an phrótacail. Is athrú fíor é an phróifíl a chasadh, ní foirmiúlacht: caithfidh an taobh thall a bheith ag éisteacht le TCP ar an port céanna. Ansin téann an t-ualach ina TCP taobh istigh de TCP, áit a ndéantar deighleog chaillte a athsheoladh faoi dhó agus a dtéann an luas in olcas, rud a thugann seisiúin idirghníomhacha faoi deara i bhfad níos mó ná aistrithe móra.
proto tcp-client
remote gw.lab.example 8443
socks-proxy 127.0.0.1 9050
Tógann an treoir óstach an tseachfhreastalaí, port roghnach agus comhad dintiúirí roghnach. Cuir iad sin sa phróifíl féin ionas go n-iompraíonn cóip go hinmhianaithe in áit eile.
Teorannaigh an slabhra iomlán do choimeádán amháin
Más ar an óstach a dhéantar an slabhra, ciallaíonn sé a bhealach réamhshocraithe a ghlacadh agus an réiteachán a fhágáil i riocht nach féidir le duine ar bith a mhíniú níos déanaí. Cuireann namespace nó coimeádán teorainn leis ina ionad, ionas go gcoinníonn an t-óstach a chosán féin agus an léim SOCKS agus an tollán ina gcónaí le chéile. Ní thagann aon rud aníos istigh ann gan ghléas tolláin, na cearta chun an ghléas sin a chumrú, agus seachfhreastalaí inrochtana. Faigheann seirbhís Compose é sin le cap_add: NET_ADMIN agus /dev/net/tun feistithe le bind.
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
Tá an péire sin níos cúinge ná an coimeádán a rith le pribhléidí, agus is é an t-iomlán é den rochtain gléis a theastaíonn. Is féidir le cliant Tor nó coimeádán seachfhreastalaí ar leith an t-éisteoir a sholáthar. I gceachtar cás ceangail le loopback é, agus sroich ón namespace é tríd an óstach in ionad an seachfhreastalaí a nochtadh don líonra.
Is i réiteach ainmneacha a theipeann an leithlisiú
Níor leithlisigh tollán a iompraíonn paicéid agus a fhiafraíonn de réiteachán an óstaigh aon rud. Déanann dhá rud an leithlisiú fíor: tá a réiteachán féin ag an namespace, agus téann a chuid fiosrúchán tríd an seachfhreastalaí nó tríd an tollán, riamh thar an gcomhéadan fisiceach. Úsáid dhá ainm don tástáil: ceann nach bhfuil ann ach taobh thiar den tollán, agus ceann poiblí ar chóir dó an cosán céanna a leanúint.
docker compose exec vpn cat /etc/resolv.conf
docker compose exec vpn getent hosts internal.lab.example
Má réitíonn ainm an taoibh thall agus mura réitíonn an ceann poiblí, tá an slabhra roghnach seachas briste, agus insíonn an difríocht duit cén cosán a ghlac gach fiosrúchán. Má réitíonn an dá cheann ón óstach ach nach réitíonn ceachtar laistigh den choimeádán, tá an coimeádán fós ag fáil réiteachán an óstaigh ar iasacht. Taifead an comhad réiteacháin a fuaireadh tú, mar sin é an socrú a chaithfear a athrú.
Cruthaigh gach léim in ord
Tá an liosta gearr. Faigheann iarratas SOCKS5 freagra, sroicheann an tollán a éisteoir tríd an seachfhreastalaí, agus iompraíonn paicéid a fhágann an namespace an seoladh a mbíonn súil ag an taobh thall leis. Deimhnigh gach ceann acu ceann ar cheann in ionad níos mó cumraíochta a chur leis. Nuair a deir an cliant go bhfuil sé ceangailte agus nach mbogann aon rud, is beagnach i gcónaí sa dara nó sa tríú fíric atá an briste.
curl --socks5-hostname 127.0.0.1:9050 gw.lab.example
docker compose exec vpn ip route get 203.0.113.10
docker compose exec vpn getent hosts internal.lab.example
Scríobh síos an meascán a d'oibrigh: leagan SOCKS, iompar, réiteachán agus socruithe namespace. Cosnaíonn an slabhra seo a réiteach ó chuimhne an dara huair níos mó ná an nóta. Coinnigh na ceithre fhíric sin sa ticéad seachas i snáithe comhrá.
Slabhra a thuairiscíonn ceangal agus nach n-iompraíonn aon rud is gnách go dteipeann sé ag an léim nach bhfuil cruthaithe agat fós. Tástáil an léim sin sula gcuireann tú ciseal eile leis.