Kill Switches und Regeln gegen Überschneidung zeigen in entgegengesetzte Richtungen, was erklärt, warum gewöhnliche VPN-Einstellungen die zweite nie ausdrücken. Der Kill Switch reagiert auf einen Tunnel, der ausgefallen ist, während diese Anforderung auf einen Tunnel reagiert, der steht, und eine Anwendung aus dem Bild hält. Eine Designentscheidung klärt das meiste: ob die Anwendung gestoppt, am Start gehindert oder ihr nur der Netzwerkzugriff entzogen wird. Wählen Sie diese Ebene, bevor Sie zu einer Firewall-Regel oder einer Prozess-Killer-Schleife greifen, denn eine durch Beobachtung erzwungene Regel leckt bei jedem Start ein Fenster.

Der Mythos: ein Kill Switch hindert Programme am Start

Kill Switches sind Verkehrskontrollen, und sie sind ehrlich darüber: Sie erlauben oder verweigern Pakete je nach Tunnelzustand. Keiner von ihnen verweigert den Start eines Programms, und keiner prüft, welche ausführbare Datei einen Socket geöffnet hat. Eine Desktop-Verknüpfung, eine geplante Aufgabe und ein Hintergrundhelfer erreichen alle das Netzwerk, ohne etwas zu passieren, das den Namen der Anwendung kennt. Die Distanz zwischen diesen beiden Mechanismen ist der Ort, an dem der meiste Irrtum lebt.

Die Anordnung, die tatsächlich entscheidet, ob ein Programm starten darf, ist Anwendungskontrolle. Unter Windows bedeutet das AppLocker oder WDAC, auf verwaltetem macOS eine Allowlist, die vom Geräteprofil durchgesetzt wird. Beide sind unabhängig vom Tunnel, weshalb die beiden Anforderungen im selben Ticket verschmelzen und dann von keiner erfüllt werden.

Benennen Sie den Modus, bevor Sie das Werkzeug benennen

Schreiben Sie die Regel als Zustandsmaschine mit drei Zuständen: normale Nutzung, VPN-Arbeitssitzung und Verlassen. Die verbotene Überschneidung gehört zum mittleren Zustand, nicht zur Client-Software.

Wer den Zustand wechselt, besitzt drei Handlungen in dieser Reihenfolge: die Arbeit der Anwendung beenden, ihren normalen Shutdown anfordern und bestätigen, dass die Instanz weg ist, bevor der Tunnel hochkommt. Auch am anderen Ende zählt die Reihenfolge, denn ein VPN, das zuerst verbindet und das Programm danach stoppt, hat die Überschneidung bereits erlaubt. Deckt die Anforderung den Verbindungsaufbau ab, ist das Warten auf eine Verbunden-Anzeige zu spät.

Was ein zweiseitiger Konflikt wirklich tut

Für zwei Dienste, die wirklich von systemd verwaltet werden, ist Conflicts= symmetrisch: Der Start des einen stoppt den anderen. Die Unit-Referenz dokumentiert dieses Verhalten und verlangt separat eine ausdrückliche Reihenfolge, wenn einer das Stoppen beenden muss, bevor der andere startet. Ohne diese Reihenfolgeeinträge laufen Stopp und Start um die Wette, und das Ergebnis hängt vom Timing ab.

Das ist keine Denylist. Verdrahten Sie die Abhängigkeit falsch herum, und der Start der Anwendung stoppt stattdessen das VPN, was der Fehler ist, den man verdächtigen sollte, wenn ein Tunnel sich zu einem vorhersagbaren Zeitpunkt selbst trennt. Eine Desktop-Anwendung ist keine systemd-Unit, und eine NetworkManager-Verbindung ist auch keine, also funktioniert dieses Muster nur für Dienste, die Sie selbst umhüllen.

Prüfen Sie die Übergänge, nicht nur den ersten Start

Vier Übergänge entscheiden, ob die Anforderung hält: Eintritt in die Sitzung mit laufender Anwendung, ihr erneuter Start mitten in der Sitzung, ein fehlgeschlagener VPN-Start und eine absichtliche Trennung. Testen Sie jeden und halten Sie das Ergebnis neben den Unit-Dateien fest. Die folgenden Befehle lesen die aktuelle Beziehung und üben dann den Übergang, der am wichtigsten ist.

systemctl show work-vpn.service -p Conflicts -p After
systemctl start work-vpn.service
systemctl is-active office-sync.service
nmcli connection show --active

Der dritte Befehl sollte die Anwendung inaktiv lassen, und der vierte sollte während einer laufenden Sitzung nur die Tunnelverbindung auflisten. Ein anderes Ergebnis bedeutet, dass der Übergang überhaupt nicht durchgesetzt wird.

Der Neustart während der Sitzung ist der Fall, der ein umhüllungsbasiertes Design entlarvt, denn eine vom Desktop gestartete Verknüpfung konsultiert nie ein Startskript. Wenn diese Umgehung zählt, gehört die Durchsetzung in die Anwendungskontrolle und nicht in den VPN-Client. Dokumentieren Sie auch das Ende der Sitzung, und ziehen Sie eine bewusste Fortsetzung dem erneuten Öffnen jedes beim Eintritt gestoppten Prozesses vor. Halten Sie das Ergebnis jedes Übergangs in derselben Notiz fest, die die Unit-Dateien enthält.

Ähnliche Artikel