Android OpenVPN: in priveerûte tafoegje sûnder de tillefoan te rooten
Foegje ien rûte ta oan it profyl dat Android echt laadt, en kontrolearje dan oft de server it tastean. Hânlieding foar de bewurking, it opnij ferbinen en fjouwer kontrôles.
Jo hawwe noch ien privee subnet nedich — sis 10.60.0.0/24 — dat it profyl no net befettet. Op in laptop soene jo in rûte tafoegje en fierder gean. Op Android is de VPN in app, it tun-apparaat heart by dy app, en der is gjin routingtabel om te bewurkjen sûnder root. De rûte moat dochs bestean, mar hy giet yn it profyl dat de klient laadt, en hy wurket allinnich as de oare kant it iens is. Hjir binne de bewurking, it opnij ferbinen, de serverkant en it weromsetten.
Foar de bewurking: wat in rûte wol en net kin
In rûte beëantwurdet ien fraach: hokker ynterface moat it ferkear nei dit doel drage. Hy autorisearret neat. As de eigner fan it netwurk net akkoart is dat dizze tillefoan dat subnet berikke mei, makket in korrekte rûte in konfiguraasje dy't der korrekt útsjocht en in stil falle by de gateway, en jo bringe it folgjende oere troch mei it bewurkjen fan it ferkearde bestân.
Krij earst dy oerienkomst, skriftlik as it netwurk in eigner hat. Notearje dan wat jo net dogge: jo jouwe de tillefoan gjin adres binnen dat LAN, jo feroarje de listener fan de server net, en jo kieze gjin side op hostnamme. Dat binne fjouwer ferskillende feroarings en allinnich de earste is fan jo.
| 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 |
Bewurkje it profyl dat de klient echt laadt
Foar in kompatibele klient dy't gewoane OpenVPN-opsjetekst ymportearret, is de tafoeging ien rigel:
route 10.60.0.0 255.255.255.0Foegje dy ta oan 'e romp fan it profyl, by de oare routingdirektiven, en hâld it endpoint, de sertifikaten, it kaai-behear en de ferifikaasjerigels fan de operator krekt sa't se wiene. Plak gjin hiel âld foarbyld om ien rigel te lienen: kompresje, absolute bestânspaden en ferâldere cipher-ynstellings reizgje mei en kostje jo in aparte debugsesje.
De stap dy't minsken misse is it eigendom fan it bestân. As de app in profyl ymportearre hat, is de kopy dy't er brûkt fan de app, en it bewurkjen fan it downloade orizjineel feroaret neat. Brûk de stipe bewurker fan de klient, of ymportearje it bewurke bestân opnij fia it fernijingspaad, en befêstigje de namme fan it aktive profyl as der ferskate likense nammen binne. Notearje hokker jo feroare hawwe.
As it profyl al route-nopull hat, wurdt gjin rûte fan de server ynstallearre en moat elk prefix dat de tillefoan nedich hat eksplisyt neamd wurde. Dat is in legitimaal ûntwerp, mar it betsjut dat in weilitten rigel der krekt itselde útsjocht as in wegering fan de server.
Ferbyn opnij en kontrolearje op it apparaat
Ferbrek earst, ferbyn dan opnij it spesifike profyl dat jo bewurke hawwe, ynstee fan de app de lêste sesje weromsette te litten. Iepenje it ferbiningslog en befêstigje dat de klient de nije rigel parst hat; in routingdirektive dy't de frontend negearret is in gewoan gefolch fan it bewurkjen fan de ferkearde kopy.
Test it doel op adres, net op namme. In TCP-kontrôle nei ien bekend tsjinstport jout mear ynformaasje as in ping, om't in protte hosts ICMP beëantwurdzje wylst it tsjinstport filtere is. As it adres antwurdet en in namme net, hawwe jo in resolver-fraach en gjin routing-fraach, en de folgjende paragraaf is net foar jo.
Twa berikkontrôles hearre hjir ek. Per-app VPN betsjut dat in adresrûte oanwêzich wêze kin wylst de app dêr't jo mei testen bûten de opnommen set falt, dus test mei in app dy't echt binnen is. En in IPv4-prefix seit neat oer it IPv6-paad; as de tsjinst dual-stack is, foegje de byhearrende IPv6-rûte ta of ferwachtsje dat de klient in paad foarkar jout dat jo net bedoelden.
Ien negatyf resultaat is it wurdich betiid te werken: as in full-tunnel-rûte al 0.0.0.0/0 dekt, ûntbrekt it prefix net en feroaret it opnij tafoegjen neat. Dûbele dekking reparearret gjin wegering fan de serverkant en ek gjin ûntbrekkend antwurd.
Meitsje it paad ôf op de server
Trije dingen moatte wier wêze bûten de tillefoan. De gateway hat in rûte nei it doel nedich en tastimming om de boarne fan de tillefoan dêrhinne troch te stjoeren. It doel moat dy boarne akseptearje en antwurden fia de gateway weromstjoere, of it ûntwerp hat bewuste oersetting by de útgong nedich. De route-opsje fan de OpenVPN-hantlieding dekt de direktive oan klantkant; trochstjoeren en weromrouting binne aparte ynstellings op aparte masines.
As it doel efter in oare VPN-klient sit ynstee fan direkt efter de gateway, hat de server in iroute nedich foar it subnet fan dy peir. Dy direktive is fan de server en beskriuwt hokker klient in prefix hat; in tillefoan kin dy net út syn eigen profyl leverje, en gjin hoemannichte bewurking oan klantkant ferfangt him.
Kontrolearje it werompaad eksplisyt. In antwurd dat fia de standertrûte ynstee fan de tunnel fuortgiet, makket it klassike heal-iepen symptoom: de ferbining is yn ien rjochting ta stân brocht en der komt neat werom. Boarneoersetting op de gateway is in legitime fix as it doel net weromroutearje kin, mar it is in beliedsbeslút mei syn eigen gefolgen.
Weromsette en akseptaasje
Bewarje it foarige profyl foardat jo it bewurkje. As de feroaring it slimmer makket, set dan dy kopy werom fia itselde weromymportpaad, ferbyn opnij, en befêstigje dat it âlde gedrach weromkomt — dat befêstiget dat jo feroare hawwe wat jo tochten te feroarjen. In weromsetten dat de âlde steat net werombringt, betsjut dat de app in tredde kopy hat dy't jo net fûn hawwe.
Akseptearje de feroaring as fjouwer dingen jilde, yn dizze folchoarder test nei in nije ferbining: it doel antwurdet op syn tsjinstport, de priveenamme wurdt oplost as dy ferwachte wurdt, HTTPS falidearret noch de bedoelde hostnamme, en it gehiel wurket noch nei in werstart of in oerstap fan Wi-Fi nei mobyl. De lêste kontrôle is dejinge dy't in rûte fangt dy't allinnich bestiet oant Android de tunnel opnij oanmakket.
- Befêstigje foar elke bewurking dat de eigner fan it netwurk it doel tastean.
- Set de rûte yn it profyl dat de klient laadt, ymportearje dan opnij en ferbyn opnij.
- Kontrolearje fia tsjinstport, binnen de per-app-berik, foar de juste adresfamylje.
- Reparearje trochstjoeren, weromrouting en iroute op de server, net op de tillefoan.
- Hâld in weromsetkopy, en test opnij nei in werstart.