Blockiert Ihr Sperrschalter die App, die Sie vom Tunnel ausgenommen haben?
Eine ausgenommene App darf absichtlich direkt gehen, während eine geschützte bei einem Fehler geschlossen bleiben muss. Schreiben Sie zuerst die Richtlinie pro App und prüfen Sie dann, was der Client durchsetzt.
Sperrschalter aktiv, eine App bewusst vom Tunnel ausgenommen, und die beiden Anforderungen widersprechen sich jetzt. Die eine sagt, nichts darf außer über den Tunnel hinaus, die andere sagt, dieses Programm muss direkt gehen. Jeder Client löst diesen Konflikt anders, und die Einstellungsseite erklärt selten, welche Regel gewinnt. Schreiben Sie die Richtlinie pro Anwendung auf, bevor Sie irgendeinem Etikett trauen.
Zwei Richtlinien, eine Maschine
Ein Sperrschalter ist ein Versprechen über den Fehlerfall: Wenn der Tunnel den Verkehr nicht schützt, hört der Verkehr auf. Geteiltes Tunneling ist ein Versprechen über die Auswahl: Diese Programme oder Ziele nutzen den Tunnel, jene nicht. Das zweite Versprechen erzeugt Verkehr, über den das erste entscheiden muss. Keines der Versprechen ist falsch; sie wurden nur von verschiedenen Leuten für verschiedene Bedrohungen geschrieben.
Drei Ergebnisse sind möglich, und nur eines davon ist das, was die Einführung beabsichtigte. Die ausgenommene App kann während einer Störung direkt bleiben, was die Teilung achtet und den Sperrschalter bricht. Sie kann mit allem anderen blockiert werden, was den Sperrschalter achtet und die Teilung bricht. Oder sie wird nur manchmal blockiert, je nachdem, wie die Plattform die Regel auswertet, nachdem eine Schnittstelle verschwunden ist. Der letzte Fall ist der, der Tickets erzeugt.
Erst die App-Liste, dann die Regel
Listen Sie die Programme auf, die den Tunnel nutzen müssen, die, die direkt gehen müssen, und die Namen oder Ziele, die auf keiner der beiden Listen erscheinen dürfen. Erfassen Sie das Verhalten des Resolvers und die IPv6-Seite getrennt, weil beide einer anderen Richtlinie als dem Seitenverkehr folgen können.
Regeln pro App treffen meist eine ausführbare Datei oder ein Paket, nicht ein Profil darin. Ein Browserprofil, ein privates Fenster und eine Erweiterung tragen keine eigene Netzwerkidentität, also erben sie, was der Prozess erhalten hat. Ein Hilfsprozess, den dieser Browser startet, erbt die gleiche Regel möglicherweise gar nicht.
Es braucht zwei Listen, nicht eine: was der Tunnel tragen muss und was aus keinem Grund außerhalb von ihm reisen darf. Eine Anwendung, die auf beiden steht, ist ein Anforderungskonflikt und kein Implementierungsdetail, und er muss geklärt sein, bevor der Client konfiguriert wird.
Was der Client während einer Störung tut
Manche Implementierungen blockieren ausgenommene Apps während einer Störung und stellen ihren Zugang beim Wiederverbinden wieder her. Andere bewahren den direkten Pfad durchgehend, was zur Teilung passt und als Sicherheitseigenschaft schwächer ist. Eine Sperre auf Plattformebene kann die App-Auswahl des Clients vollständig überstimmen. Dieser Unterschied ist nicht kosmetisch, denn er entscheidet, ob die ausgenommene App eine Richtlinienausnahme oder ein Loch ist.
Androids Always-on-VPN mit der Option, Verbindungen ohne VPN zu blockieren, ist der klarste Fall, weil die Plattform die Sperre durchsetzt und nicht der Client, und ein ausgenommenes Paket wird mit allem anderen blockiert, solange der Tunnel steht. Ein Desktop-Client, der App-Ausnahmen in seinem eigenen Treiber anwendet, lässt den ausgenommenen Prozess meist auf der physischen Schnittstelle, weil er dessen Verkehr nie besessen hat. Beide Verhaltensweisen sind vertretbar, und nur eine passt zu einer Anforderung, die sagt, die ausgenommene App muss nutzbar bleiben. Fragen Sie, welche Komponente die Regel durchsetzt, bevor Sie das Ergebnis deuten.
Lesen Sie das Verhalten für das Betriebssystem vor Ihnen, nicht die gleichnamige Einstellung anderswo. Die Durchsetzungs-APIs unterscheiden sich, und ein Kontrollkästchen kann auf einem Desktop und auf einem Telefon streng unterschiedliche Dinge bedeuten. Auch die Version zählt, weil das Sperrsteuerelement zwischen Android-Versionen über Bildschirme gewandert ist, und eine clientseitige Ausnahmeliste ist nicht dieselbe Kontrolle wie eine Plattformsperre.
Drei Momente: Tunnel auf, Tunnel zu, neu verbunden
Nutzen Sie harmlose Anfragen zu drei Momenten: während der Tunnel läuft, während der Störung, die Sie interessiert, und nach dem Wiederverbinden. Ein einzelnes Browserergebnis kann das Verhalten der ausgenommenen App nicht belegen.
curl -sS --max-time 8 https://api.ipify.org
curl -sS --max-time 8 --interface tun0 https://api.ipify.org
dig +short example.com
Die Ausgangsadresse zeigt, welcher Pfad genommen wurde, und der ausdrückliche Schnittstellentest zeigt, was passiert, wenn der Tunnel der einzige verfügbare Ausgang ist. Notieren Sie das erwartete Ergebnis neben jeder Zeile, bevor Sie eine davon ausführen, sonst wird die Ausgabe im Nachhinein gedeutet.
Wenn eine ausgenommene App offline geht, prüfen Sie die Rangfolge der Richtlinien, bevor Sie eine breite Firewall-Freigabe hinzufügen, denn diese Korrektur zerstört den Unterschied, den Sie getestet haben. Bleibt sie direkt, bestätigen Sie, dass dies die dokumentierte Ausnahme war und kein versehentlicher Rückfall. Bei einer strengen Anforderung für das ganze Gerät kürzen Sie die Ausnahmeliste, bis sie sich von Hand testen lässt.