Androidi VPN-server: root ei tee telefoni kättesaadavaks
Kolm eraldi probleemi otsustavad, kas telefon saab VPN-kliente teenindada: sissetulev tee, õiguste mudel ja edasisaatmine. Root puudutab ainult keskmist.
Root muudab, milliseid võrgutoiminguid protsess proovida tohib. See ei anna telefonile avalikult kättesaadavat aadressi, ei broneeri operaatori juures sissetulevat vastendust ega hoia deemonit pärast taaskäivitust elus. Kui otsustate, kas Android-telefon saab VPN-serverina toimida, eraldage kolm küsimust: kas kavandatud klient jõuab kuulajani üldse, millist õiguste mudelit serveri teostus vajab ja mida tuleb tunnelil püsti olles edasi saata.
Kes ja kust peab telefonini jõudma
Klient samas lubatud LAN-is ja klient mobiilsetel andmetel kontrollivad kahte erinevat võrku. Otsustage esmalt kavandatu, sest vastused ei kandu üle. Wi-Fi puhul vajab soovimatu sissetulev liiklus tavaliselt vastendust ülemises ruuteris ja selle taga kasutatavat avalikku teed. Mobiilvõrgus tähendab carrier-grade NAT, et sissetulev IPv4 on sageli kättesaamatu, ükskõik mida telefon lubab.
Just viimane punkt on see, mida root puutuda ei saa. Telefoni kohalik tulemüür ja operaatori NAT on erinevad süsteemid ning esimese muutmine ei mõjuta teist. Privaatne liidese aadress, mobiilse andmeside ikoon või kuulav pesa ei ole kättesaadavuse tõend. Kui operaatori tee siiski pakub ülemaailmselt marsruuditavat IPv6-t, vajate ikkagi sihikindlat kuulaja- ja tulemüüripoliitikat; aadressi omamine ei ole sama mis ühenduste vastuvõtmine.
| 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 |
Teenindamine ja edasisaatmine on kaks erinevat edu
Lõpetatud VPN-käepigistus tõestab, et tunnel on olemas. See ei tõesta, et klient jõuab telefonitaguse LAN-ini, ega seda, et telefon saab internetiväljapääsuna toimida. Need on eraldi seadistused, mis rajatakse sisemisele aadressiplaanile, marsruutidele, tagastuskäitumisele ja kitsalt piiritletud edasisaatmispoliitikale selle töö jaoks, mida tegelikult soovite.
Tõrkerežiim on ettearvatav: käepigistus õnnestub, klient näitab ühendatud ja midagi ei laadi. Enne kliendi silumist otsustage, kumba kahest rollist ehitate. Kaugjuurdepääs telefonivõrgu seadmele ja täistunneliga internetiväljapääs vajavad erinevaid edasisaatmisreegleid ning mõlema lubamine, kui soovisite ühte, laiendab kokkupuudet lisamata võimekust, mida küsisite.
Õiguste mudel on valik, mitte root või mitte midagi
Tavaline kerneli TUN-seadet kasutav OpenVPN deemon vajab vastavaid võimeid, juurdepääsu seadme sõlmele ja Androidi turbepoliitika koostööd. Root ei ole üldine erand SELinuxist; privilegeeritud protsess on endiselt platvormipoliitikaga piiratud. Sellepärast võib Linux-serveris hästi töötav binaarfail telefonis ebaõnnestuda ilma selge loadest tuleneva veata.
Kasutajaruumi lüüsi teostusel võib olla hoopis teistsugune õiguste mudel, seega väide, et iga Androidi VPN-server vajab rooti, on liiga lai. Root annab teile võimaluse proovida rohkem toiminguid, mitte garantii, et need lubatakse või et tulemus on kättesaadav.
Androidi enda VPN-teenuse registreerimine on jälle eraldi mehhanism. See annab rakendusele hallatava kliendiliidese määratletud elutsükliga; see ei ole üldine serveri paigaldaja ning deemonit terminalist käivitamine ei anna sellele pidevat haldust, rakendusepõhist poliitikat ega oma taastetee.
Kui soovite väljapääsupunkti, muutke arhitektuuri
Kui eesmärk on lihtsalt kauginterneti väljapääs telefoni kaudu, mitte ühilduvus olemasoleva OpenVPN-profiiliga, sobib paremini kattuvõrgu toetatud väljapääsusõlm. Tailscale dokumenteerib Androidi väljapääsusõlme rolli oma registreerimise, autoriseerimise ja kliendi valiku sammudega.
Kompromiss on tõeline ja tasub otse välja öelda: nõustute teise protokolli, teise usaldusmudeliga ja sõltuvusega sellest kontost ja koordineerimisteenusest. See ei pane muutmata OpenVPN-klienti kattuvõrku liituma ega anna teile avalikul aadressil OpenVPN-kuulajat.
Mida juurutamine veel vajab
Ükskõik millise tee valite, operatiivsed alused otsustavad, kas see peab vastu nädala. Hoidke serveri mandaadid privaatsena, väljastage erinevad kliendi identiteedid ja planeerige tühistamine enne, kui seda vajate. Otsustage, kuidas uuendused saabuvad, mis hoiab teenuse taustal töös ja kuidas see taastub pärast taaskäivitust või võrgu muutumist.
Vältige mugavana näivaid otseteid: vananenud staatiline binaarfail, kõvakodeeritud liidesenimed ja käivituskript, mis tühjendab olemasoleva tulemüüripoliitika. Seejärel võtke tulemus vastu ainult konkreetse testiga: volitatud kaugklient jõuab kavandatud ressursini, keelatud sihtkohad jäävad kättesaamatuks ja seade tuleb ise tagasi pärast toetatud elutsükli sündmust. Root-juurdepääs on selle tulemuse üks võimalik koostisosa ja harva otsustav.