VPN von OpenVPN auf Wireguard übersetzen

Hallo Forum!

Sobald ich mit meinem Smartphone das WLAN-Netzwerk zu Hause verlasse, verbindet sich dieses via Wireguard-VPN mit der FRITZ!Box zu Hause. Somit nutze ich auch unterwegs immer die Vorteile des Pi-holes zu Hause und kann auf diverse Geräte zugreifen, die nicht von außen zugänglich sind.

Seit neuestem befinde ich mich jedoch halbwegs regelmäßig in einem WLAN, dass die Wireguard-Verbindung nicht zulässt. An diesem Ort habe ich leider auch schlechten Mobilfunk-Empfang, somit wäre es sehr praktisch, wenn ich das dortige WLAN nutzen könnte - ohne VPN „nach Hause“ möchte ich das aber nicht tun.

Ich habe ein wenig herumgetestet: In diesem WLAN kann ich eine OpenVPN-Verbindung über TCP-Port 443 zu Mullvad herstellen. Ich gehe also davon aus, dass ich auch eine OpenVPN-Verbindung mittels Port 443 zu anderen Zielen herstellen könnte. Leider kommt eine direkte Verbindung zur FRITZ!Box zu Hause über diesen Weg nicht in Frage, Port 443 und 80 werden hier anderweitig benötigt.

Nun kam mir folgende Schnapsidee: Gibt es die Möglichkeit, eine VPN-Verbindung vom Smartphone mittels OpenVPN über TCP-Port 443 zu einem anderen Server (beispielsweise ein gemieteter VPS) herzustellen, und dieser leitet die Verbindung dann mittels Wireguard zur FRITZ!Box um?
Ist das machbar oder großer Nonsens?

Bin auch öfters mal in Wifi Netzen, die Wireguard blockieren. Mein „Backup-OpenVPN“ Server lauscht deswegen auf einen E-Mail Port (25, 465, 587). Versuch mal, ob die auch gesperrt sind.

1 „Gefällt mir“

Ist machbar, verschlechtert aber Latenz und Geschwindigkeit. Einfacher und schneller wäre wohl eine Lösung die schon für solche Szenarien ausgelegt ist, wie Tailscale o.ä.

1 „Gefällt mir“

Sinnvoller ist m.E. durchgängig SSTP zu verwenden (https://github.com/kittoku/Open-SSTP-Client, Softether als Server).
Am TCP-Meltdown kommt man aber mit keiner TCP-Lösung vorbei.

1 „Gefällt mir“

In OpenVPN gibt es die Option port-share. Damit arbeitet der OpenVPN-Server als Proxy und leitet den Datenverkehr einfach weiter, um z.B. auf dem Port 80 einen OpenVPN-Server und z.B. ein Webserver zu betreiben.

When run in TCP server mode, share the OpenVPN port with another application, such as an HTTPS server. If OpenVPN senses a connection to its port which is using a non-OpenVPN protocol, it will proxy the connection to the server at host:port. Currently only designed to work with HTTP/HTTPS, though it would be theoretically possible to extend to other protocols such as ssh.dir specifies an optional directory where a temporary file with name N containing content C will be dynamically generated for each proxy connection, where N is the source IP:port of the client connection and C is the source IP:port of the connection to the proxy receiver. This directory can be used as a dictionary by the proxy receiver to determine the origin of the connection. Each generated file will be automatically deleted when the proxied connection is torn down.

Not implemented on Windows.

Quelle: https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/

1 „Gefällt mir“

Oder einen nginx davor, der anhand von SNI den Verkehr auseinandersteuert.

1 „Gefällt mir“

Du könntest einen der E-Mail Ports nehmen wie schon jemand beschrieben hat. Die sind bestimmt auch frei.

Alternativ: hast du eine IPv6 Adresse?
Falls du 443 für einen Server hinter der Fritzbox brauchst, hätte der bei IPv6 eine andere Adresse als die Fritzbox. Dadurch könntest du zumindest bei v6 den Portkonflikt ausschließen.

Du bräuchtest dann nur getrennte DynDNS Adresse für VPN und den anderen Dienst.

1 „Gefällt mir“

Vielen Dank an alle für die bisherigen Anregungen.

Ich denke, ich werde es mit einem OpenVPN-Server versuchen, der entweder auf Port 25 lauscht oder mittels der von @nobody beschrieben Option port-share ebenfalls Port 80 nutzt.