Seva ya VPN kwenye Android: root haifanyi simu kufikika
Matatizo matatu tofauti yanaamua kama simu inaweza kuhudumia wateja wa VPN: njia ya kuingia, mtindo wa ruhusa na uelekezaji. root hugusa wa kati pekee.
root hubadilisha ni shughuli gani za mtandao ambazo mchakato unaruhusiwa kujaribu. Haipi simu anwani inayofikika hadharani, haihifadhi uchoraji wa kuingia kwa mtoa huduma, na haihifadhi daemon hai baada ya kuwasha upya. Ikiwa unaamua kama simu ya Android inaweza kufanya kazi kama seva ya VPN, tenganisha maswali matatu: mteja aliyekusudiwa anaweza kufikia msikilizaji kabisa, utekelezaji wa seva unahitaji mtindo gani wa ruhusa, na ni nini kinapaswa kuelekezwa baada ya handaki kuwa juu.
Nani na kutoka wapi anapaswa kufikia simu
Mteja aliye kwenye LAN hiyo hiyo iliyoruhusiwa na mteja aliye kwenye data ya simu wanajaribu mitandao miwili tofauti. Amua kwanza ile inayokusudiwa, kwa sababu majibu hayahamishwi. Kwenye Wi-Fi, trafiki inayoingia bila kuombwa kwa kawaida inahitaji uchoraji kwenye kipanga njia cha juu na njia ya umma inayoweza kutumika nje yake. Kwenye mtandao wa selula, NAT ya kiwango cha mtoa huduma humaanisha kwamba IPv4 inayoingia mara nyingi haipatikani, bila kujali simu inaruhusu nini.
Hoja hiyo ya mwisho ndiyo ambayo root haiwezi kuigusa. Firewall ya ndani ya simu na NAT ya mtoa huduma ni mifumo tofauti, na kubadilisha ya kwanza hakuna athari kwa ya pili. Anwani ya kiolesura ya kibinafsi, aikoni ya data ya simu au soketi inayosikiliza si uthibitisho wa ufikikaji. Ikiwa njia ya mtoa huduma inatoa IPv6 inayoweza kuelekezwa kimataifa, bado unahitaji sera ya msikilizaji na firewall iliyokusudiwa kwa ajili yake; kuwa na anwani si sawa na kukubali miunganisho.
| Client path | What actually decides reachability |
|---|---|
| Same LAN | The phone's listener and its local firewall |
| Wi-Fi, from the internet | A mapping on the upstream router plus a usable public path beyond it |
| Cellular IPv4 | The carrier's NAT, which the handset does not control |
| Cellular IPv6 | Address, listener and firewall policy together |
Kuhudumia na kuelekeza ni mafanikio mawili tofauti
Handaki ya VPN iliyokamilika inathibitisha kwamba handaki ipo. Haithibitishi kwamba mteja anaweza kufikia LAN iliyo nyuma ya simu, na haithibitishi kwamba simu inaweza kutumika kama njia ya kutoka kwenye intaneti. Hizo ni usanidi tofauti uliojengwa juu ya mpango wa anwani wa ndani, njia, tabia ya kurudi na sera nyembamba ya uelekezaji kwa kazi unayotaka kweli.
Mtindo wa kushindwa unatabirika: handaki inafanikiwa, mteja anaonyesha ameunganishwa, na hakuna kinachopakiwa. Kabla ya kutatua mteja, amua ni jukumu gani kati ya mawili unalojenga. Ufikiaji wa mbali kwa kifaa kwenye mtandao wa simu na kutoka kwenye intaneti kwa handaki kamili zinahitaji sheria tofauti za uelekezaji, na kutoa zote mbili wakati ulitaka moja huongeza mfiduo bila kuongeza uwezo uliouomba.
Mtindo wa ruhusa ni uchaguzi, si root au hakuna kitu
Daemon ya kawaida ya OpenVPN inayotumia kifaa cha TUN cha kernel inahitaji uwezo unaolingana, ufikiaji wa nodi ya kifaa na ushirikiano kutoka sera ya usalama ya Android. root si msamaha wa jumla kutoka SELinux; mchakato wenye ruhusa bado umewekewa mipaka na sera ya jukwaa. Ndiyo sababu faili binary inayofanya kazi vizuri kwenye seva ya Linux inaweza kushindwa kwenye simu bila hitilafu dhahiri kuhusu ruhusa.
Utekelezaji wa lango kwenye nafasi ya mtumiaji unaweza kuwa na mtindo tofauti kabisa wa ruhusa, kwa hiyo dai la kawaida kwamba kila seva ya VPN kwenye Android inahitaji root ni pana mno. Kile root inakununulia ni uwezo wa kujaribu shughuli zaidi, si uhakika kwamba zitaruhusiwa au kwamba matokeo yatakuwa yanafikika.
Usajili wa huduma ya VPN wa Android wenyewe ni utaratibu mwingine tofauti. Unampa programu kiolesura cha mteja kinachosimamiwa na mzunguko wa maisha ulioainishwa; si kisakinishi cha jumla cha seva, na kuanzisha daemon kutoka terminal hakikupi usimamizi wa kudumu, sera kwa kila programu au njia yake ya urejeshaji.
Ikiwa unataka mahali pa kutoka, badilisha usanifu
Wakati lengo ni kutoka kwenye intaneti kwa mbali kupitia simu na si upatanisho na wasifu uliopo wa OpenVPN, nodi ya kutoka inayoungwa mkono katika mtandao wa juu ndio muundo unaofaa zaidi. Tailscale inaandika jukumu la nodi ya kutoka ya Android pamoja na hatua zake za usajili, uidhinishaji na uteuzi wa mteja.
Ubadilishanaji ni wa kweli na unafaa kusemwa wazi: unakubali itifaki tofauti, mtindo tofauti wa uaminifu na utegemezi kwa akaunti hiyo na huduma ya uratibu. Haifanyi mteja wa OpenVPN asiyebadilishwa ajiunge na mtandao wa juu, na haikupi msikilizaji wa OpenVPN kwenye anwani ya umma.
Kile usambazaji bado unahitaji
Njia yoyote utakayochagua, misingi ya uendeshaji huamua kama itadumu wiki moja. Weka hati za kuingia za seva kwa faragha, toa vitambulisho tofauti vya wateja, na panga kubatilisha kabla ya kuhitaji. Amua jinsi masasisho yanavyofika, kile kinachoendelea kuweka huduma ikiwa inafanya kazi chinichini na jinsi inavyopona baada ya kuwasha upya au mabadiliko ya mtandao.
Epuka njia za mkato zinazoonekana kuwa rahisi: faili binary ya kizamani isiyobadilika, majina ya kiolesura yaliyoandikwa moja kwa moja na script ya kuanzisha inayofuta sera iliyopo ya firewall. Kisha kubali matokeo tu dhidi ya jaribio thabiti: mteja wa mbali aliyeruhusiwa anafikia rasilimali iliyokusudiwa, maeneo yaliyokatazwa yanabaki hayapatikani, na kifaa kinarudi chenyewe baada ya tukio la mzunguko wa maisha linaloungwa mkono. Ufikiaji wa root ni kiambato kimoja kinachowezekana katika matokeo hayo, na mara chache ndicho kinachoamua.