Wireguard VPN on demand

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • realschmide
    Smart Home'r
    • 26.09.2018
    • 53

    #1

    Wireguard VPN on demand

    Hallo zusammen,

    ich möchte eine Erfahrung der letzten Wochen mit euch teilen, die mir das Leben mit Loxone deutlich einfacher gemacht hat.

    Bisher habe ich für den externen Zugriff auf Loxone (Miniserver gen1) ein IPSEC VPN verwendet. Das Ganze on demand hinzubekommen ist mit dem iPhone gar nicht so easy, war aber machbar (mobileconfig, profil aufs iphone, etc. - siehe Anleitungen im wiki).
    Was mich immer gestört hat war, dass die Loxone App von extern immer deutlich länger brauchte bis der Zugriff funktionierte. D.h. bis zu 10 Sekunden oder mehr "versuche zu verbinden". Wenn ich mal schnell was brauche (jemand klingelt, etc.) dann nervt das ganz schön. Alternativ habe ich auch mal mit einem "always on" VPN versucht, dann hält er im Hintergrund den VPN Tunnel immer offen bzw. verbindet erneut. Das kostet richtig viel Akku, ist aber komfortabler.

    Nun hab ich mittlerweile alles auf Wireguard umgestellt. Wer Wireguard nicht kennt: Es ist ein VPN newcomer der relativ simpel aufzusetzen ist dabei auch sehr sicher. Der Clou von Wireguard im Zusammenhang mit Loxone ist der Verbindungsaufbau und die Konfiguration am Client (bei mir iPhone, Macbook, etc.). Leider haben die einschlägigen Router-Hersteller das noch nicht in den Oberflächen fertig drin, das ist aber m.E. nur eine Frage der Zeit.

    Die Konfiguration erfolgt am Handy mit der Wireguard App aus dem Appstore. Die Daten zum VPN gibt man dort einfach ein und kann auch das on-demand Feature einfach aktivieren (kein mobileconfig mehr). Man kann sich alternativ auch das recht simple config file am Server oder Mac zusammenbauen und dann in einen QR Code konvertieren, den man dann mit dem iPhone nur noch abscannt - fertig eingerichtet.

    Der Verbindungsaufbau erfolgt automatisch im Hintergrund sobald man nicht mehr im eigenen WLAN ist (on demand - sofern so konfiguriert). Jetzt muss man wissen, dass Wireguard keinen Handshake beim Aufbau macht, sondern einfach die Daten - wenn welche an die entsprechende IP-range gesendet werden - verschlüsselt und an den Server sendet. D.h. im Endeffekt initialisiert wireguard am Smartphone nur das Wireguard-Netzwerk-Device und setzt die Route ins Heimnetz auf dieses Device und versendet dabei keine Netzwerkpakete, das kostet quasi keinen Strom. Egal ob das Handy nun im Netz hängt, oder in einem WLAN oder ständig zwischen verschiedenen Netzen hin und her roamt/wechselt, das Device ist initialisiert und es braucht keinen Strom/Traffic mehr (wireguard nennt das "built in roaming").
    Das führt dann dazu, dass die Loxone-App intern wie extern sich genau gleich verhält. Man merkt gar nicht, ob man jetzt im WLAN ist oder grad nicht. Auch wenn man im Handy-Netz anfängt und das Gerät sich zwischenzeitlich ins WLAN einbucht, man merkt es nicht.

    Das ist für mich ein Mega-Sprung nach vorn. Vielleicht für den einen oder anderen von euch auch. Würde mich freuen, wenn es euch weiterhilft.

    LG Stephan

    PS: Man kann Wireguard einfach auf einem Raspi aufsetzen. Für Unifi-Komponenten gibt es auch fertige Anleitungen es aufzusetzen.
    Bei mir ist es aktuell so aufgesetzt, dass ein billiger Cloud-Server mit einer festen IP als Wireguard "Server" dient, auf den sich die Clients verbinden. Zu dem Server wiederum hält ein Raspi in meinem lokalen Netz eine Verbindung offen (damit brauchts nicht mal eine Port-Freigabe am Router, da der Verbindungsaufbau von innen nach außen geht, es bräuchte nicht mal eine IPv4 Adresse). D.h. das Iphone verbindet sich auf den Server und wird von dort über eine zweite Wireguard Verbindung in mein Heimnetz und so zum Miniserver geroutet. Auf dem Cloud-Server läuft dann noch mehr z.B. influxdb und grafana für die Historie der Daten, welche natürlich auch über das VPN verschlüsselt zum Server gehen und brauchen damit keine öffentlichen Ports mehr, etc.
    Nachdem ich ein Mac User bin, läuft bei mir die Loxone Config auf einem virtuellen Windows in der Azure Cloud. Das verbindet sich auch per Wireguard über die o.g. Methode ins Heimnetz und konfiguriert darüber den Miniserver. Sehr praktisch. Kostet nur was, wenn der Client bei Azure läuft und dann 10 Cent pro Stunde. Und zugreifen kann ich per RDP, auch das geht natürlich über die VPN Verbindung, d.h. das Windows läuft völlig abgeschottet hinter einer Firewall. Love it.
  • PBaumgartner
    LoxBus Spammer
    • 11.03.2016
    • 279

    #2
    Cool - ich hatte in der CT schon ein paar mal über das Protokoll gelesen, aber dass die Vorteile so groß sind, war mir nicht klar. Hatte schon überlegt, es auf meinem RPI laufen zu lassen, warte aber auf die finale Implementierung in der Firewall.
    Für alle Mikrotik User: Ab RouterOS 7.1beta2 ist Wiregard implementiert und scheinbar auch brauchbar nutzbar (https://forum.mikrotik.com/viewtopic.php?t=156436 und https://administrator.de/knowledge/e...a2-598512.html )

    Kommentar

    • Prof.Mobilux
      Supermoderator
      • 25.08.2015
      • 4700

      #3
      Klingt cool. AVM arbeitet laut ct bereits an der Integration von Wireguard in das FritzOS
      🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


      LoxBerry - Beyond the Limits

      Kommentar


      • Miep Miep
        Miep Miep kommentierte
        Kommentar bearbeiten
        Wäre definitiv gut. Kannst Du eine Quelle verlinken, hab auf die Schnelle nix gefunden.

        Falls tatsächlich, frage ich mich nur wie lange das dauern wird. Mit Featurereleases ist AVM leider eher sparsam unterwegs.
        Zuletzt geändert von Miep Miep; 02.01.2021, 08:45.

      • realschmide
        realschmide kommentierte
        Kommentar bearbeiten
        Meines Wissens nach hat AVM das bisher nicht offiziell bestätigt. Es gibt die ersten Speedports der Telekom die Wireguard out of the box integriert haben. Man kann die Fritzbox aber per Mod Wireguard fähig machen, wie die c't gezeigt hat. Siehe hier: https://www.heise.de/hintergrund/Wir...n-4786828.html
        Wenn man die Fritzbox per OpenWRT betreibt ist Wireguard natürlich auch möglich. Die aktuellen Linuxkernel haben Wireguard auch bereits im Kernel integriert, d.h. wenn man ein NAS, einen Loxberry, etc. hat, sollte es auch kein Problem sein.

      • Prof.Mobilux
        Prof.Mobilux kommentierte
        Kommentar bearbeiten
        Ach ja, sorry. ich hatte das mit den Speedports verwechselt.
    • t_heinrich
      Lox Guru
      • 07.01.2016
      • 2051

      #4
      Zitat von realschmide
      Nachdem ich ein Mac User bin, läuft bei mir die Loxone Config auf einem virtuellen Windows in der Azure Cloud. Das verbindet sich auch per Wireguard über die o.g. Methode ins Heimnetz und konfiguriert darüber den Miniserver. Sehr praktisch. Kostet nur was, wenn der Client bei Azure läuft und dann 10 Cent pro Stunde. Und zugreifen kann ich per RDP, auch das geht natürlich über die VPN Verbindung, d.h. das Windows läuft völlig abgeschottet hinter einer Firewall. Love it.
      Das klingt ja super.
      Auch ich bin Mac User und liebäugele mit einem M1 und vor allem möchte ich von Parallels wegkommen.
      Bei welchem Anbieter bist du denn?

      Wenn ich das hinkriege schreibe ich ein Tutorial für's Wiki.

      Gruß Thomas

      Kommentar

    • hismastersvoice
      Supermoderator
      • 25.08.2015
      • 7260

      #5
      Ich habe es gerade mal versucht...
      Perfekt, das was ich schon immer gesucht hatte.

      Es kann so einfach sein
      Werde es jetzt vom Test-System auf eine VM migrieren, dann kann es schon produktiv genutzt werden.

      Eine Anleitung die für einen Raspi perfekt funktioniert...
      Raspberry Pi – Installation und Betrieb von WireGuard – Antary

      Kein Support per PN!

      Kommentar

      • hismastersvoice
        Supermoderator
        • 25.08.2015
        • 7260

        #6
        realschmide
        Was hast du für ein Wert bei PersistentKeepalive = gesetzt?
        Ich habe jetzt mal 60 Sekunden gesetzt, das heißt das Handy wird immer noch 60x in der Stunde geweckt.
        Was denkst du was ist das max was man sinnvollerweise hier einstellen sollte.
        Kein Support per PN!

        Kommentar


        • realschmide
          realschmide kommentierte
          Kommentar bearbeiten
          Am Handy habe ich den Wert nicht gesetzt, d.h. es wird gar nicht geweckt. Das braucht es in dem Fall auch nicht, da du ja vom Server aus nicht das Handy erreichen möchtest, sondern nur anders rum aktiv auf dein Netzwerk zugreifst.
          In dem virtuellen Windows habe ich 25 gesetzt. Damit kann ich sicherstellen, dass ich das Windows erreichen kann, wenn es hinter der Firewall startet. Es baut dann eine Verbindung zum Server auf und darüber kann ich dann einen RDP aufbauen. 25 reicht in der Regel aus, dass die Firewall die "Löcher" offen lässt.

        • t_heinrich
          t_heinrich kommentierte
          Kommentar bearbeiten
          Welchen Azure-Cloud-Anbieter nutzt du denn?
      • croxxi
        Extension Master
        • 30.01.2018
        • 176

        #7
        Sehr coole Sache und werde ich auch auf jeden Fall mal ausprobieren! Gibt es dafür auch ein Docker Image für die Synology NAS? Sonst müsste ich mir erst ein Rasperry kaufen.

        Kommentar

        • hismastersvoice
          Supermoderator
          • 25.08.2015
          • 7260

          #8
          Zitat von croxxi
          Sehr coole Sache und werde ich auch auf jeden Fall mal ausprobieren! Gibt es dafür auch ein Docker Image für die Synology NAS? Sonst müsste ich mir erst ein Rasperry kaufen.
          linuxserver/wireguard - Docker Hub
          Kein Support per PN!

          Kommentar


          • croxxi
            croxxi kommentierte
            Kommentar bearbeiten
            Super Vielen Dank!
        • Gagi
          LoxBus Spammer
          • 20.01.2018
          • 290

          #9
          Mein Arbeitskollege verwendet Wireguard in der Always-On Variante zusammen mit piHole. Damit kriegt er auch unterwegs keine Werbung mehr beim surfen. Geschwindigkeitstechnisch sieht er keinen grossen Unterschied und falls doch ist es auch gleich wieder ausgeschaltet, das werde ich auch bald mal ausprobieren.

          Kommentar

          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7260

            #10
            Geschwindigkeit ist schon gleich, nur der Ping ist etwas höher. Für's normale Tagesgeschäft aber nicht merklich.
            Kein Support per PN!

            Kommentar


            • realschmide
              realschmide kommentierte
              Kommentar bearbeiten
              Die Geschwindigkeit kann schon geringer sein, wenn du den ganzen Traffic drüber routest. Mal angenommen du hast eine LTE Verbindung mit 200MBit und zuhause auch eine 200MBit Leitung, dann ist vermutlich das Nadelöhr dein Wireguard Device. Der Raspi schafft vermutlich nur 50MBit. Damit drosselst du dann deine Mobilfunk Verbindung auf die 50MBit.
          • stoeff99
            Extension Master
            • 11.07.2017
            • 146

            #11
            Ich nutze Wireguard seit ca. 1 Jahr für die Verbindung vom iPhone ins Heimnetzwerk und Loxone wenn ich unterwegs bin. Ist im Vergleich zu OpenVPN sehr viel einfacher auf zu setzen und es verbindet sich schneller mit dem VPN Server. Von Hotel WLan sind die nötigen Ports auch eher offen. Den VPN Server läuft auf einer Proxmox VM. Mit einem Proxmox Container habe ich es nicht versucht, da Wireguard direkt auf dem Kernel läuft. Auf einen Unifi Router lässt sich Wireguard aber auch installieren. Kann ich also nur weiter empfehlen.


            Gesendet von iPhone mit Tapatalk

            Kommentar

          • realschmide
            Smart Home'r
            • 26.09.2018
            • 53

            #12
            Hier auf Thomas Request hin ein Screencast, wie man das einrichten könnte.
            Leider war ich nicht wirklich vorbereitet, also bitte seht mir nach, dass ich an einigen Stellen in Fehler gelaufen bin, die ich nicht sofort gefunden hab und natürlich auch mein Gestammel.



            Wenn Fragen oder Unklarheiten sind bitte gerne.

            t_heinrich macht uns daraus ein ein Tutorial fürs Loxwiki.

            Kommentar


            • realschmide
              realschmide kommentierte
              Kommentar bearbeiten
              Ich kenne den loxberry nicht, habe aber gelesen, dass er auf raspbian basiert. Also sollte das gehen, ja. Die Frage ist eher ob die Installation dann Updates überlebt.

            • hismastersvoice
              hismastersvoice kommentierte
              Kommentar bearbeiten
              @t_heinrich
              kann man denn da unbedenklich parallel Wireguard installieren
              Ich wäre vorsichtig wenn du zB das Weather4Lox und DNSMask verwendest.
              Dann wird das ganze ggf schon etwas tricky .

              So lange du kein Plugin nutzt das Netzwerk/Routng/Masking nutz wird das sicher gehen.
              Ich würde eher das Docker-Plugin verwenden und eine Wireguard Docker Image versuchen.
              Hallo zusammen, ich möchte eine Erfahrung der letzten Wochen mit euch teilen, die mir das Leben mit Loxone deutlich einfacher gemacht hat. Bisher habe ich für den externen Zugriff auf Loxone (Miniserver gen1) ein IPSEC VPN verwendet. Das Ganze on demand hinzubekommen ist mit dem iPhone gar nicht so easy, war aber machbar

            • t_heinrich
              t_heinrich kommentierte
              Kommentar bearbeiten
              Oh OK, da bin ich erstmal raus, mit Docker habe ich schon mal versucht ioBroker zum Laufen zu bringen und bin gescheitert.
              Und das PlugIn Weather4Lox ist natürlich in Benutzung. ;-)
          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7260

            #13
            realschmide

            Noch ein kleines Problem auf das ich gestoßen bin wenn man Zwangsgetrennt wird und eine neue IP zugewiesen bekommt.
            Ich habe den WG immer an, also laufen alle Daten (nicht nur Loxone) darüber.
            Wen ich Nachts jetzt getrennt werde bekommen das die Clients nicht mit, und wollen immer noch auf der alten IP per UDP kommunizieren. (Endpoint ist eine dnyDNS domian.xx)
            Dieses Problem habe ich häufig im Netz gefunden, und die einzige Möglichkeit ist die dazugehörige Schnittstelle neu zu starten damit die Clients das mitbekommen.

            Wie machst du das?

            Habe mir eine Skript gebaut das es prüft und dann zurück setzt.
            Die Clients senden ein keep alive alle 15 min um nach der Trennung auch wieder zu verbinden.
            Anderenfalls brauchen sie beim ersten Datenverkehr ca. 5-10 Sekunden bis sie wieder online sind. Was jetzt auch nicht schlimm ist.
            Kein Support per PN!

            Kommentar


            • hismastersvoice
              hismastersvoice kommentierte
              Kommentar bearbeiten
              Habe gesehen das einige das machen und sich einen Server mieten.
              Macht für mich aber keinen Sinn, da VM-Host ja schon läuft und ich die Daten immer bei mir haben will.

              Auf jeden Fall geht es jetzt so, wenn ich DynDNS aktualisiere wird wenn die IP sich ändert auch das WireGuard neu gestartet.

              Kämpfe gerade noch mit meinem Android Handy das seit her nicht mehr sauber beim streamen arbeitet und immer wieder Unterbrechungen hat.
              iOS geht, und auch meine Android Tabs, nur das OnePlus 8T will nicht so recht. *grrrr*
              Kann einfach mal was funktionieren, aber das wäre ja dann auch langweilig.

            • realschmide
              realschmide kommentierte
              Kommentar bearbeiten
              Wie startest du das wireguard am client automatisch neu?
              Btw: Virtuelle Maschinen gibts auch kostenlos mit statischer IP. Z.B. in der Google Cloud.

            • realschmide
              realschmide kommentierte
              Kommentar bearbeiten
              @hismastervoice was mir dazu noch eingefallen ist und was ggf. auch funktionieren könnte, ohne es getestet zu haben:

              - Du holst dir einen ipv6 tunnel, z.B. bei https://tunnelbroker.net/.
              - Dort holst du dir einen ipv6 tunnel, so wie ich es verstanden habe bekommst du dort ein statisches ipv6 /64 netz.
              - Du konfigurierst den Tunnel auf deinem Wirguard Server, der Server erhält damit ein zusätzliches Netzwerk-Device mit einer öffentliche ipv6 Adresse die über den broker getunnelt wird.
              - Du konfigurierst den tunnelbroker dyndns dienst, so dass er eine IP Änderung von deinem Provider direkt mitbekommt und den Tunnel umbiegt. Siehe: https://schhsc.de/hurricane-electric...ynamische-ips/
              - Du konfigurierst Wireguard so um, dass es auf dem neuen Netzwerk-Device hinter dem Tunnel hört. Dein Server hat dann eine ipv6 Adresse, statt einer IPv4
              - Du konfigurierst deine Clients um, so dass sie den Wireguard Server über seine öffentliche ipv6 Adresse kontaktieren.

              Und voila, du hast eine statische öffentliche IP Adresse (wenn auch v6) und hast kein Problem mehr bei der Zwangstrennung. Deine Clients brauchen dann auch keinen PersistentKeepalive mehr.

              Wie gesagt: Ich habs nicht ausprobiert, es kann sein dass es nicht geht, müsste aber eigentlich gehen.
          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7260

            #14
            realschmide

            Ich starte WireGuard am Client nicht neu sondern das wg0 auf meinem VM-Server.
            Wird das wg0 down/up geschaltet bauen die Clients dann wieder ein Netz auf.

            Das mit dem IP-Tunnel gibt es auch für IPv4, kostet dann irgendwie 7€ im Monat. Aber dann hätte ich WireGuard getunnelt über OpenVPN... Das macht das ganze sicher nicht gerade perfomant.
            Habe was von 20Mbit gelesen.
            Bis jetzt geht es so mit dem neustart des wg0 NIC, nur das Streamen auf meinem OnePlus geht gar nicht mehr.

            Ich möchte in erster Line nicht wegen WireGuard mein kpl. Netzwerk neu stricken und zusätzlich pfSense oder so was aufsetzen nur damit ich mein Netz wieder an einen externen VM mit WireGuard leiten kann. Das ist mir zu viel Aufwand und am Ende versteht das Netz nur noch ein IT Profi.

            Danke für deine Tipps.
            Kein Support per PN!

            Kommentar

            • Donny86
              Extension Master
              • 30.06.2017
              • 111

              #15
              Hallo zusammen,

              danke erstmal für die gute Anleitung realschmide !
              Leider habe ich dennoch ein kleines Problem mit meinem Wireguard. Ich nutze einen separaten RPi mit pi-Hole und Wireguard. Ich habe alles nach dieser Anleitung https://www.antary.de/2020/04/09/ras...von-wireguard/ eingestellt. (Habe ebenfalls eine Fritzbox mit Myfritz. Ist also alles identisch mit dem beschriebenen Setup außer, dass ich als DNS Pi-Hole nutze)

              Wenn ich den VPN über mein IPhone aufbaue, kann ich auch direkt auf mein Heimnetz, e.g. Loxone etc, zugreifen. Das funktioniert einwandfrei. Mein Problem ist jedoch, dass ich dann nicht mehr ins Internet komme. Dies ist erst wieder möglich, wenn der VPN deaktiviert ist.

              Ich vermute, dass das Problem weniger direkt an Wireguard liegt, als viel mehr an einer Fritzbox-Einstellung, nur welche? Portforwarding auf den Wireguard Port ist aktiv (sonst würde ich wohl auch nicht auf das Heimnetz kommen. Statische Route von der in Wireguard konfigurierten Client-IP zum RPI ist auch eingestellt.
              Hat jemand von euch eine Idee?

              Danke und Grüße

              Kommentar


              • realschmide
                realschmide kommentierte
                Kommentar bearbeiten
                Wie sieht denn die statische Route an der Fritzbox aus? Und mach doch mal an einem beliebigen Client wo das Internet nicht mehr geht einen traceroute auf eine Internet-Seite und poste mal das Ergebnis.. Z.B. so:

                OSX: traceroute google.de
                Windows (wenn ich mich recht erinnere): tracert google.de

              • Donny86
                Donny86 kommentierte
                Kommentar bearbeiten
                Die stat. Route ist wie folgt:
                Netzwerk: 100.64.0.0 (Wireguard Server IP ist 100.64.0.1, habe auch diese schon ohne Erfolg getestet)
                Subnetz: 255.255.255.0
                Gateway: 192.168.178.61 (Raspberry Pi mit Wireguard und Pi-Hole)

                Da mein einziger Client derzeit mein IPhone ist, habe ich mir eine App für die TraceRoute geladen. Leider kommt da als Ergebnis nur "Failed", wenn ich google.de ansurfen will.

                Auch bei anderen Apps wird keine Route angezeigt. (habe es auch ohne wireguard getestet, mit normalem Wlan und 4G- dort wurden Routen angezeigt).

                Es scheint, als würde meine Anfrage irgendwo auf dem Raspberry Pi verloren gehen.

              • realschmide
                realschmide kommentierte
                Kommentar bearbeiten
                Das Problem ist, dass du für dein Wireguard Netz eine private IP verwenden solltest, stattdessen verwendest du deine öffentliche IP. Du hast scheinbar deine öffentliche IP Adresse für das Wireguard Netz verwendet. Damit verwendest du die IPs doppelt, einmal die öffentliche IP deines Netzanbieters und gleichzeitig als Wireguard Netz.
            Lädt...