sshuttle dhidi ya VPN kamili: kile mbinu yake inashughulikia kwa kweli
sshuttle hubeba tu kile ambacho mbinu yake ya upelekaji inasaidia: kwanza angalia ufikiaji wa TCP, DNS na UDP, upendeleo wa ndani unaohitajika na msaidizi wa mbali.
sshuttle huchaguliwa kwa sababu SSH tayari inafanya kazi na usimbaji fiche unaonekana ukiwa unajulikana, na hoja hiyo inaruka swali pekee linaloamua kama inafaa. Ni pakiti gani zinaondoka kwenye mashine, ni akaunti gani inazibeba upande wa pili, na ni kiasi gani cha upendeleo wa ndani kifaa kinachohitaji. Majibu hayo matatu yanatofautiana kwa mbinu ya upelekaji, kwa hiyo mpangilio unaofanya kazi kwa programu moja unaweza kushindwa kimya kwa inayofuata. Maelezo hapa chini yanaanza na itifaki ambayo programu inahitaji kwa kweli.
Anza na itifaki ambayo programu inahitaji
Msaada wa itifaki katika sshuttle 2.0 unategemea mbinu unayochagua. Mbinu za NAT na nft za Linux hushughulikia TCP na DNS, na TPROXY inaongeza UDP ya jumla. Kila jukwaa na mbinu vina mipaka yake, na macOS hukatiza kwa utaratibu tofauti kabisa. Andika toleo lililosakinishwa, mbinu iliyochaguliwa na itifaki ambazo programu inahitaji kabla ya kuchagua chochote.
Kwa hiyo ombi la TCP linalofanya kazi linathibitisha kidogo sana kuhusu programu ya UDP au kila utafutaji wa DNS. sshuttle pia huchukulia TCP kama mitiririko badala ya kuvuka pakiti kamili za IP, kwa hiyo hitimisho la upenyo lililoazimwa kutoka VPN ya kawaida hali hamishiwi hapa. Linganisha utaratibu unaoendesha kwa kweli na mzigo unao nao kwa kweli.
| Approach | What it carries | What it needs locally |
|---|---|---|
| SSH local forward | One explicitly named TCP destination | Nothing beyond the SSH client |
| sshuttle, nft or nat method | TCP and DNS to the routed prefixes | Root or sudo for firewall rules |
| sshuttle, tproxy method | TCP, DNS and general UDP | Root or sudo, and kernel support |
| IP VPN | Routed IP traffic in a tunnel | A client with the required privileges |
Kile mteja anahitaji ndani
Mpangilio wa mteja ulioandikwa unahitaji root au sudo, kwa sababu unasakinisha kanuni za ndani za kukatiza badala ya kuunda kiolesura cha handaki. Ukweli huo mmoja unabadilisha hadithi ya usalama: mchakato wenye upendeleo huo unaweza kuelekeza trafiki ya mashine yote, si ya programu moja tu. Chukulia upendeleo kama sehemu ya muundo na si maelezo ya usakinishaji.
Thibitisha ni kanuni gani kifaa kiliweka na kwamba zinatoweka kinapotoka. Kikao kilichovunjika na kuacha kanuni za kukatiza kinaweza kutuma trafiki kwenye shimo jeusi muda mrefu baada ya mwendeshaji kuamini kuwa muunganisho umeenda, na dalili inaonekana kama hitilafu ya mtandao na si kanuni iliyobaki.
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
Amri ya kwanza ni umbo la wito wa kawaida, likiwa na kiambishi unachohitaji kwa kweli. Ya pili inaonyesha kile kifaa kiliweka, na ya tatu inathibitisha kuwa hakuna kiolesura cha handaki kilichoonekana, ambayo ni matokeo yanayotarajiwa kwa muundo huu.
Kile upande wa mbali unaendesha
Upande wa mbali ni akaunti ya SSH iliyoidhinishwa pamoja na mazingira ya msaidizi wa Python yanayolingana. Kuingia kunakofanikiwa chini ya shell iliyozuiwa hakutoi ruhusa kiotomatiki ya kuendesha msaidizi huyo, na akaunti inayoweza kuendesha msaidizi haifikii kila huduma lengo kiotomatiki. Ukweli wote wawili ni wa ombi la ufikiaji na si wa maelezo ya kutatua matatizo.
Linda uthibitishaji wa utambulisho wa mwenyeji na uthibitishaji wa akaunti. Kukubali ufunguo wa mwenyeji usiojulikana ili muunganisho wa kwanza ufanye kazi huondoa uthibitishaji kwamba upande wa mbali ni mashine uliyokusudia, na hilo hapa lina uzito zaidi kuliko katika upelekaji wa madhumuni moja.
Punguza akaunti ya mbali kwa huduma ambazo mtiririko wa kazi unahitaji, na jadiliana wigo huo na wanaosimamia mwenyeji. Wao ni sehemu ya uhusiano wa uaminifu, na hakuna mpangilio wa upande wa mteja unaobadilisha hilo.
Ambapo mpaka wa uaminifu upo
Kupleleka muunganisho wa API wa faragha kupitia SSH hakuidhinishi kila operesheni ya API. TLS ya programu na kuingia kwenye programu bado zinatumika, na kifaa hakiwezi kufanya huduma isiyo na uthibitishaji kuwa salama. Hata kuruka tena kutoka kwa mwenyeji wa mbali si kiotomatiki sehemu ile ile iliyolindwa kama chaneli ya SSH, kwa sababu muunganisho huo wa pili unafuata sera yoyote ambayo mwenyeji wa mbali anayo.
Andika mpaka kama sentensi moja: trafiki kuelekea viambishi hivi hutoka kupitia akaunti hii kwenye mwenyeji yule. Ikiwa sentensi inahitaji aya ya istisno, muundo unafanya zaidi ya kile nyaraka zake zinadai na unastahili mtazamo wa pili kabla ya kufikia uzalishaji.
Thibitisha kwa kila itifaki, kisha chagua kifaa
Jaribu kila itifaki inayohitajika kwa ombi lisilo na madhara, ikiwa ni pamoja na njia ya kitatuzi na familia za anwani ambazo programu inatumia. Jumuisha kukatika kwenye jaribio, ili tabia inayoruhusiwa ya kushindwa iwe matokeo yanayojulikana na si mshangao wakati wa tukio. Kikao kilichopeleka kwa usahihi kilipokuwa hai hakisemi chochote kuhusu kile kinachotokea kinapoanguka.
Kwa huduma chache zilizotajwa kwa uwazi, upelekaji wa kawaida wa ndani ni rahisi kumiliki na rahisi kukaguliwa. Kwa trafiki ya programu inayolingana na mbinu yake, sshuttle inatoa njia ya kati halali. Wakati hitaji ni muunganisho mpana wa IP, muundo wa VPN ndilo jibu la uaminifu, na uchaguzi unafuata ufikiaji na uwajibikaji wa uendeshaji na si cheo cha algoriti za usimbaji fiche.