VPN poslužitelj na Androidu: root ne čini telefon dostupnim
Tri odvojena problema odlučuju može li telefon posluživati VPN klijente: dolazni put, model ovlasti i prosljeđivanje. Root dira samo srednji.
Root mijenja koje mrežne operacije proces smije pokušati. Ne daje telefonu javno dostupnu adresu, ne rezervira dolazno mapiranje kod operatera i ne održava demon na životu nakon ponovnog pokretanja. Ako odlučujete može li Android telefon djelovati kao VPN poslužitelj, razdvojite tri pitanja: može li predviđeni klijent uopće doći do slušatelja, koji model ovlasti treba implementaciji poslužitelja i što se mora prosljeđivati kad je tunel podignut.
Tko mora doći do telefona i odakle
Klijent na istoj dopuštenoj LAN mreži i klijent na mobilnim podacima testiraju dvije različite mreže. Prvo riješite koju namjeravate, jer se odgovori ne prenose. Na Wi-Fi mreži neželjeni dolazni promet obično traži mapiranje na uzvodnom usmjerivaču i upotrebljiv javni put iza njega. Na mobilnoj mreži carrier-grade NAT znači da je dolazni IPv4 često nedostupan, bez obzira na to što telefon dopušta.
Ta posljednja točka je ona koju root ne može dotaknuti. Lokalni vatrozid telefona i NAT operatera različiti su sustavi, a promjena prvoga ne utječe na drugi. Privatna adresa sučelja, ikona mobilnih podataka ili socket koji sluša nisu dokaz dostupnosti. Ako put preko operatera ipak nudi globalno usmjeriv IPv6, i dalje vam treba namjerna politika slušatelja i vatrozida za njega; imati adresu nije isto što i prihvaćati veze.
| 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 |
Posluživanje i prosljeđivanje dva su različita uspjeha
Završen VPN handshake dokazuje da tunel postoji. Ne dokazuje da klijent može doći do LAN mreže iza telefona, niti da telefon može služiti kao izlaz u internet. To su odvojene konfiguracije izgrađene na unutarnjem planu adresa, rutama, ponašanju pri povratku i usko ograničenoj politici prosljeđivanja za zadatak koji doista želite.
Način neuspjeha je predvidiv: handshake prođe, klijent pokaže povezanost, a ništa se ne učita. Prije nego što otklanjate pogreške na klijentu, odlučite koju od dviju uloga gradite. Daljinski pristup uređaju na telefonovoj mreži i izlaz u internet kroz puni tunel traže različita pravila prosljeđivanja, a odobravanje obojega kad ste htjeli jedno širi izloženost bez dodavanja mogućnosti koju ste tražili.
Model ovlasti je izbor, a ne root ili ništa
Uobičajeni OpenVPN demon koji rabi kernel TUN uređaj treba odgovarajuće sposobnosti, pristup čvoru uređaja i suradnju Androidove sigurnosne politike. Root nije sveobuhvatno izuzeće od SELinuxa; privilegirani proces i dalje je ograničen politikom platforme. Zato binarni program koji mirno radi na Linux poslužitelju može pasti na telefonu bez očite pogreške o dopuštenjima.
Implementacija pristupnika u korisničkom prostoru može imati posve drukčiji model ovlasti, pa je uvriježena tvrdnja da svaki VPN poslužitelj na Androidu treba root preširoka. Root vam kupuje mogućnost da pokušate više operacija, ne jamstvo da će biti dopuštene ili da je rezultat dostupan.
Androidova vlastita registracija VPN usluge opet je odvojen mehanizam. Aplikaciji daje upravljano klijentsko sučelje s definiranim životnim ciklusom; to nije univerzalni instalater poslužitelja, a pokretanje demona iz terminala ne daje mu upravljanje stalnog rada, politiku po aplikaciji ni vlastiti put oporavka.
Ako želite izlaznu točku, promijenite arhitekturu
Kad je cilj jednostavno daljinski izlaz u internet kroz telefon, a ne kompatibilnost s postojećim OpenVPN profilom, bolje odgovara podržani izlazni čvor u overlay mreži. Tailscale dokumentira ulogu Android izlaznog čvora s vlastitim koracima registracije, autorizacije i odabira klijenta.
Kompromis je stvaran i vrijedi ga jasno reći: prihvaćate drukčiji protokol, drukčiji model povjerenja i ovisnost o tom računu i usluzi koordinacije. To ne čini da se neizmijenjeni OpenVPN klijent pridruži overlay mreži i ne daje vam OpenVPN slušatelja na javnoj adresi.
Što implementaciji još treba
Koji god put odabrali, operativne osnove odlučuju hoće li izdržati tjedan. Čuvajte vjerodajnice poslužitelja privatnima, izdajte različite identitete klijenata i planirajte opoziv prije nego što vam zatreba. Odlučite kako stižu ažuriranja, što održava uslugu pokrenutom u pozadini i kako se oporavlja nakon ponovnog pokretanja ili promjene mreže.
Izbjegavajte prečice koje izgledaju zgodno: zastario statični binarni program, tvrdo kodirana imena sučelja i startnu skriptu koja briše postojeću vatrozidnu politiku. Zatim prihvatite rezultat samo uz konkretan test: ovlašteni daljinski klijent dolazi do željenog resursa, zabranjena odredišta ostaju nedostupna, a uređaj se sam vraća nakon podržanog događaja životnog ciklusa. Root pristup je jedan mogući sastojak tog ishoda i rijetko odlučujući.