Direkt zum Hauptinhalt

Installation des Servers unter Debian

Teil 1. Installation im Terminal


Abbhängikeiten installieren.

apt update && apt install -y wireguard curl tar iptables resolvconf
Hinweis: 
Bei Debian 12/13 wird die resolv.conf nicht angelegt. Das heißt nach installtaion von resolvconf funktioniert die Namensauflösung nicht. Daher rersolv.conf anlegen mit Inhalt des google dns Servers als Beispiel

nameserver 8.8.8.8

Denn Sonst funktioniert das Update/Installationsskript nicht

 

 

Falls die ufw Firewall aktiv ist, bei dieser folgenden UDP Port öffnen 51820, wenn nicht überspringen

ufw allow 51820/udp


!!Sollte der Wireguard Server hinter einem Router stehen das NAT Portforwarding UDP 51820 nicht vergessen einzurichten!!

Nun in der Systemctl Portforwarding aktivieren

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p

Nun das Startscript für den Wireguard WEBGUI erstellen.
In dem Systemstart wird das Programm so eingestellt das es die Datenbank zum Wireguard Server in
/etc/wireguard/db/ abgelegt

cat <<EOF > /etc/wireguard/start-wgui.sh
#!/bin/bash
 
cd /etc/wireguard
./wireguard-ui -bind-address 0.0.0.0:5000
EOF

ACHTUNG: Die -bind-address 0.0.0.0:5000 sollte aus Sicherheitsgründen, sobald der erste Tunnel steht, gegen die WireGuard Server IP-Adresse 10.252.1.0 ausgetauscht werden!

Nun das Script ausführbar machen.

chmod +x /etc/wireguard/start-wgui.sh

Nun die Systemdienste anlegen

cat <<EOF > /etc/systemd/system/wgui-web.service
[Unit]
Description=WireGuard UI
 
[Service]
Type=simple
ExecStart=/etc/wireguard/start-wgui.sh
 
[Install]
WantedBy=multi-user.target
EOF

Nun das Install / Update  script erstellen, damit können wir immer die aktuellste Version downloaden.

cat <<EOF > /etc/wireguard/update.sh
#!/bin/bash
 
VER=\$(curl -sI https://github.com/ngoduykhanh/wireguard-ui/releases/latest | grep "location:" | cut -d "/" -f8 | tr -d '\r')
 
echo "downloading wireguard-ui \$VER"
curl -sL "https://github.com/ngoduykhanh/wireguard-ui/releases/download/\$VER/wireguard-ui-\$VER-linux-amd64.tar.gz" -o wireguard-ui-\$VER-linux-amd64.tar.gz
 
echo -n "extracting "; tar xvf wireguard-ui-\$VER-linux-amd64.tar.gz
 
echo "restarting wgui-web.service"
systemctl restart wgui-web.service
EOF

Das Script ausführbar machen und starten

chmod +x /etc/wireguard/update.sh
cd /etc/wireguard; ./update.sh

Es erscheinen folgende fehler in der Ausgabe, aber es wird trotzdem korrekt installiert

Ausgabe

/update.sh: Zeile 2:  : Kommando nicht gefunden.
./update.sh: Zeile 4:  : Kommando nicht gefunden.
downloading wireguard-ui v0.3.7
./update.sh: Zeile 7:  : Kommando nicht gefunden.
extracting wireguard-ui
./update.sh: Zeile 9:  : Kommando nicht gefunden.
restarting wgui-web.service

Wireguard conf von Systemd überwachen lassen und bei Änderung wiregaurd neustarten.
Dienst 1

cat <<EOF > /etc/systemd/system/wgui.service
[Unit]
Description=Restart WireGuard
After=network.target
 
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart wg-quick@wg0.service
 
[Install]
RequiredBy=wgui.path
EOF

Dienst 2

cat <<EOF > /etc/systemd/system/wgui.path
[Unit]
Description=Watch /etc/wireguard/wg0.conf for changes
 
[Path]
PathModified=/etc/wireguard/wg0.conf
 
[Install]
WantedBy=multi-user.target
EOF

Nun alle 3 Dienste aktivieren und starten

touch /etc/wireguard/wg0.conf
systemctl enable wgui.{path,service} wg-quick@wg0.service wgui-web.service
systemctl start wgui.{path,service}

Nun können wir auf den Wireguard Server über die Weboberfläche zugreifen.

http://ipadresse:5000

Standard Anmeldedaten :
Benutzername : admin
Kennwort : admin


In der alten version über die Datei!!!!
Diese ändern wir ab in der Datei /etc/wireguard/db/server/users.json

nano /etc/wireguard/db/server/users.json

Inhalt, einfach neues Passwort setzten

{
        "username": "admin",
        "password": "<neues passwort>"
}


In der neuen Version endlich über GUI.
Auf User Setting und dann Edit.
Endlich können auch mehrere Benutzer erstellt werden ;-)
Über den Button new user oben rechts

01.png

Nun neues Passwort vergeben und auf save klicken

02.png

Teil 2. Email sender Einrichten (Optional)

Wenn man gerne die Files per Email versendet möchte müssen in der Service Datei folgende Environment Variablen angelegt werden

Die Service datei editieren

nano /etc/systemd/system/wgui-web.service


Das SMTP PASSWORT muss leer gesetzt werden.
und in die Passwort Datei muss das Passwort

Variable
Möcgliche optionen
SMTP_AUTH_TYPE Die SMTP authentication Typen. : PLAIN, LOGIN, NONE
SMTP_ENCRYPTION Dieencryption Methode. : NONE, SSL, SSLTLS, TLS, STARTTLS
jenachdem was für ein Port gesetzt wurde

Inhalt hinzufügen

[Unit]
Description=WireGuard UI
 
[Service]
Type=simple
ExecStart=/etc/wireguard/start-wgui.sh
Environment="SMTP_HOSTNAME=<smtpserver>"
Environment="SMTP_PORT=465"
Environment="SMTP_USERNAME=<benutzername>"
Environment="SMTP_PASSWORD=" 
Environment="SMTP_PASSWORD_FILE=/etc/wireguard/smtppass"
Environment="SMTP_AUTH_TYPE=LOGIN"
Environment="SMTP_ENCRYPTION=SSL"
Environment="EMAIL_FROM_ADDRESS=<emailadresse>"
Environment="EMAIL_FROM_NAME="Anzeigename"
[Install]
WantedBy=multi-user.target

Danach den Systemd daemon neustarten

systemctl daemon-reload

Nun die Passwortfile erstellen

nano /etc/wireguard/smtppass

Inhalt

absolutgeheimesmtppasswort

Nun den Dienst neustarten

service wgui-web restart

Nun kann man über die GUI die Datei wegsenden.
Dazu bei dem Client auf den Button Email klicken

Auswahl_001.png
Nun entweder hinterleget Adresse nutzen, oder andere eingeben dann auf send
Auswahl_002.png
Die Email wurde erfolgreich gesendet
Auswahl_003.png


Teil 3. Weiter in der Webgui

Bildschirmfoto vom 2022-12-01 09-07-44.png


Nach dem Einloggen links auf den Menüpunkt Global Settings.

Bildschirmfoto vom 2022-12-01 09-08-00.png

Die Endpoint Address mit dem DNS namen oder Public ip tauschen.
um die Public IP rauszubekommen, im Terminal.

curl ifconfig.me


DNS Server auf 8.8.8.8 setzen und MTU rauslöschen.und auf save klicken

Bildschirmfoto vom 2022-12-01 09-45-43.png


und dann apply Config klicken

Bildschirmfoto vom 2022-12-01 09-20-42.png


Dann sehe das ganze so aus als Beispiel

Auswahl_277.png

Nun auf den Menüpunkt links Wireguard Server.
Nun mittels terminal und ip a herausfinden welche Netzwerkkarte für lan es gibt.

Ausgabe

ip a

 ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 2a:xx:xxx:xx:85 brd ff:ff:ff:ff:ff:ff
    altname enp0s18


Nun bei Postup folgendes eintragen (die ens18 durch eure Netzwerkkarte erstezen)

iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j
ACCEPT; iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE

Nun bei Postdown folgendes eintragen (die ens18 durch eure Netzwerkkarte erstezen)

iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o
%i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens18 -j MASQUERADE

Nun auf save

Bildschirmfoto vom 2022-12-01 09-45-43.png

und apply config klicken

Bildschirmfoto vom 2022-12-01 09-20-42.png

Dann sieht das ganze so aus.

Bildschirmfoto vom 2022-12-01 09-28-34.png

Damit ist die Installation abgeschlossen