VPN ja, nur welche Lösung

  • Hallo,


    ich auf der Suche nach einer VPN Lösung. Ich kenne Lösungen wie OpenVPN, Wireguard und strongSwan, nur weiß nicht welche die beste für mein Szenario ist.


    Das Szenario bzw Ziele:


    - Android Smarphone. Hier soll der gesamte Traffic über das VPN geroutet werden.

    - Clients MacOS, Linux, Windows sollen über das VPN verbunden sein aber dort der Traffic über den heimischen Router

    - des weiteren sollen LAN Spiele über das VPN funktionieren

    - innerhalb des VPN's möchte ich Dienste wie Squid, Samba, SSH, etc. bereitstellen

    - Server Betriebssystem soll Debian Stretch oder Debian Buster sein

    - für das VPN Gateway steht eine feste IP Adresse bereit


    Ich hoffe ihr könnt mir hier ein paar Vorschläge machen.


  • Alles was Du willst ist mit OpenVPN realisierbar.


    - des weiteren sollen LAN Spiele über das VPN funktionieren

    Hier empfiehlt sich tap VPN.


    Das läuft im Bridge Mode (wie ein Switch, Layer 2) und somit befinden sich alle Geräte (inklusive der im Heimnetz) in einem gemeinsamen Netzwerk. Einige Spiele kommen mit IPs in anderen Subnetzen nicht zurecht.


    Bei tap VPN sollte man nur beachten, dass das "Hintergrundrauschen" (ARP, Multicast, ...) mit durchs VPN läuft. Das kann bei größeren Netzen zum Problem werden, bei allem unter ~50 Geräten aber kein Problem sein.


    Hier habe ich sowas ähnliches mit OpnSense mal gebaut. Dort funktioniert sogar das Streaming über Steam durchs VPN recht gut: https://anysrc.net/post/netzwe…m-link-streaming-internet


    Dadurch das es aber OpnSense ist fehlen hier die genauen Configs. Aber vielleicht hilfts durch trotzdem.


    Ansonsten muss man zwischen zwei unterschiedlichen Verbindungstypen unterscheiden. Mein Streamingbeispiel ist mit statischem RSA Key realisiert und ein so genanntes Site-to-Sitze VPN. Sprich exakt ein Server und ein Client.


    Meine Mobilgeräte hängen mit Easy-RSA Zertifikaten an einer zweiten OpenVPN Instanz. Dort ist ein Server für X Clients zuständig.

  • Sollte OpenVPN ohne Probleme schaffen. Klingt iwie danach, als wenn du das ganze für mehrere User hochziehst. Dann guck dir evtl. mal Pritunl an. Basiert auf OpenVPN, gibt's ebenfalls als Open Source und du kannst mehrere Instanzen gleichzeitig laufen lassen um Dienste evtl. besser abzuschotten. Auch das WebUI ist ganz nice 😊

  • Grundsätzlich ist dein Vorhaben mit allen VPN Lösungen machbar, genau dafür ist VPN ja da: Ein virtuelles privates Netzwerk aufbauen.


    Was für dich das Beste ist, hängt von mehreren Dingen ab. Zum Beispiel: Womit hast du schon Erfahrung? Wie wichtig ist dir, dass der Client anonym bleibt / zerologs? Wie viele Clients bekommt das VPN? Bekommst du (z.B. für die Spiele) spontane neue Nutzer/Clients, die eingebaut werden müssen?


    StrongSwan kenne ich nicht, OpenVPN und Wireguard habe ich aber selbst im Einsatz (bzw. gehabt) und kann dir ein bisschen was dazu sagen. OpenVPN ist deutlich älter, etabliert, stabil und unglaublich mächtig. Wireguard dagegen ist der aktuell gehypte Aufsteiger, noch in der Testphase und zeichnet sich durch Geschwindigkeit und eine kleine Codebasis aus. Außerdem basiert es auf einer Peer-to-Peer-Architektur im Gegensatz zu allen anderen VPN Verfahren, die eine klassische Client-Server Architektur haben.

    Wireguard hat einige bestechende Vorteile: Es ist aktuell das schnellste VPN, ohne Abstriche bei der Sicherheit zu machen und (finde ich besonders Mobil toll) es ist Roamingfähig. Das Bedeutet, keinerlei Einbußen, wenn sich das Handy plötzlich zwischen WLAN, LTE oder GSM hin- und herwechselt. Ganz abgesehen davon, dass der Handshake unglaublich schnell ist. Bis OpenVPN den Server gesucht hat, ist Wireguard schon verbunden. Zudem ist die Konfiguration super simpel und daher weniger Fehleranfällig. Es funktioniert aber vom Prinzip her deutlich anders als bisherige VPN-Lösungen und verwirrt "alte Hasen" daher anfangs, wenn man sich nicht mit den Grundlagen beschäftigt (und vorher klar macht, dass es kein klassisches VPN ist und daher mit sowas wie OpenVPN nicht direkt vergleichbar ist).

    OpenVPN ist eine Server/Client Lösung, währen Wireguard eine Peer-to-Peer-Architektur hat. Natürlich kann man einen Peer als Server benutzen/definieren, aber das Aufsetzen verwirrt manchmal etwas, wenn man sich das nicht klar macht. Wireguard läuft über Public/Private Keys und ist quasi bidirektional, du bist gleichzeitig Server und Client (bzw. könntest es sein, je nach Einstellungen). Zudem unterstützt es IPv6 (ist für dich ja aber erst mal nicht wichtig).


    Es gibt aber auch gravierende Nachteile von Wireguard, die manche Einsatzzwecke verhindern. Zum Beispiel werden die IPs nicht dynamisch vergeben (weil nicht klassisch Server/Client, es ist also kein Server da, der die IPs vergeben könnte). Jeder Client muss also quasi eine eigene feste IP bekommen wodurch die sonst oft angestrebte Anonymität durch ein VPN nicht möglich ist. Auch sind dadurch natürlich die IP-Adressen und Bereiche begrenzt, man muss also Buch führen, welcher Peer welche IP hat und sollte sie nur einmal vergeben ;)

    Weiter geht Wireguard nur per UDP. Ob groß der Nachteil ist, muss jeder selbst entscheiden. Zumindest, wenn UDP-Ports geblockt werden, wie zum Beispiel in einigen Hotel-WLANs ist es unbrauchbar. Ich hatte früher einen OpenVPN-Server auf TCP Port 443 lauschen, der geht da immer durch (WLAN wäre ja unbrauchbar, wenn man Port 80/443 pauschel sperrt).


    Wenn du mit den Nachteilen leben kannst, würde ich zu Wireguard raten. Es wird als Netzwerkinterface eingerichtet und du sagst erst mal nur, zu welchen IP-Ranges der Traffic über dieses Interface gehen soll. Alles weitere regelt dann deine Firewall. Du kannst also sehr schön einstellen, welcher Traffic wohin geroutet wird, es ist super schnell (sowohl Durchsatz, als auch Verbindungsaufbau), es ist Roaming fähig, es gibt Software/Treiber für Linux, Windows, MacOS, iOS,..

  • Also ich habe mich erstmal für OpenVPN entschieden. Ich mir ein TAP basierten Server aufgebaut.Verbindung zu Android und Windows funktioniert. Nun frage ich mich wie ich Dienste auf den Server wie z.B. Apache oder Samba mit ins VPN bringe. Irgendwie fehlen mir gerade die Ideen.