DRAFT: WireGuard auf dem USG

Sie betrachten gerade eine ältere Version des Eintrags. Klicken Sie hier, um zur aktuellen Version zu gelangen.

  • Was wollen wir?

    Sicheren Zugriff auf das (private) Netz hinter einem USG-Pro-4 (UGW4) oder USG-3P (UGW3).


    Warum wollen wir das?

    Wie die Vergangenheit deutlich gezeigt hat haben wenigstens einige private Geräte wie z.B. NAS oder Controller zur Heimautomatisierung oder ähnliches immer wieder Sicherheitslücken, welche auch schon erfolgreich ausgenutzt wurden. So etwas passiert häufig, wenn diese Geräte für alle und jeden über eine simple Portfreigabe im Internet erreichbar und nur mit den "internen Sicherheitsmechanismen" geschützt sind, welche oft nicht ausreichen. Vielleicht möchte man auch einen Dienst aus dem (heimischen) LAN verwenden, welchen man nicht veröffentlichen möchte oder sollte, wie z.B. ein pi-hole.

    Daher sollten solche Services nicht direkt von außen erreicht werden können oder man möchte das einfach nicht.

    Leider werden wohl weder das USG-Pro-4 noch das USG-3P das dafür nötige Update von Ubiquiti erhalten, was ich sehr schade finde. :frowning_face:


    Aber auch dafür gibt es eine Lösung, welche ich schon länger im Einsatz habe. :smiling_face: Und jetzt übersteht sie sogar einen Reboot und auch ein Provisioning - und vielleicht auch ein Update. Das konnte ich aber nicht testen, da ich dafür nicht genug Hardware habe. :winking_face:


    Und wie geht das genau?

    Hinweis: Ich gehe davon aus, dass

    1. rudimentäre Linux-Kenntnisse vorhanden sind, um sich auf dem USG "fortzubewegen" (cd, ls u.ä.).
    2. das USG selbst Zugriff auf das Internet hat.
    3. klar / bekannt ist, wie man eine ssh-Verbindung zum USG aufbauen kann.
    4. der Editor vi benutzt werden kann.
    5. klar / bekannt ist, wie man per (Win)scp Dateien auf das USG übertragen kann (Alternative zu 3. & 4.).

    Freundlicherweise hat WireGuard selbst auf GitHub schon mehr oder weniger alles bereitgestellt, um das umzusetzen.

    Bevor wir aber "ins Eingemachte" gehen sollten wir uns im GitHub-Repository umsehen, unter welchem Link das aktuelle WireGuard-Debian-Paket zu bekommen ist. Dabei hilft ein Blick auf DIESE Seite. Hier sind alle Releases für die unterstützten Geräte gelistet. Das aktuelle Release ist vom 02. Juli 2022 - ja: auch schon 'was älter. Hier die aktuellen Links:


    Und los geht's!

    Nachdem man sich via ssh am USG angemeldet hat und zum Benutzer root geworden ist kann es auch schon losgehen.

    Um sich den Download zu "sparen" könnte man mit einem der folgenden Befehle prüfen, ob WireGuard schon / noch auf dem USG installiert ist:

    Code
    $ which wg
    $ wg show

    Das kann man sich natürlich sparen, wenn man weiß, dass WireGuard (noch) nicht installiert ist. :winking_face:


    Ich habe das notwendige Paket mit dem folgenden Befehl für mein UniFi-Gateway-4 nach /tmp/wg.deb heruntergeladen und im Anschluss daran installiert:

    Code
    curl -sL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/ugw4-v1-v1.0.20220627-v1.0.20210914.deb -o /tmp/wg.deb && dpkg -i /tmp/wg.deb

    Nun sollten die oben genannten Befehle eine andere Ausgabe bringen:

    Damit ist nun klar, dass WireGuard installiert ist und auch verwendet werden kann.



    Disclaimer:

    Alle Anleitungen/Tutorials sind nach bestem Wissen und Gewissen verfasst, gehen immer von den definierten Software/Firmware-Versionen aus und sind auf das englische GUI ausgelegt.

    Es gibt keine Garantie auf Erfolg. Im Falle eines Misserfolges hilft aber die Community hier sicherlich weiter.

    Keiner der Autoren oder der Betreiber des Forums ist für die aus der Nutzung resultierenden Probleme/Herausforderungen verantwortlich.

    Jegliche hier beschriebenen Schritte erfolgen ausnahmslos in eigener Verantwortung des Durchführenden.

    Eltern haften für ihre Kinder.

Kommentare

  • Gibt es da inzwischen schon Erfahrungswerte ob die Konfiguration/Installation ein Firmware-UG übersteht?

  • Hallo Razor.

    Vielen Dank für diese Info.

    Wie könnte man es umsetzen um per Wireguard VPN Client von einem Android Handy aus auf das Netz einer Unifi USG 4 Pro zu kommen?


    Könntest Du hier evtl. helfen?


    Vielen Dank.

    Grüße

    Alain

    • Hallo Alho und willkommen an Board.


      DAS steht auch bei mir noch aus zu adaptieren. Ich habe jetzt für mich noch das Problem gelöst, dass nach dem Provisionieren immer alles weg war, da ich das noch nicht in meine config.gateway.json überführt hatte.


      Das hat aber nun hervorragend geklappt und übersteht auch Reboots und nun freue ich mich schon auf diese neue Aufgabe.


      Du kannst ja gern schon einen Blick auf meinen UniFi-Stuff werfen: https://github.com/razorworks/unifi-stuff/ :clinking_glasses:

    • Klasse. Würde mich freuen, wenn Du hier eine Lösung finden könntest.

      Schönes Wochenende


      Alain :smiling_face::thumbs_up:

    • Hi razor.

      Gibt’s schon Ideen oder Neuigkeiten?

      Grüße Alain

      Gefällt mir 1
    • Moin Alho,


      jo, habe ich mittleriwele auch gelöst - als Split-Tunnel und mit "all-traffic" endlich auch.


      Das ist aktuell aber leider weder update- noch reboot-fest. Ich bin noch dran.

    • Hi Razor.

      Hast Du schon Möglichkeiten gefunden, es reboot-fest zu machen?

      Schöne Grüße

  • Vielen Dank für die wirklich gute und ausführliche Beschreibung.


    mir fehlt nur noch: wo wird die config.gateway.json gespeichert, auf der USG oder im CloudKey und in welchem Verzeichnis?


    Vielen Dank für eine Rückmeldung


    Uwe

    • Hallo,


      Ubiquiti hat das HIER zusammengefasst.


      Kurz: die Datei liegt auf dem Controller und wird beim Provisionieren auf das Gateway übertragen, sodass dieses damit umgehen kann.

      Am einfachsten lädst Du ein beliebiges Bild als Gebäudeplan (im Controller auf MAP wechseln und dort von Topology auf floor plan umstellen) über den Controller hoch. Damit werden dann die nötigen Verzeichnisse erstellt. Wenn Du nur eine Site im Controller verwaltest, dann müsste die config.gateway.json unter /srv/unifi/data/sites/default/ liegen.