Portabel beschreibt den Installer, nicht den Kernel. Ein Client kann als eine einzige ausführbare Datei auf einem USB-Stick ankommen und trotzdem ein Tunnelgerät, einen Eintrag in der Routentabelle und einen Schreibvorgang am Resolver brauchen, bevor sich das erste Paket bewegt. Welche dieser drei Schichten die Zielmaschine Sie berühren lässt, entscheidet, ob dieser Build dort überhaupt funktioniert. Die Prüfungen unten beantworten die Frage in der Reihenfolge, in der der Client auf sie trifft.

Portabel deckt drei verschiedene Versprechen ab, und nur eines ist kostenlos

Kein Installer bedeutet, dass der Anbieter keinen Dienst registriert, kein Deinstallationsprogramm mitgeliefert und keinen Menüeintrag hinzugefügt hat. Kein Administrator bedeutet, dass ein gewöhnliches Konto den Client starten und eine Verbindung abschließen kann. Keine Änderung am Host bedeutet, dass die Maschine nach dem Beenden identisch aussieht. Downloadseiten, die portabel sagen, versprechen meist nur das erste davon, und die anderen beiden sind der Punkt, an dem Bereitstellungen scheitern. Ein Build kann auch im engeren Sinne portabel sein: Er läuft von schreibgeschützten Medien ohne jegliche Dotfile-Schreibvorgänge, was über den Netzwerk-Stack noch nichts aussagt.

Die teuren Versprechen sind das zweite und das dritte. Eine einzelne ausführbare Datei, die einen Adapter, eine Route oder einen Schreibvorgang am Resolver braucht, verlangt vom Betriebssystem eine Befugnis, die das Etikett portabel nie abgedeckt hat.

Finden Sie den privilegierten Helfer, den der Client aufruft

Kaum ein VPN-Client bewegt Pakete von selbst. Unter Windows läuft der Datenpfad über WFP-Filter und die Base Filtering Engine, unter macOS über einen NetworkExtension-Anbieter, den der Benutzer in den Systemeinstellungen genehmigt, und unter Linux über ein tun-Gerät plus den Routing-Stack. Die Binärdatei, die Sie kopiert haben, ist eine Steuerfläche für diese Komponenten, kein Ersatz für sie. Fragen Sie, welche Komponente der Client erwartet, und bestätigen Sie dann, dass sie installiert ist, läuft und von Ihrem Konto genutzt werden kann.

Linux ist der einfachste Ort, um das zu beweisen, weil die Prüfung ein einziger Systemaufruf ist. /dev/net/tun zu öffnen und den Kernel um ein Gerät zu bitten, erfordert CAP_NET_ADMIN, und die Kernel-Dokumentation zu TUN/TAP nennt sowohl die Eigentumsregel als auch die Fähigkeit. Führen Sie die Prüfung mit dem Konto aus, das den Client startet, nicht als root.

ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest

Ein Berechtigungsfehler in der mittleren Zeile ist die Antwort, die Sie gesucht haben: Dieses Konto kann keine Tunnelschnittstelle anlegen, also scheitert jeder Userspace-Client, der eine braucht, beim Verbinden statt beim Herunterladen. Die letzte Zeile entfernt das Testgerät und gibt nichts aus, wenn sie funktioniert. Wenn beide Zeilen gelingen, hat der Host nichts Dauerhaftes verändert.

Testen Sie Routen- und Resolver-Änderungen vor der ersten Verbindung

Split-Tunneling macht aus einer Verbindung eine Routing-Entscheidung, während ein voller Tunnel sie durch eine Ersatzstandardroute ersetzt. Beides sind Schreibvorgänge in den Netzwerk-Stack des Hosts, und beides scheitert für ein nicht privilegiertes Konto, selbst wenn der Client selbst sauber startet. Der Resolver ist der dritte Schreibvorgang, und auf systemd-Hosts ist er normalerweise derjenige, der zuletzt bricht. Diese Reihenfolge zählt, wenn Sie entscheiden, wo Sie eine erhöhte Installation investieren.

Eine Routenprüfung braucht ein Ziel, das Ihnen wirklich wichtig ist, ersetzen Sie also den Platzhalter unten durch ein Subnetz aus Ihrem eigenen Profil. Der Gerätename muss existieren, damit die Route an etwas hängen kann.

ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal

Wenn die erste Zeile RTNETLINK answers: Operation not permitted zurückgibt, kann das Konto die private Route, die das Profil verlangt, nicht installieren. Die zweite Zeile beweist dasselbe Recht umgekehrt, was zählt, weil ein Client, der Routen hinzufügen, aber nicht entfernen kann, eine kaputte Tabelle hinterlässt. Die Resolver-Abfrage zeigt dann, ob private Namen durch den Tunnel aufgelöst werden oder zu dem Resolver lecken, dem der Host bereits vertraut.

Führen Sie alle drei aus, solange das Testgerät noch existiert, und löschen Sie es dann. Eine Route, die auf ein verschwundenes Gerät zeigt, ist der häufigste Grund, warum ein Laptop nach einer fehlgeschlagenen Verbindung die Konnektivität verliert.

Entscheiden Sie, was die Sitzung überleben muss

Den Ordner zu löschen ist kein Aufräumplan. Adapter, Routen, Resolver-Einstellungen, vertrauenswürdige Zertifikate und gespeicherte Anmeldedaten können jeweils den Prozess überleben, und ein Dienst beim Systemstart kann einige davon wiederherstellen, ohne zu fragen. Schreiben Sie auf, was der Client zurücklassen darf, bevor Sie ihn starten, nicht erst nach dem ersten fehlgeschlagenen Trennen.

Die praktische Regel ist, die drei Flächen, die Sie gleich ändern, zu fotografieren und sie danach zu vergleichen. Erfassen Sie Schnittstellen, die Haupt-Routentabelle und den Resolver-Zustand vor der ersten Verbindung und wiederholen Sie dann dieselben drei Auslesungen, sobald der Client beendet ist.

ip -brief addr show
ip route show table main
resolvectl status

Alles, was in der zweiten Aufnahme vorhanden und in der ersten nicht vorhanden ist, braucht einen Eigentümer. Entweder entfernt der Client es beim Beenden, oder Sie entfernen es mit denselben Befehlen, die es erzeugt haben, und diese Entfernung gehört in die Bereitstellungsnotizen und nicht in jemandes Erinnerung daran, was passiert ist. Unter Windows sind die entsprechenden Auslesungen Get-NetAdapter, Get-NetRoute und Get-DnsClientServerAddress, die keine Erhöhung brauchen, aber dieselben Reste zeigen.

Ähnliche Artikel