WireGuard auf Proxmox UI
Installationszeit | ca. 15 Minuten je nach Internetverbindung |
---|---|
Stand | 02.01.2022 |
ioBroker Forum Link | https://forum.iobroker.net/topic/49177/anleitung-wireguard-mit-wireguard-ui-auf-proxmox |
Voraussetzungen:
- Proxmox als Grundgerüst
- Einen Dual-Stack Internetanschluss (also kein DS-Lite, hierzu kommt bei Bedarf eine gesonderte Anleitung)
- Portfreigabe im Router (Protokoll: UDP, Port: 51820 , auf die IP Adresse des neuen Linux Containers) !!! Keine Portfreigabe auf den im späteren Verlauf erstellten Port 5000 setzen !!!
- Falls keine feste IP vorhanden ist benötigt ihr einen Hostnamen. Das kann z.b. MyFritz sein oder DynDns, Hauptsache ein Dienst mit dem ihr auf eure aktuelle IP verweisen könnt.
Anleitung:
[Linux Container/CT Anlegen] Zunächst müssen wir das LXC Template für Ubuntu 21.04 oder 21.10 installieren. Anschließend basierend auf diesem Image einen neuen Container anlegen einen Hostnamen vergeben sowie ein Passwort Danach das Image auswählen Und mit den Standardwerten bis zur Netzwerkkonfiguration weitermachen. Nun noch eine IP vergeben und der erste Teil wäre geschafft.
[WireGuard & WireGuard-UI Installation] Ab hier wird auf dem Proxmox Host gearbeitet!
Zunächst passen wir die Konfiguration des neu erstellten Containers an. Dazu mit dem Befehl
nano /etc/pve/lxc/100.conf
(!! 100 durch die Nummer bei eurem Container ersetzen !!)
die Konfigurationsdatei anpassen. Und diese beiden Zeilen am Ende der Datei anhängen:
lxc.cgroup.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net dev/net none bind,create=dir
Nach dem Einfügen das Fenster mit STRG + X --> Enter speichern und verlassen.
Danach auf dem Proxmox Host die Zugriffsrechte für den Tunneladapter freigeben mit dem Befehl:
chown 100000:100000 /dev/net/tun
Ab hier wird auf dem neuen Container gearbeitet!
Bevor wir den Container starten, müssen wir 2 Einstellungen vornehmen damit Docker auf dem Container lauffähig ist. Dazu müssen wir in den Container Einstellungen die Features bearbeiten und die Punkte keyctl und Nesting aktivieren. Danach können wir unseren LXC/CT starten und uns anmelden.
Ich habe alle zur Installation notwendigen Befehle und Konfigurationsdateien in einem kleinen Shell-Skript zusammengefügt. Dazu also folgendes ausführen:
wget https://raw.githubusercontent.com/KleSecGmbH/ioBroker/main/wireguard/installer-pve.sh -O installer-pve.sh && bash installer-pve.sh
Der Installer läuft bis zu diesem Punkt automatisch durch. Die abgefragten Punkte wie im Bild gezeigt beantworten. Wer nach der Wireguard Installation einen QR-Code sieht, hat bis dato schonmal alles richtig gemacht. Der angezeigte QR-Code kann soweit ignoriert werden, da wir mit WireGuard UI arbeiten.
[WireGuard-UI Konfiguration] Nachdem wir erfolgreich WireGuard und WireGuard-UI Installiert haben, können wir WireGuard-UI Konfigurieren.
Dazu rufen wir http://IP-AdresseVomLinuxContainer:5000 auf und melden uns mit Benutzer und Passwort admin an.
Zunächst müssen wir den WireGuard Server Konfigurieren. Dazu muss in den Global Settings unter dem Punkt Endpoint-Address euer Hostname(MyFritz, DynDns) oder eine feste IP (falls vorhanden) Bei Fragen hierzu siehe oben! Nachdem wir Hostname/IP eingegeben haben und auf Apply Config geklickt haben, müssen wir noch einen kleinen Punkt durchführen um Clients anlegen zu können.
Dazu im Fenster WireGuard Server unter dem Punkt Post Up Script folgendes eintragen:
iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
und um Feld Post Down Script folgendes eintragen:
iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Danach speichern und Apply Config drücken.
Clients anlegen:
Ab hier dürfte alles recht selbsterklärend sein. Im Menü WireGuard Clients auf New Client drücken Name und Email Konfigurieren und Bestätigen.
Nun bekommt ihr einen Client mit einem QR Code den ihr mit der WireGuard App scannen könnt oder alternativ als Datei zum Download für Desktoprechner.