Android VPN profil: pronađite vlasnika prije uređivanja
Red VPN-a u sistemu skriva aplikaciju koja posjeduje krajnju tačku, rute i ključeve. Identifikujte vlasnika, a zatim uporedite zatraženo, primljeno i primijenjeno stanje.
Android ekran VPN-a prikazuje jedan red s imenom, ikonom ključa i možda prekidačem za stalno uključivanje. Rijetko prikazuje krajnju tačku, politiku ruta, DNS servere ili akreditive koje omogućavaju vezu, jer u tunelu zasnovanom na aplikaciji one pripadaju aplikaciji. Praktična posljedica je pitanje za runbook, a ne filozofsko: prije uređivanja preuzete datoteke ili traženja centralnog spremišta profila, otkrijte koja komponenta posjeduje postavku koju želite promijeniti.
Najprije odredite vrstu veze
Na istom ekranu postavki postoje najmanje tri rasporeda. Aplikacija može koristiti VpnService da izgradi virtuelni interfejs i posjeduje protokol i privatnu konfiguraciju, uključujući lokalnu aplikaciju za filtriranje bez udaljenog izlaza. Android također može obezbijediti platformski IKEv2 profil kroz Ikev2VpnProfile, dostupan od API 30, gdje platforma drži veći dio profila. A aplikacija provajdera može prikazati vlastitu listu servera i sastaviti postavke interno.
adb shell dumpsys connectivity | grep -i -A12 "VPN"
adb shell cmd connectivity list-owners 2>/dev/null || true
Prva naredba prikazuje aktivnu VPN mrežu i svojstva njenog linka, što je primijenjeno stanje. Ako red navodi paket koji prepoznajete, počnite od vlastitog prikaza profila te aplikacije, a ne od sistemskog ekrana.
Zabilježite vlasnika i obim profila
Zapišite četiri činjenice prije bilo kakve promjene: paket vlasnik, da li veza živi u ličnom ili radnom profilu, naziv profila ili veze kako ga aplikacija prikazuje, i ko njime upravlja. Vlasnik uređaja može obezbijediti VPN radnog profila koji korisnik ličnog profila ne može uređivati, a ista aplikacija instalirana dvaput daje vam dva nezavisna vlasnika.
Ovaj korak sprečava najčešće izgubljeni sat, a to je uređivanje profila koji nije povezani. Aplikacije često drže nekoliko profila, a aktivni je svojstvo aplikacije, ne reda u Androidu.
Uporedite zatraženo, primljeno i primijenjeno stanje
To su tri različite faze, a nesklad među njima govori vam koju komponentu treba popraviti.
| Stage | Where to look | What it proves |
|---|---|---|
| Requested | The app's profile editor or imported file | What the owner intends to use |
| Received | Sanitized app log of server-supplied options | What the peer actually pushed |
| Applied | Link properties and routes after connect | What the device is really using |
Primijenjena faza je ona koju možete posmatrati bez povjerenja u nečiji dnevnik. Uporedite DNS servere i rute u svojstvima aktivnog linka s onima koje profil tvrdi; ako se razlikuju, server je nešto poslao ili je aplikacija primijenila politiku koju niste očekivali.
adb shell ip addr show tun0
adb shell ip route show table all | head -40
Nazivi interfejsa se razlikuju među aplikacijama, zato prvo izlistajte interfejse i pročitajte onaj koji se pojavio kada se tunel povezao. Ruta koja postoji u uređivaču aplikacije ali ovdje nedostaje nikada nije primijenjena; ruta koja je ovdje ali nedostaje u uređivaču došla je odnekud drugdje.
Uredite artefakt koji vlasnik zaista čita
Za uvezeni OpenVPN profil aplikacija obično drži vlastitu kopiju. Kasnije uređivanje prvobitno preuzete datoteke ne mijenja sljedeću vezu; koristite dokumentovani uređivač aplikacije ili ponovo uvezite i potvrdite koji je profil sada aktivan. To je razlika između mijenjanja datoteke i mijenjanja konfiguracije.
Aplikacije provajdera često sastavljaju postavke s liste servera umjesto da pišu datoteku koju korisnik može uređivati. Odsustvo dugmeta za izvoz nije dokaz da je VPN lažan, a izvezena datoteka može izostaviti ključeve vezane za uređaj ili materijal za registraciju koji bi drugom uređaju trebao. Tretirajte izvoz i uvoz kao odvojene operacije sa vlastitim preduslovima.
Napišite napomenu za podršku bez otkrivanja tajni
Korisna napomena navodi tačnu aplikaciju i profil, postavku koja izgleda pogrešno i dokaze iz svake faze. Na primjer: ovaj profil prima privatnu DNS adresu od servera, ali predviđena radna aplikacija ne može razriješiti svoju uslugu, a primijenjena svojstva linka pokazuju taj resolver dok uređivač profila pokazuje drugi.
Držite akreditive izvan napomene. Rootovanje uređaja radi pretrage privatnog spremišta aplikacije nije potrebno za identifikaciju vlasnika, a pretpostavljena putanja do direktorija s podacima nije podržan interfejs. Ako odgovor traži bajtove koje samo aplikacija vidi, zatražite od vlasnika dijagnostički izvoz umjesto da ga improvizujete.
Kada je posao završen, zatvorite petlju: potvrdite naziv aktivnog profila, ponovo pročitajte primijenjeno stanje i jednom se odspojite da provjerite preživljava li promjena ponovno povezivanje. Postavka koja postoji samo u uređivaču nije primijenjena.