OpenVPN Blockierung aus Hotspots umgehen
-
Ich habe bei mobilen Geräten selbst meist nur Laptops oder Android Geräte im Test und dort nicht den OpenVPN Client des Herstellers, sondern meist den von Arne Schwab, da damit Debugging und Einstellungen einfacher änderbar/kontrollierbar sind.
https://play.google.com/store/apps/details?id=de.blinkt.openvpn&hl=de
Ansonsten kommt eine Neuverbindung auch immer bei Wechsel der IP zustande. Kann also mitunter daran liegen, dass du dich 3G/4G gerade woanders eingebucht hast oder gerade an einer Grenze zwischen 2 unterschiedlichen Spots bist, dein Smartphone bspw. zwischen WLAN und 4G hin und her schaltet (neue Geräte haben da eine "tolle" Funktion, die bei schlechtem WLAN bspw. LTE Verbindungen bevorzugt…) und mehr. Ist also schwierig zu sagen woran es klemmt. Mein Test-Klopper (ein Nexus 6) bspw. verbindet sich mit unserem Firmen-VPN binnen 1-2s (via UDP) bei 3G und LTE. Geht also echt flott. Und die App legt sich dann quasi auch mit schlafen, wenn das Gerät nicht gebraucht wird - sobald man es aber aufweckt, sieht man kurz in der Statusleiste den Schlüssel wieder aufbauen und kurz darauf ist wieder alles da. Deshalb kann ich die langen Timeouts bzw. Verbindungsaufbauten gerade schlecht deuten bei dir ;)
Aber durch das anhalten und weiterführen des VPNs ist es recht akkuschonend. Kommt natürlich drauf an was man erreichen will. Wenn das Gerät NUR per VPN funktionieren SOLL wird es natürlich schwierig ;) -
Ich habe hier zunächst nur iOS Geräte (bei Laptops habe ich noch nicht herausgefunden, wie ich dort on-demand Verbindungen einrichte - muss ich mich noch damit beschäftigen) und nutze die offizielle OpenVPN Connect App. Was anderes geht wohl nicht, aber ich bin damit schon sehr zufrieden.
Ne, zwischen WLAN und Mobilfunk umschalten, tun die iOS Geräte zum Glück nicht bzw. man kann es in den Einstellungen verhindern. Aber es könnte ja tatsächlich an den IP Änderungen liegen. Weiß zwar nicht, wie das CGN genau funktioniert, aber z.B. bei Unitymedia's DS-lite hieß es ja, dass sich die IP sogar 2-3 mal pro Minute ändern kann, obwohl nach wie vor dieselbe als externe angezeigt wird. Wenn es im Mobilfunk ähnlich abläuft, dann könnte das ja tatsächlich zum Neuaufbau der Verbindungen führen.
Ich habe mir jetzt noch einmal die Einstellungen der OpenVPN Connect App angeschaut und folgende 2 Punkte gefunden, die interessant sein könnten:
1.
Reconnect on wakeup — Automatically reconnect a VPN profile if it was active prior to device sleep. -Werde ich wohl ausschalten, da die Verbindung bei Notwendigkeit eh aufgebaut wird und das wohl überflüssig wäre.
2.
Network state detection — How should OpenVPN handle network state changes or network reconfiguration events where the network comes up, goes down, or transitions between WiFi and Cellular data?
- Active (default) : When connected, always attempt to reconnect after network reconfiguration events.
- Lazy : When connected, attempt to preserve existing connection during network reconfiguration events. (wobei diese Möglichkeit bei mir fehlt) - Disabled : Don't consider network state when initially connecting, and don't use network state changes to trigger pause/reconnect/disconnect behaviour. -Was genau passiert, wenn ich diesen Punkt probiere? Wird dadurch evtl. verhindert, dass die App dann mit den vorkonfigurierten on-demand rules (bspw. bei bestimmten SSID's keine VPN Verbindung aufzubauen) nicht mehr richtig umgehen kann?
Habe das jetzt mal ausprobiert und das iPhone lag hier knapp 1,5h rum. Ergebnis: es wurde nur ein Verbindungsaufbau verzeichnet. Hmm, ich könnt's ja mal testen, wie sich das im Alltag bemerkbar macht. -
Ok, das bringt wohl auch nichts. Habe jetzt seit 18 Uhr gestern Abend WLAN abgeschaltet und nur mit mobilem Netz getestet. Alles beim Alten - das iPhone verbindet sich nach wie vor teilweise mehrmals pro Minute. Naja, dann lass ich es einfach sein, wird schon laufen. Akku lebt auch noch und hat sich bisher sehr gut geschlagen, muss man sich nicht wirklich Sorgen machen.
Zur TCP vs UDP Problematik: diese besteht weiterhin und die mobilen Geräte verbinden sich (jetzt aber eher sehr selten) trotzdem noch mit dem 443-TCP Server. Ich werde da wohl nur noch weiter mühselig testet müssen, um die optimalen Einstellungen zu finden. So aus der Ferne, wird man mir wohl nicht wirklich helfen können.
Trotzdem vielen Dank für den Input bis hierhin!
-
Also ich glaube die Lösung für die langen Verbindungszeiten gefunden zu haben. Kann es sein, dass Vodafone und Unitymedia sich nicht mögen und untereinander schlechtes Routing haben?
Jedenfalls glaube ich, dass es daran gelegen hat. Habe einige Traceroutes aus dem Mobilfunknetz zu meinem heimischen Anschluss gemacht und es dauerte halt etwas länger bzw. gab an 2 Stellen diese langen Timeouts.
Danach habe ich Traceroute zur öffentlichen IP eines in der pfSense eingerichteten OpenVPN Clients gemacht und siehe da - alles lief schnell und in 1-2 Hops weniger durch.So habe ich auf der Serverseite des VPN Tunnels eine Portweiterleitung und als WAN meines pfSense VPN Servers eben die o.g. öffentliche IP eingerichtet. Gleichzeitig den server-poll-timeout auf 3(!) Sekunden runtergesetzt. Was soll ich sagen? Läuft top und nur absolut selten brauchen die Clients länger als 3 Sekunden, noch deutlich seltener als beim 5-sekündigen Verbindungsaufbau zu meiner WAN IP.