/ Security

So leitest du deinen ganzen Internet-Verkehr unter Windows mit OpenVPN über ein anderes Netzwerk um

VPNs ermöglichen das verschlüsselte Übertragen von Informationen über das Internet zwischen zwei Endpunkten. Bietet das Ziel-Netzwerk einen eigenen Gateway, kann man von dort aus sogar auf das Internet zugreifen und somit seine Identität verschleiern.

Mit openVPN lässt sich eine solche Verbindung sehr leicht herstellen. Diese Verbindung kann man sich wie eine zweite LAN-Verbindung vorstellen. Der einzige Nachteil dabei: Woher soll dein Windows-PC wissen welches Netzwerk bzw. welchen Gateway er für die Verbindung mit dem Internet nutzen soll? Den des lokalen Netzwerks oder den des VPNs?

Mit einem VPN verbunden zu sein bedeutet also noch nicht automatisch, dass auch der Internetverkehr darüber umgeleitet wird. Einige VPN-Lösungen haben eine entsprechende Option oder machen das automatisch. OpenVPN für Windows macht das jedoch nicht.

Das kannst du jedoch mit Hilfe des route-Befehls leicht einstellen. Öffne dafür eine priviligierte Kommandozeile.

Der Befehl route print gibt dir einen ersten Überblick über die aktuelle Konfiguration. Im Netzwerkziel ist die Adresse 0.0.0.0 aufgeführt. Daneben steht der aktuell genutzte Gateway. Hier kannst du also erkennen über welches Netzwerk dein PC mit dem Internet verbunden ist. Hast du bereits eine VPN-Verbindung aufgebaut ist auch dieses in der Tabelle mit einem eigenen Gateway gelistet. Nun musst du nur dafür sorgen, dass der Gateway für 0.0.0.0 auf den VPN Gateway geändert wird.

Angenommen der VPN-Gateway ist 10.50.164.129 dann kannst du mit diesem Befehl den Gateway ändern:

route change 0.0.0.0 mask 0.0.0.0 10.50.164.129

Danach kannst du mit deine Änderungen mit route print überprüfen. Du wirst vermutlich sehr schnell feststellen, dass dein Internet nun überhaupt nicht mehr funktioniert. Was ist passiert? Dein PC versucht den ganzen Internetverkehr durch das VPN zu leiten. Das funktioniert jedoch nicht weil auch dein VPN-Client eine Internetverbindung benötigt und sich nicht durch sich selbst verbinden kann. Daher fügen eine Ausnahmeregel hinzu. Mit Hilfe des route Kommandos legst du fest, dass alle Verbindungen zum VPN-Server über deinen lokalen Gateway laufen sollen:

route add 88.99.41.43 mask 255.255.255.255 192.168.188.1

In diesem Beispiel ist 88.99.41.43 die Adresse des VPN-Servers und 192.168.188.1 die Adresse deines lokalen Gateways.

Das alles lässt sich auch mit einem Batchskript automatisieren. Hier ein Beispiel für das Freifunk-Netzwerk:

@echo off

REM Starte VPN-Verbindung mit OpenVpn
start openvpn-gui.exe --connect "vpn.freifunk-franken.de.ovpn" --config_dir C:\super_secret_files\freifunk-franken.ovpn

REM Jetzt setzen wir den Freifunk-Gateway für 0.0.0.0 auf 10.50.164.129 um den ganzen Netzwerkverkehr dadurch zu routen
route change 0.0.0.0 mask 0.0.0.0 10.50.164.129

REM Huch! Keine Internetverbindung mehr! Wir müssen eine Ausnahme für den VPN-Server 88.99.41.43 erstellen
route add 88.99.41.43 mask 255.255.255.255 192.168.188.1

REM Zeige noch mal alle routen an
route print

pause

Wenn du dein VPN wieder abschalten möchtest benutze erneut route change und setze den Standardgateway wieder auf den deines lokalen Netzwerks zurück.