10.02.2022 ** EOL ** wg-dashboard ist seit 4 Jahren unmaintained! Keine Aktualisierungen, ggf. Sicherheitslücken, bitte nicht mehr benutzen! gute Alternative https://github.com/donaldzou/WGDashboard
wg-dashboard ist ein schickes Webinterface, um die Einrichtung von WireGuard und Verwaltung der Clients zu vereinfachen.
Anstatt das Terminal verwenden zu müssen, kann hier (fast) alles über das UI erledigt werden.
Ohne großen Aufwand erhält man einen WireGuard VPN Server mit grafischer Oberfläche.
Installiert wird auf einem Raspberry Pi 3 mit frisch aufgesetztem Raspberry Pi OS Lite.
24.05.2021 - install_script aktualisiert 07.04.2021 - install_script aktualisiert 21.02.2021 - install_script aktualisiert 02.08.2020 - angepasstes install_script, damit funktioniert es wieder 31.07.2020 - WireGuard Snapshot lässt sich nicht mehr kompilieren
wg-dashboard installieren (angepasstes script)
Änderungen:
WireGuard wird jetzt direkt aus den Sourcen kompiliert.(Ab Kernel >= 5.6 nicht mehr nötig!)- Debian und Ubuntu OS Unterstützung entfernt, nur noch Raspbian.
- Port 3000 für den direkten Zugriff aktiviert.
Erfolgreich mit dem Raspberry Pi OS Lite Image getestet. (Image vom 04.03.2021, Kernel 5.10)
- download script: install_wg-dashboard-rpi.sh
- view script: install_wg-dashboard-rpi.sh
Bevor das script ausgeführt wird den Pi updaten und neu starten! (Kernel muss >= 5.6 sein.)
pi@wireguard:~ $ sudo apt-get update pi@wireguard:~ $ sudo apt-get upgrade -y pi@wireguard:~ $ sudo reboot pi@wireguard:~ $ wget https://bachmann-lan.de/projects/wg-dashboard/install_wg-dashboard_rpi.sh pi@wireguard:~ $ chmod +x install_wg-dashboard_rpi.sh pi@wireguard:~ $ sudo ./install_wg-dashboard_rpi.sh
wg-dashboard installieren (original script, funktioniert nicht mehr)
Auf dem Pi einfach das install script ausführen. (Schaut man sich vorher mal das install_script.sh an, sieht man was installiert wird.)
pi@wireguard:~ $ curl https://raw.githubusercontent.com/wg-dashboard/wg-dashboard/master/install_script.sh | sudo bash
Nach ein paar Minuten ist alles erledigt.
==================================================================================== > Done! WireGuard and wg-dashboard have been successfully installed > You can now connect to the dashboard via ssh tunnel by visiting: http://localhost:3000 > You can open an ssh tunnel from your local machine with this command: ssh -L 3000:localhost:3000 <your_vps_user>@<your_vps_ip> > Please save this command for later, as you will need it to access the dashboard ====================================================================================
Das Webinterface ist nach der Installation nur durch einen SSH Tunnel erreichbar.
ssh -L 3000:localhost:3000 pi@raspi-ip # auf dem Client den Tunnel öffnen http://localhost:3000 # auf dem Client das Webinterface aufrufen
Um auch einen direkten Zugriff zu erhalten muss die Firewall angepasst werden.
pi@wireguard:~ $ sudo ufw allow 3000 Rule added Rule added (v6)
wg-dashboard
Neuen Admin Benutzer mit Passwort anlegen.
Server Settings
Peer Settings
Verzeichnisse und config Dateien.
/etc/wireguard/wg0.conf # WireGuard Konfiguration /opt/wg-dashboard # wg-dashboard Verzeichnis /opt/wg-dashboard/server_config.json # wg-dashboard Server Settings und Peers
Tolles Projekt, aber leider seit dem 17.09.2019 unmaintained. Hoffentlich übernimmt das jemand!
Ich hab’s mir bisher aber nur mal zum ausprobieren installiert, hatte das System noch nicht produktiv im Einsatz.
Vielen vielen Dank Michael für diese Anleitung.
Ich habe lange nach einer grafischen Oberfläche für WireGuard auf dem Raspi gesucht. Leider funktioniert dies trotz genauem Befolgen der Anleitung bei mit nicht. Und da ich klein in Linux ein Laie bin, kann ich den Fehler auch nicht entdecken. Ich habe auf dem Raspi 3 ganz frisch die aktuelle “Raspberry Pi OS (32-bit) with desktop and recommended software” installiert und alle Updates einspielen lassen. Zum Schluss nur noch xrdp installiert. Danach habe ich sofort per RDP Deinen Befehl:
pi@wireguard:~ $ curl https://raw.githubusercontent.com/wg-dashboard/wg-dashboard/master/install_script.sh | sudo bash
im Terminal abgesetzt.
Der Rasp werkelt dann auch ganz schön rum um dann leider mit folgender Meldung zu enden:
In file included from /opt/WireGuard/src/main.c:9:
/opt/WireGuard/src/queueing.h: In function ‘wg_reset_packet’:
/opt/WireGuard/src/queueing.h:100:2: error: implicit declaration of function ‘skb_reset_tc’; did you mean ‘skb_reserve’? [-Werror=implicit-function-declaration]
skb_reset_tc(skb);
^~~~~~~~~~~~
skb_reserve
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:266: /opt/WireGuard/src/main.o] Fehler 1
make[1]: *** [Makefile:1709: /opt/WireGuard/src] Fehler 2
make: *** [Makefile:37: module] Fehler 2
Was habe ich falsch gemacht? Wie kann das gelöst werden? Kannst Du mir helfen?
Ich bin Laie im Linux-Bereich.
Lieben Dank
Frank L.
Hallo Frank.
Habs gerade mal ausprobiert und erhalte den gleichen Fehler! :(
Raspberry Pi OS (2020-05-27)
Linux raspberrypi 5.4.51-v7+ #1327
Du hast also nix falsch gemacht!
Ich kann dir momentan aber nicht sagen was sich da geändert hat.
Vielen Dank für die Antwort. Da bin ich erleichtert dass es nicht an mir lag obwohl ich nicht wirklich durchblicke. Habe ich es recht verstanden dass Wireguard voher nicht installiert werden muss, sondern es mit dem installieren des Dashboards mit installiert wird?
Zwischenzeitlich habe ich auf einem erneut frisch aufgesetztem RaspiOS Wireguard manuell installiert
(https://www.bachmann-lan.de/raspberry-pi-mit-wireguard-als-vpn-server-mit-wireguard/).
Danach habe ich versucht wg-dashboard zu installieren, leider ohne erfolg.
Das Script endete nach einigen Minuten mit der Meldung:
raspberrypi-kernel-headers ist schon die neueste Version (1.20200723-1).
libelf-dev ist schon die neueste Version (0.180-1).
libmnl-dev ist schon die neueste Version (1.0.4-3).
ufw ist schon die neueste Version (0.36-6).
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
libc6-dev : Beschädigt: libgcc-8-dev (< 8.4.0-2~) aber 8.3.0-6+rpi1 soll installiert werden
E: Fehler: Unterbrechungen durch pkgProblemResolver::Resolve hervorgerufen; dies könnte durch zurückgehaltene Pakete verursacht worden sein.
OK, und da steige ich aus. Soviel Wissen habe ich dann nicht.
Also ein Raspi von WG und einer halbwegs brauchbare grafische Oberfläche wäre für mich genau das Richtige.
Nur hier bin ich fündig geworden.
Für das wg-dashboard install script darf vorher nichts installiert sein, wird alles automatisch erledigt.
Das wg-dashboard kann auch nicht ohne weiteres über ein bestehends WireGuard System installiert werden.
Lässt sich natürlich auch beides kombinieren, muss dann aber manuell konfiguriert und installiert werden.
Lassen sich die WireGuard Module nicht kompilieren, liegt es immer an der installierten Kernel Version und den WireGuard Snapshots.
Hab eine Lösung gefunden, Anleitung wurde erweitert.
Vielen Dank dafür dass du dich da reingekniet hast. Ich habe jetzt ebenfalls das aktuelle Lite Image genutzt, das Script in / kopiert,
laufen lassen und nach ein paar Minuten ist es mit einem Fehler abgebrochen.
Hier die letzten Zeilen der Ausgabe:
pi@raspberrypi:/ $ sudo bash install_script_wg-dashboard-rpi.sh
…..
Klone nach ‘wireguard-tools’ …
remote: Enumerating objects: 401, done.
remote: Counting objects: 100% (401/401), done.
remote: Compressing objects: 100% (381/381), done.
remote: Total 2757 (delta 204), reused 9 (delta 9), pack-reused 2356
Empfange Objekte: 100% (2757/2757), 600.48 KiB | 1021.00 KiB/s, Fertig.
Löse Unterschiede auf: 100% (1827/1827), Fertig.
make: Verzeichnis „/opt/wireguard-linux-compat/src“ wird betreten
make[1]: Verzeichnis „/opt/wireguard-linux-compat/src“ wird betreten
make[1]: *** /lib/modules/4.19.118-v7+/build: Datei oder Verzeichnis nicht gefunden. Schluss.
make[1]: Verzeichnis „/opt/wireguard-linux-compat/src“ wird verlassen
make: *** [Makefile:26: module] Fehler 2
make: Verzeichnis „/opt/wireguard-linux-compat/src“ wird verlassen
pi@raspberrypi:/ $
Da fehlte der reboot nach den updates.
Lösch die beiden WireGuard Verzeichnisse unter /opt und führ das script nochmal aus.
Vielen Dank, das war es. Es funktioniert. das VPN steht :-)
Alleine hätte ich dies nicht hinbekommen. Das ist mir alles zu hoch als Mausschubser.
Wirklich gute Arbeit. Funktioniert perfekt.
Zwei Anregungen zur Ergänzung des Artikels hätte ich noch:
1. Hinweis zur Änderung der peer-config, falls der wireguard-server über dyndns erreichbar sein soll:
Endpoint manuell auf “Endpoint = IP-desdynDNS:58210” umschreiben.
2. den Befehl zum automatischen starten/laden des servers auf dem raspi angeben:
sudo systemctl enable wg-quick@wg0
Danke für deine Infos.
Hallo Herr Bachmann.
ich hatte auf meinem pi4b bereits OMV (http:-Port 1224) und Pi-hole (Port 80) installiert .
nach der Installation von wg-dashboard (Port 3000) war beides nicht mehr erreichbar.
können diese 3 Applikationen nicht miteinander auf einem System agieren?
falls doch, wie ist die korrekte Installtions-Reihenfolge und was muss man beachten?
ich möchte meinen 4b gerne auslasten und benötige diese 3 Applikationen .
Danke und Grüße
Neben WireGuard sollten natürlich auch noch andere Anwendungen möglich sein.
Da ich so ein Setup nicht im Einsatz habe, kann ich dazu keine Angaben machen.
Ich tippe eher mal das die nachinstallierte UFW Firewall dicht macht.
Ggf. müssen die benötigten Ports explizit wieder freigegeben werden.
sudo ufw allow PORT
Hallo. Ich hatte dann lokal mittels „ip a“ nach den Netzwerkeinstellungen geschaut und gesehen das eth0 verschwunden war.
Von extern war über ssh auch keine Verbindung mehr möglich.
Haben sie eine Idee dazu ?
Können sie das vllt mal bei sich nachstellen?
Ich würde das Projekt gerne zu Ende bringen und wg mit website nutzen.
Vielen dank!
Nach welchen Aktionen ist den eth0 verschwunden?
System updates?
Kernel updates?
Nachdem wg-Dashboard installiert wurde nach dem Neustart.
Ich hatte es 2x probiert , also ist es reproduzierbar.
Wie gesagt zuerst omv, dann pi-hole und dann wg-Dashboard. Alles mit einem aktuellen Raspian-OS auf einem 4b mit 4gb-RAM.
Ist Euch nicht aufgefallen, dass das wg0 Interface nach dem Neustart verschwunden ist?
Das hilft:
sudo systemctl enable wg-quick@wg0.service
sudo systemctl start wg-quick@wg0.service
Danke für das Angepasste Script. Pack das doch bitte oben hin. Ich hatte erst das “(funktioniert nicht mehr)” gemacht weil ich es überlesen habe.
Beste Grüße, Chris
Hallo Chris,
hab’s jetzt nach oben gepackt.
Danke für dein Info, wg0 war nach einem reboot wirklich verschwunden!
Werde mein script mal aktualisieren, wireguard-linux-compat wird mit dem aktuellen Kernel auch nicht mehr benötigt.
Gruß, Michael…
Ich habe mich gefreut das skript hier zu finden
zumal ich virtuelle RaspberryOS in Proxmox laufen habe (da ich keine 2-3-4-5 Raspy´s laufen haben wollte
leider bekomme ich jetzt eine Fehlermeldung
Trotz RaspbianOS :-(
Sorry, your operating system is not supported !
The install script is only for the Raspberry Pi.
Was kommt denn bei dir raus, wenn du “lsb_release -is” eingibst? Das script erwartet nämlich “Raspbian” als Ausgabe.
Im script könntest du das abändern, ob’s dann läuft ist dann die andere Frage. ;)
Mir ist bisher auch noch nicht bekannt, das sich ein Raspberry Pi OS (ARM) unter Proxmox virtualisieren lässt???
Was genau hast du denn da gemacht?
Ich habe mich gefreut das skript hier zu finden. Klasse Arbeit. Läuft …… bis auf
could not restart wireguard: COULD_NOT_SAVE_WIREGUARD_CONFIG
wenn man auf “Save and restart” klickt.
Nach “sudo systemctl start wg-quick@wg0.service” in der console gehts wieder.
Im script hatte ich zwar den wg0.service beim starten aktiviert, aber nicht explizit gestartet.
Nach einem reboot hätte es dann spätestens funktionieren müssen.
Werde ich anpassen, danke für die Info!
nach dem reboot gehts ja, nur beim klick auf save und restart, nicht.
habs jetzt nochmal neu aufgesetzt und plötzlich gehts, versteh ich zwar auch nicht,
aber echt super Arbeit die du dir machst, toole Anleitung. Daumen hoch (alle)
Stand heute, Raspi Os lite Image vom 04.03.2021, Kernel 5.10, voll upgegradet, hängt die Install mit einem “missing wg0.conf”:
pi@raspberrypi:~ $ sudo ./install_wg-dashboard_rpi.sh
— SNIP —
Job for wg-quick@wg0.service failed because the control process exited with error code.
See “systemctl status wg-quick@wg0.service” and “journalctl -xe” for details.
pi@raspberrypi:~ $ systemctl status wg-quick@wg0.service
● wg-quick@wg0.service – WireGuard via wg-quick(8) for wg0
Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2021-05-24 10:44:59 WEST; 12s ago
Process: 2052 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=1/FAILURE)
Main PID: 2052 (code=exited, status=1/FAILURE)
May 24 10:44:59 raspberrypi systemd[1]: Starting WireGuard via wg-quick(8) for wg0…
May 24 10:44:59 raspberrypi wg-quick[2052]: wg-quick: `/etc/wireguard/wg0.conf’ does not exist
May 24 10:44:59 raspberrypi systemd[1]: wg-quick@wg0.service: Main process exited, code=exited, status=1
May 24 10:44:59 raspberrypi systemd[1]: wg-quick@wg0.service: Failed with result ‘exit-code’.
May 24 10:44:59 raspberrypi systemd[1]: Failed to start WireGuard via wg-quick(8) for wg0.
lines 1-17/17 (END)
Mein Fehler! :(
Der
wg-quick@wg0.service
darf nur aktiviert aber noch nicht gestartet werden, da noch keine wg0.conf existiert.Diese wird erst nach der Konfiguration der Server Settings im wg-dashboard erstellt. (Save and restart)
Danke, hab ich aus dem script rausgenommen.
Danke nochmal, jetzt ist gut!
Ihr habt Recht, eigentlich muss sogar das raus:
systemctl enable wg-quick@wg0.service
Zuerst muss nämlich im wg-dashboard die “Public Host / IP” eingetragen werden und dann auf Save and restart gedrückt werden. Erst dann kommt der wg0 hoch.
Und auch erst dann kann man den wg0.service aktivieren.
Also vielleicht lieber am Ende des Scripts einen Hinweis dazu anzeigen:
echo “Open wg-dashboard. Enter Public Host / IP. Click Save and restart.
echo “Afterwards run here: sudo systemctl enable wg-quick@wg0.service“
Gute Idee, könnte man mit in das script übernehmen und als zusätzliche Info ausgeben lassen.
Ich glaube aber das der service vorher schon auf aktiviert gesetzt werden kann.
Man darf ihn nur nicht starten, da die wg0.conf erst nach dem speichern erstellt wird.
Werd ich bei Gelegenheit nochmal ausprobieren.
Hallo,
erstmal Danke für das Script.
Eine Frage lässt sich der Port 3000 (nachträglich) ändern?
In den Config Dateien auf dem Raspi steht die 3000. Löschen öder ändern dort hat keine Auswirkung.
Da hier der WireGuard auf einem Rasi läuft wo nur dieser Server drauf ist, brauche ich ja nicht unbedingt den Port.
In der server_config.json den webserver_port auf 80 ändern.
wg-dashboard service neu starten
$ systemctl restart wg-dashboard
$ systemctl status wg-dashboard
-- SNIP --
Nov 20 20:45:41 pi-rack02-wireguard systemd[1]: Started wg-dashboard service.
Nov 20 20:45:43 pi-rack02-wireguard node[24299]: WireGuard-Dashboard listening on port 80!
Firewall Regel hinzufügen
$ ufw allow 80
Leider funktionierte das Script am Anfang nicht, Beim starten kam immer die Meldung OS wird nicht unterstützt. Image war das aktuelle Raspberry Pi OS x64 Lite erstellt mit dem Raspberry Pi Imager.
Das Kommando lsb_release -is liefert das aber zurzeit Debian als Rückgabewert.
Ich habe dann im Script Raspian durch Debian ersetzt. Und siehe da das Script funktionierte nun problemlos.
Dann hat sich da wohl jetzt der Name geändert.
Hast es ja hinbekommen, danke für die Info.
Da, das GUI seit 3 Jahren nicht mehr supported wird, wäre es Möglich das das Skript mit dem WGDashboard (der genannten Alternative) aktualisiert wird?
Meinst du ein Installskript für WGDashboard schreiben?
Eine einfache Anleitung gibt es ja schon.
https://www.bachmann-lan.de/raspberry-pi-mit-wireguard-und-wgdashboard-webinterface/
richtig, der Link von dir enthält doch viel selbst zu tun, das “ready to use” script ist eine super Lösung die wunderbar funktioniert hat,
wenn man das nun mit dem “neuen” WGDashboard also “Autoinstallation” aktualisieren könnte. Wäre damit vielen geholfen. (auch mir)
Dann probier ihn mal aus. :)