Bockade du av en app i OpenVPN? Listans basläge avgör
Samma ikryssade paket betyder inkludera eller exkludera beroende på listans basläge. Välj endast-inkludera först, återanslut och testa sedan hela arbetsflödet.
Kryssrutan ser ut som hela beslutet, och på Android är den inte det. Samma ikryssade paket betyder ”bara den här appen använder VPN” under ett endast-inkludera-läge och ”den här appen hoppar över VPN” under ett läge som utesluter de valda. Folk installerar en klient, hittar en lista märkt Tillåtna appar, kryssar i det enda paket de bryr sig om och går därifrån med en policy som gör det motsatta. Att byta klient hjälper sällan; att välja basläget innan du rör listan hjälper.
Basläget är policyn, inte kryssrutan
Under Androids VpnService konfigurerar en klient routing per app med addAllowedApplication eller addDisallowedApplication. Den första begränsar tunneln till de listade paketen, den andra tunnlar allt utom dem. Klienter paketerar de två i ett gränssnitt som kan se nästan identiskt ut, och en del märker avsnittet efter listan i stället för efter läget, så avsnittsrubriken ensam kan inte säga vilket basläge som är aktivt.
Läs lägeskontrollen ovanför listan, inte rubriken. I den ursprungliga OpenVPN for Android-klienten har listan över tillåtna appar ett endast-inkludera-läge och ett läge som utesluter de valda, och ett varumärkesbyggt bygge kan formulera båda annorlunda och ändå behålla samma två beteenden. En skärmbild från en annan klient, eller från en äldre version av samma, är inte bevis om det läge du är i.
| What the client shows | What a checked app gets |
|---|---|
| Allowed apps, include-only baseline | The app uses the tunnel; unchecked apps do not |
| Allowed apps, exclude-selected baseline | The app bypasses the tunnel; everything else uses it |
| No list configured | Client or profile default, commonly all apps |
Den tabellen är hela myten. Att kryssa i appen är ett påstående om ett paket; basläget avgör om påståendet är ”inkludera” eller ”exkludera”.
Välj läge, sedan paket
Arbeta i den här ordningen, eftersom ett val som gjorts under ett basläge kan överleva ett lägesbyte och tyst vända sin effekt:
- Identifiera det riktiga paketet och om det är den personliga eller arbetsprofilens kopia.
- Öppna inställningarna för appval för exakt den VPN-profil du ansluter med.
- Ställ in basläget vars betydelse är ”bara valda appar använder VPN”.
- Inkludera det avsedda paketet och lämna orelaterade appar utanför mängden.
- Återanslut så att klienten bygger om gränssnittet med den nya listan.
Profilen är lika viktig som paketet. En klient kan ha flera profiler, och appvalet tillhör den du faktiskt ansluter med; att redigera en profil du aldrig använder ändrar ingenting. På en hanterad enhet är arbetsprofilen en separat användare med sin egen appkopia och sin egen policy, så att den personliga instansen ligger i tunneln säger ingenting om arbetsinstansen.
Återanslut innan du bedömer resultatet
VpnService läser applistorna när tunnelgränssnittet upprättas. En tunnel som körs tar inte nödvändigtvis upp en liständring, och klienter skiljer sig åt i om de bygger om automatiskt eller väntar på att du kopplar från och till igen.
Om ändringen verkar göra ingenting, testa återanslutningen innan du tvivlar på listan. Gör sedan en färsk förfrågan i stället för att ladda om en sida som redan var öppen: en app som håller en upprättad anslutning är ett dåligt testobjekt, och resultatet du ser kan höra till det gamla gränssnittet.
Ditt arbetsflöde kan lämna appen
En app kan lämna över till en webbläsare för inloggning, till en dokumentvisare eller till ett delningsmål. Under ett endast-inkludera-läge står de hjälparna utanför tunneln, så ett arbetsflöde kan misslyckas halvvägs även om den första appen var korrekt konfigurerad. Inkludera hjälparen bara om arbetsflödet verkligen behöver den, och lägg till den medvetet i stället för att upptäcka den under en demo.
Appval ersätter inte heller anslutningens egen rutpolicy. Profilen måste fortfarande bära destinationsprefixen och adressfamiljerna som appen använder, och gatewayen måste fortfarande tillåta tjänsten. En korrekt listad app med en onåbar destination ser likadan ut som en felkonfigurerad lista.
Testa båda sidor, skriv sedan ned policyn
Testa en färsk förfrågan i den inkluderade appen och en i en app som förväntas stanna utanför. Jämför utgångsadressen och åtkomsten till en privat resurs, och upprepa efter en återanslutning. Om din organisation använder Androids policy att blockera anslutningar utan VPN kan en exkluderad app blockeras helt i stället för att gå direkt; det är policyn som fungerar, inte ett fel att routa runt.
Anteckna läget, paketnamnen med profilen, vilka appar som ska kringgås, vilka adressfamiljer tunneln bär och vad som ska hända när tunneln är nere. Om klienten inte kan uttrycka arbetsflödet rent, välj en bredare godkänd appuppsättning eller en policy för hanterad profil i stället för att redigera brandväggsregler på root-nivå, vilket inte är en del av Androids stödda mekanism per app.