Eine App in OpenVPN angehakt? Die Listenbasis entscheidet
Dasselbe angehakte Paket bedeutet Einschließen oder Ausschließen, je nach Listenbasis. Wählen Sie zuerst Nur-einschließen, verbinden Sie neu und testen Sie dann den gesamten Ablauf.
Das Kontrollkästchen sieht wie die ganze Entscheidung aus, und unter Android ist es das nicht. Dasselbe angehakte Paket bedeutet „nur diese App nutzt das VPN“ bei einer Nur-einschließen-Basis und „diese App umgeht das VPN“ bei einer Basis „Ausgewählte ausschließen“. Leute installieren einen Client, finden eine Liste namens Erlaubte Apps, haken das eine Paket an, das ihnen wichtig ist, und gehen mit einer Richtlinie weg, die das Gegenteil tut. Den Client zu wechseln hilft selten; die Basis zu wählen, bevor man die Liste anfasst, hilft.
Die Basis ist die Richtlinie, nicht das Kontrollkästchen
Unter Androids VpnService konfiguriert ein Client das Routing pro App mit addAllowedApplication oder addDisallowedApplication. Ersteres beschränkt den Tunnel auf die gelisteten Pakete, Letzteres tunnelt alles außer ihnen. Clients verpacken beides in eine Oberfläche, die fast identisch aussehen kann, und manche benennen den Abschnitt nach der Liste statt nach dem Modus, sodass die Abschnittsüberschrift allein nicht verrät, welche Basis aktiv ist.
Lesen Sie die Modussteuerung über der Liste, nicht die Überschrift. Im ursprünglichen OpenVPN for Android-Client hat die Liste der erlaubten Apps sowohl eine Nur-einschließen- als auch eine Ausgewählte-ausschließen-Basis, und ein gebrandeter Build kann beide anders formulieren und dabei dieselben zwei Verhaltensweisen beibehalten. Ein Screenshot aus einem anderen Client oder aus einer älteren Version desselben ist kein Beleg für den Modus, in dem Sie sich befinden.
| 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 |
Diese Tabelle ist der ganze Mythos. Eine App anzuhaken ist eine Aussage über ein Paket; die Basis entscheidet, ob die Aussage „schließe sie ein“ oder „schließe sie aus“ lautet.
Erst der Modus, dann das Paket
Arbeiten Sie in dieser Reihenfolge, denn eine Auswahl unter einer Basis kann einen Moduswechsel überleben und ihre Wirkung stillschweigend umkehren:
- Ermitteln Sie das echte Paket und ob es die Kopie des persönlichen oder des Arbeitsprofils ist.
- Öffnen Sie die App-Auswahl-Einstellungen für genau das VPN-Profil, mit dem Sie sich verbinden.
- Legen Sie die Basis fest, deren Bedeutung „nur ausgewählte Apps nutzen das VPN“ ist.
- Schließen Sie das gewünschte Paket ein und lassen Sie nicht betroffene Apps außerhalb des Satzes.
- Verbinden Sie neu, damit der Client die Schnittstelle mit der neuen Liste neu aufbaut.
Das Profil zählt genauso viel wie das Paket. Ein Client kann mehrere Profile halten, und die Auswahl pro App gehört zu dem, mit dem Sie tatsächlich verbinden; ein Profil zu bearbeiten, das Sie nie nutzen, ändert nichts. Auf einem verwalteten Gerät ist das Arbeitsprofil ein separater Nutzer mit einer eigenen Kopie der App und einer eigenen Richtlinie, sodass die persönliche Instanz im Tunnel nichts über die Arbeitsinstanz aussagt.
Verbinden Sie neu, bevor Sie das Ergebnis beurteilen
VpnService liest die App-Listen, wenn die Tunnelschnittstelle aufgebaut wird. Ein laufender Tunnel übernimmt eine Listenänderung nicht unbedingt, und Clients unterscheiden sich darin, ob sie automatisch neu aufbauen oder darauf warten, dass Sie trennen und erneut verbinden.
Wenn die Änderung nichts zu bewirken scheint, testen Sie die Neuverbindung, bevor Sie die Liste anzweifeln. Stellen Sie dann eine frische Anfrage, statt eine bereits geöffnete Seite neu zu laden: Eine App, die eine bestehende Verbindung hält, ist ein schlechtes Testobjekt, und das Ergebnis, das Sie sehen, kann zur alten Schnittstelle gehören.
Ihr Ablauf kann die App verlassen
Eine App kann an einen Browser zur Anmeldung, an einen Dokumentbetrachter oder an ein Freigabeziel übergeben. Unter einer Nur-einschließen-Basis liegen diese Helfer außerhalb des Tunnels, sodass ein Ablauf auf halber Strecke scheitern kann, obwohl die erste App korrekt konfiguriert war. Schließen Sie den Helfer nur ein, wenn der Ablauf ihn wirklich braucht, und fügen Sie ihn bewusst hinzu, statt ihn während einer Demo zu entdecken.
Die Auswahl pro App ersetzt auch nicht die eigene Routenrichtlinie der Verbindung. Das Profil muss weiterhin die Zielpräfixe und Adressfamilien tragen, die die App nutzt, und das Gateway muss den Dienst weiterhin zulassen. Eine korrekt gelistete App mit unerreichbarem Ziel sieht aus wie eine falsch konfigurierte Liste.
Testen Sie beide Seiten, dann schreiben Sie die Richtlinie auf
Testen Sie eine frische Anfrage in der eingeschlossenen App und eine in einer App, die draußen bleiben soll. Vergleichen Sie die Ausgangsadresse und den Zugriff auf eine private Ressource und wiederholen Sie das nach einer Neuverbindung. Nutzt Ihre Organisation Androids Richtlinie zum Blockieren von Verbindungen ohne VPN, kann eine ausgeschlossene App vollständig blockiert werden, statt direkt zu gehen; das ist die arbeitende Richtlinie, kein Fehler, den man umgehen sollte.
Notieren Sie den Modus, die Paketnamen mit ihrem Profil, welche Apps umgehen sollen, welche Adressfamilien der Tunnel trägt und was passieren soll, wenn der Tunnel down ist. Kann der Client den Ablauf nicht sauber ausdrücken, wählen Sie einen breiteren freigegebenen App-Satz oder eine Richtlinie für verwaltete Profile, statt Firewall-Regeln auf Root-Ebene zu bearbeiten, was nicht Teil von Androids unterstütztem Per-App-Mechanismus ist.