Website-Icon adminForge

WireGuard VPN Server mit Web Interface einrichten

Wer aktuell OpenVPN und IPsec als VPN Software einsetzt und sich schon immer mal mit WireGuard auseinander setzen wollte, dem helfe ich mit diesem Tutorial auf die Sprünge.

WireGuard ist eine freie Software zum Aufbau eines virtuellen privaten Netzwerkes (VPN) über eine verschlüsselte Verbindung.

WireGuard ist im Aufbau wesentlich einfacher gestaltet als beispielsweise OpenVPN und verwendet nur ein eingeschränktes Set an Algorithmen. So wird unter anderem für den Schlüsselaustausch das Verfahren Curve25519 und für die eigentliche Verschlüsselung ChaCha20 verwendet.

Vorteile von WireGuard zusammengefasst:

Was wird für dieses Tutorial benötigt?

Ziel in diesem Tutorial?

Punkt 1: Debian Pakete installieren

Quelle: https://www.wireguard.com/install/

Wir installieren alle nötigen Pakete und wechseln den Ordner.

Punkt 2: Firewall Port öffnen

Der Port 51820 für das UDP Protokoll muss auf dem Server erreichbar sein. Beispielsweise so zu öffnen:

Punkt 3: IP Forwarding aktivieren

Das IP Forwarding sorgt dafür, dass alle Pakete der WireGuard-Schnittstelle weitergeleitet werden.

Punkt 4: WireGuard UI Startscript erstellen

Dieses Startscript wird von der Systemd Service Unit (Punkt 5) verwendet um WureGuard UI zu staren und die Datenbank im Ordner /etc/wireguard/db/ abzulegen.

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!

Wir machen das Script ausführbar.

Punkt 5: WireGuard UI

Quelle: https://github.com/ngoduykhanh/wireguard-ui

Zuerst legen wir die Systemd Service Unit an.

Nun legen wir das WireGuard UI Download und Update Script an.

Jetzt können wir das WireGuard UI Update Script das erste Mal ausführen. Der Download startet automatisch und das Web Interface von WireGuard wird gestartet.

Punkt 6: WireGuard Konfigurationsdatei von Systemd überwachen lassen

Die folgenden beiden Systemd Units erstellen wir um die WireGuard Konfiguration wg0.conf zu überwachen und den Service automatisch bei Änderung neustarten zu lassen.

Punkt 7: Dienste aktivieren und starten

Punkt 8: WireGuard UI öffnen und einstellen

  1. Das WireGuard UI öffnen wir nun im Webbrowser: http://<PUBLIC IP>:5000
  2. Melden uns als Benutzer admin und dem Passwort admin an
  3. Klicken links im Menü auf Global Settings
  4. Wir prüfen zuerst ob die Endpoint Address stimmt (kann eine Public IP oder Hostname sein)
  5. Nun löschen wir 1.1.1.1 unter DNS Servers
  6. Fügen diese beiden dnsforge.de DNS Server hinzu: 176.9.93.198, 176.9.1.117
  7. Drücken Save
  8. Im Menü gehen wir nun auf Wireguard Server

  9. Damit die VPN Clients auch ins Internet können, tragen wir bei Post Up Script diese Zeile ein (anstelle eth0 trage dein öffentliches Interface vom Server ein):
    iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  10. Bei Post Down Script (anstelle eth0 trage dein öffentliches Interface vom Server ein):
    iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
  11. Save anklicken
  12. Im Menü auf Wireguard Clients gehen
  13. Oben rechts auf New Client klicken
  14. Einen Namen eingeben
  15. Email kann auch leer bleiben
  16. IP Allocation ist die IP, die der Client erhält (WireGuard UI zählt die IP automatisch hoch für jeden neuen Client)
  17. Allowed IPs ist das Netzwerk, welches der Client über den VPN Tunnel erreichen darf. Dort tragt ihr zusätzlich 10.252.1.0/24 ein. Default ist das komplette Internet 0.0.0.0/0 und somit auch das Routing des gesamten Traffics durch den Tunnel hinterlegt. Ihr könnt dort auch nur eurer VPN Netzwerk eintragen und der normale Internet Traffic geht dann nicht mehr durch den Tunnel.
  18. Mit Use server DNS werden die WireGuard Nameserver im Client verwendet
  19. Auf Submit drücken
  20. Um alles zu aktivieren drücken wir oben rechts auf Apply Config dann auf Apply

Der WireGuard Server ist fertig konfiguriert und eine erste Client-Konfiguration wurde erstellt.

Punkt 9: Android App installieren und einrichten

  1. Wir installieren uns aus dem F-Droid oder Google Play Store die WireGuard App (gibt es auch für iOS):
    https://f-droid.org/en/packages/com.wireguard.android
    https://play.google.com/store/apps/details?id=com.wireguard.android
  2. Öffnen die App und klicken unten rechts auf das Plus Zeichen
  3. Nun drücken wir auf VON QR_CODE SCANNEN und lesen den QR Code des erstellten Clients ein
  4. Der Tunnel erhält nun einen Namen
  5. Wir klicken auf den Tunnel und aktivieren diesen am Schalter
  6. Der Tunnel ist erfolgreich aufgebaut wenn ihr unter Transfer ein paar gesendete Daten seht
  7. Im Webinterface unter dem Menüpunkt Status seht ihr die aktive Verbindung

Punkt 10: Windows Client einrichten

Der Windows Client lässt sich hier herunterladen: https://www.wireguard.com/install/ (auch für andere Betriebssysteme werdet ihr dort fündig).

  1. Im WireGuard Webinterface auf Download klicken
  2. Startet WireGuard
  3. Klickt auf Tunnel hinzufügen und wählt eure test.conf Datei aus
  4. Nun klicken wir auf Aktivieren
  5. Der Tunnel ist nun Aktiv und es werden Daten übermittelt
  6. Automatisch verbinden bei Windows Start erreichen wir mit diesem Befehl – Eingabeaufforderung als Administrator öffnen (einmalig ausführen reicht!):
    wireguard.exe /installtunnelservice "C:\Program Files\WireGuard\Data\Configurations\test.conf.dpapi"

Punkt 11: Absichern

Auf dem Server bearbeiten wir nun unser Startscript und setzen folgende bind-address.

Das default Passwort admin ändern wir in dieser Datei ab.

Nun starten wir den WireGuard UI Dienst neu.

Ab sofort ist euer Webinterface unter http://10.252.1.0:5000 mit eurem neuen Passwort erreichbar.

 

Euer adminForge Team

Das Betreiben der Dienste, Webseite und Server machen wir gerne, kostet aber leider auch Geld.
Unterstütze unsere Arbeit mit einer Spende.
13
Die mobile Version verlassen