Android OpenVPN: dodajte privatnu rutu bez rootanja telefona
Dodajte jednu rutu u profil koji Android zaista učitava, pa provjerite da li je server dopušta. Uputa za izmjenu, ponovno povezivanje i četiri provjere.
Treba vam još jedna privatna podmreža, recimo 10.60.0.0/24, koje u profilu još nema. Na laptopu dodate rutu i nastavite. Na Androidu je VPN aplikacija, tun uređaj pripada toj aplikaciji, i nema tablice rutiranja koju možete mijenjati bez roota. Ruta ipak mora postojati, ali ide u profil koji klijent učitava i radi samo ako se druga strana složi. Slijedi izmjena, ponovno povezivanje, strana servera i vraćanje.
Prije izmjene: šta ruta može, a šta ne može
Ruta odgovara na jedno pitanje: koje sučelje treba nositi promet prema ovom odredištu. Ona ništa ne odobrava. Ako vlasnik mreže nije pristao da ovaj telefon dosegne tu podmrežu, ispravna ruta daje konfiguraciju koja izgleda ispravno i tiho odbacivanje na pristupniku, a sljedeći sat ćete uređivati pogrešnu datoteku.
Prvo dobijte taj pristanak, pismeno ako mreža ima vlasnika. Zatim zabilježite što ne radite: ne dodjeljujete telefonu adresu unutar tog LAN-a, ne mijenjate slušač servera i ne birate lokaciju po imenu hosta. To su četiri različite promjene i samo je prva vaša.
| The route gives you | The route does not give you |
|---|---|
| A destination prefix associated with the tunnel | Permission to forward at the gateway |
| A path for the phone's own traffic | A return route on the target host |
| A scope for the client's virtual interface | A name in DNS, or HTTPS identity |
Uredite profil koji klijent zaista učitava
Za kompatibilnog klijenta koji uvozi običan tekst OpenVPN opcija, dodatak je jedan redak:
route 10.60.0.0 255.255.255.0Dodajte ga u tijelo profila, blizu ostalih direktiva rutiranja, a krajnju točku operatera, certifikate, rukovanje ključevima i retke provjere zadržite točno kakvi su bili. Ne lijepite cijeli stari primjer da posudite jedan redak: kompresija, apsolutne putanje i zastarjele postavke šifri putuju s njim i koštaju zasebnu sesiju otklanjanja grešaka.
Korak koji ljudi propuštaju je vlasništvo datoteke. Ako je aplikacija uvezla profil, kopija koju koristi pripada aplikaciji, i uređivanje preuzetog originala ništa ne mijenja. Koristite uređivač koji klijent podržava ili ponovno uvezite izmijenjenu datoteku kroz putanju ažuriranja, i potvrdite ime aktivnog profila kad postoji više sličnih imena. Zapišite koji ste promijenili.
Ako profil već sadrži route-nopull, nijedna ruta sa servera se ne instalira i svaki prefiks koji telefon treba mora biti izričito naveden. To je valjan dizajn, ali znači da izostavljen redak izgleda isto kao odbijanje servera.
Ponovo se povežite i provjerite na uređaju
Prvo prekinite vezu, pa se ponovno povežite na točno onaj profil koji ste uredili, umjesto da pustite aplikaciju da obnovi posljednju sesiju. Otvorite dnevnik veze i potvrdite da je klijent pročitao novi redak; direktiva rute koju sučelje zanemari čest je ishod uređivanja pogrešne kopije.
Testirajte odredište po adresi, ne po imenu. TCP provjera na poznati port usluge informativnija je od pinga, jer mnogi hostovi odgovaraju na ICMP dok je port usluge filtriran. Ako adresa odgovara a ime ne, imate pitanje razrješivača, ne rutiranja.
Ovdje pripadaju i dvije provjere opsega. Per-app VPN znači da adresna ruta može postojati dok je aplikacija kojom testirate izvan uključenog skupa, pa testirajte aplikacijom koja je zaista unutra. A IPv4 prefiks ne govori ništa o IPv6 putu; ako je usluga dvostruka, dodajte odgovarajuću IPv6 rutu ili očekujte da će klijent preferirati put koji niste htjeli.
Jedan negativan rezultat vrijedi prepoznati rano: ako ruta punog tunela već pokriva 0.0.0.0/0, prefiks ne nedostaje i ponovno dodavanje ništa ne mijenja. Dvostruko pokrivanje ne popravlja odbijanje na strani servera ni nedostajući odgovor.
Dovršite put na serveru
Tri stvari moraju biti istinite izvan telefona. Pristupniku treba ruta do odredišta i dopuštenje za prosljeđivanje izvora telefona prema njemu. Cilj mora prihvatiti taj izvor i vraćati odgovore kroz pristupnik, ili dizajn treba namjerno prevođenje na izlazu. Opcija rute iz OpenVPN priručnika pokriva direktivu na strani klijenta; prosljeđivanje i povratno rutiranje zasebne su postavke na zasebnim strojevima.
Ako odredište stoji iza drugog VPN klijenta, a ne izravno iza pristupnika, serveru treba iroute za podmrežu tog partnera. Ta direktiva pripada serveru i opisuje koji klijent posjeduje prefiks; telefon je ne može dati iz svog profila i nijedno uređivanje na strani klijenta je ne zamjenjuje.
Provjerite povratni put izričito. Odgovor koji izlazi zadanom rutom umjesto tunelom daje klasičan simptom poluotvorene veze: veza je uspostavljena u jednom smjeru i ništa se ne vraća. Prevođenje izvora na pristupniku valjano je rješenje kad cilj ne može uzvratiti rutu, ali to je odluka politike s vlastitim posljedicama.
Vraćanje i prihvatanje
Sačuvajte prethodni profil prije izmjene. Ako promjena pogorša stanje, vratite tu kopiju istom putanjom ponovnog uvoza, povežite se i potvrdite da se staro ponašanje vratilo; to potvrđuje da ste promijenili ono što ste mislili. Vraćanje koje ne uspostavi staro stanje znači da aplikacija drži treću kopiju koju niste našli.
Prihvatite promjenu kad vrijede četiri stvari, testirane ovim redom nakon svježeg povezivanja: odredište odgovara na portu usluge, privatno ime se razrješava ako se očekuje, HTTPS još potvrđuje predviđeno ime hosta, i sve radi nakon ponovnog pokretanja ili prelaska s Wi-Fi na mobilnu mrežu. Posljednja provjera hvata rutu koja postoji samo dok Android ponovno ne uspostavi tunel.
- Potvrdite da vlasnik mreže dopušta odredište prije bilo kakve izmjene.
- Stavite rutu u profil koji klijent učitava, pa ponovno uvezite i povežite se.
- Provjerite po portu usluge, unutar per-app opsega, za ispravnu porodicu adresa.
- Popravite prosljeđivanje, povratno rutiranje i iroute na serveru, ne na telefonu.
- Sačuvajte kopiju za vraćanje i ponovno testirajte nakon ponovnog pokretanja.