VPN strežnik v Androidu: root ne naredi telefona dosegljivega
Trije ločeni problemi odločajo, ali lahko telefon streže odjemalcem VPN: dohodna pot, model pravic in posredovanje. Root se dotakne le srednjega.
Root spremeni, katere omrežne operacije lahko proces poskusi. Telefonu ne da javno dosegljivega naslova, ne rezervira dohodnega preslikavanja pri operaterju in ne ohrani demona živega po ponovnem zagonu. Če odločate, ali lahko telefon Android deluje kot strežnik VPN, ločite tri vprašanja: ali lahko predvideni odjemalec sploh doseže poslušalca, kakšen model pravic potrebuje izvedba strežnika in kaj je treba posredovati, ko je tunel vzpostavljen.
Kdo mora doseči telefon in od kod
Odjemalec v istem dovoljenem LAN in odjemalec na mobilnih podatkih preizkušata dve različni omrežji. Najprej določite predvideno, ker se odgovori ne prenašajo. V Wi-Fi-ju nezahtevan dohodni promet običajno potrebuje preslikavo na nadrejenem usmerjevalniku in uporabno javno pot za njim. V mobilnem omrežju NAT na ravni operaterja pomeni, da dohodni IPv4 pogosto ni na voljo, ne glede na to, kaj telefon dovoli.
Prav zadnje je tisto, česar se root ne more dotakniti. Lokalni požarni zid telefona in NAT operaterja sta različna sistema, sprememba prvega pa ne vpliva na drugega. Zasebni naslov vmesnika, ikona mobilnih podatkov ali poslušajoča vtičnica niso dokaz dosegljivosti. Če pot prek operaterja vseeno ponuja globalno usmerljiv IPv6, za to še vedno potrebujete premišljeno politiko poslušalca in požarnega zidu; imeti naslov ni isto kot sprejemati povezave.
| 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 |
Streženje in posredovanje sta dva različna uspeha
Dokončan rokovanje VPN dokazuje, da tunel obstaja. Ne dokazuje, da lahko odjemalec doseže LAN za telefonom, niti da lahko telefon služi kot internetni izhod. To so ločene konfiguracije, zgrajene na notranjem načrtu naslovov, poteh, vedenju pri vrnitvi in ozko omejeni politiki posredovanja za nalogo, ki si jo res želite.
Način odpovedi je predvidljiv: rokovanje uspe, odjemalec prikaže povezavo in nič se ne naloži. Preden začnete razhroščevati odjemalca, odločite, katero od dveh vlog gradite. Oddaljeni dostop do naprave v omrežju telefona in internetni izhod skozi polni tunel zahtevata različna pravila posredovanja in odobritev obeh, ko ste želeli enega, razširi izpostavljenost, ne da bi dodala zahtevano zmogljivost.
Model pravic je izbira, ne root ali nič
Običajen demon OpenVPN, ki uporablja jedrno napravo TUN, potrebuje ustrezne zmogljivosti, dostop do vozlišča naprave in sodelovanje varnostne politike Androida. Root ni splošna izjema od SELinuxa; privilegiran proces je še vedno omejen s politiko platforme. Zato lahko binarna datoteka, ki na strežniku Linux teče brez težav, na telefonu odpove brez očitne napake glede dovoljenj.
Izvedba prehoda v uporabniškem prostoru ima lahko povsem drugačen model pravic, zato je splošna trditev, da vsak strežnik VPN v Androidu potrebuje root, preširoka. Root vam kupi zmožnost preizkusiti več operacij, ne pa jamstva, da bodo dovoljene ali da bo rezultat dosegljiv.
Registracija storitve VPN v samem Androidu je spet drug mehanizem. Aplikaciji da upravljani odjemalski vmesnik z določenim življenjskim ciklom; to ni splošni namestitveni program strežnika in zagon demona iz terminala mu ne da trajnega upravljanja, politike za posamezno aplikacijo ali lastne poti za obnovitev.
Če želite izhodno točko, spremenite arhitekturo
Ko je cilj zgolj oddaljeni internetni izhod prek telefona in ne združljivost z obstoječim profilom OpenVPN, je bolj primerna podprta izhodna vozlišča v prekrivnem omrežju. Tailscale dokumentira vlogo izhodnega vozlišča za Android z lastnimi koraki registracije, avtorizacije in izbire odjemalca.
Kompromis je resničen in ga velja povedati naravnost: sprejmete drug protokol, drug model zaupanja in odvisnost od tega računa in storitve usklajevanja. To ne povzroči, da bi se nespremenjen odjemalec OpenVPN pridružil prekrivnemu omrežju, in vam ne da poslušalca OpenVPN na javnem naslovu.
Kaj namestitev še potrebuje
Ne glede na pot, ki jo izberete, o preživetju tedna odločajo operativne osnove. Hranite poverilnice strežnika zasebne, izdajajte različne identitete odjemalcev in načrtujte preklic, preden ga boste potrebovali. Odločite, kako prihajajo posodobitve, kaj ohranja storitev delujočo v ozadju in kako se obnovi po ponovnem zagonu ali spremembi omrežja.
Izogibajte se bližnjicam, ki so videti priročne: zastarela statična binarna datoteka, trdo kodirana imena vmesnikov in zagonski skript, ki počisti obstoječo politiko požarnega zidu. Nato rezultat sprejmite le ob konkretnem preskusu: pooblaščeni oddaljeni odjemalec doseže predvideni vir, prepovedani cilji ostanejo nedosegljivi in naprava se sama vrne po podprtem dogodku življenjskega cikla. Dostop root je ena od možnih sestavin tega rezultata in redko odločilna.