Zum Inhalt

Qubes OS - WireGuard VPN zur eigenen FRITZ-Box

Rubik’s Cube liegt auf einem geöffneten Laptop im Hintergrund ist der Laptopbildschirm zu sehen

WireGuard -Verbindungen lassen sich wunderbar in Qubes OS als eigenständige Net Cubes anlegen und VMs zu ordnen.


Template für WireGuard-Verbindung

Es wird ein eigenes Template für die WireGuard-Verbindung erstellt. Dieses enthält alle erforderlichen Programme und Tools für WireGuard. Auf Grundlage dieses Templates lassen sich Net Cubes erstellen, die als Netzwerkschnittstelle für die eigentliche VM dienen.

Es gibt mehrere Anwendungsszenarien:

  1. einen einzigen *Net Cube der alle WireGuard-Konfigurationen enthält, die individuell ausgewählt und gestartet werden
  2. mehrere Net Cubes die jeweils nur eine einzige WireGuard-Verbindung beinhalten

Ich verwende die Option 2 mit mehreren Net Cubes. Jede WireGuard-Verbindung wird in eine eigenständige VM gepackt.

Speicherplatz sparen mit minimalen Templates

Es lässt sich Speicherplatz sparen, wenn die minimalen Templates verwendet werden. Dafür ist jedoch der Konfigurationsaufwand am Anfang etwas höher, da alle notwendigen Programme installiert werden müssen.

Es wird das Template fedora-42-xfce verwendet:

In diesem Template sind Programme zu installieren. Dazu klickt man auch das Qube Application MenuTemplatesXfce Terminal.

Im Terminal kann das WireGuard-Tool installiert werden.

sudo dnf install wireguard-tools -y

sudo shutdown -h now

Screenshot wireguard-tools installieren

Screenshot: wireguard-tools installieren


Gib mir gerne einen Kaffee ☕ aus 😀

Gib mir gerne einen Kaffee ☕ aus !

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address:

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Weitere Möglichkeiten mich zu unterstützen findest du 👉 hier


wireguard-proxy

  • VM enthält die gesamte WireGuard-Konfiguration und das WireGuard-Profil mit den Zugangsdaten.
  • VM stellt eine VPN-Verbindung mit der FRITZ-Box her
  • VM stellt den VPN anderen AppVMs als Netzwerkverbindung zur Verfügung.

Screenshot Qube wireguard-proxy erstellen

Screenshot: Qube wireguard-proxy erstellen

Die WireGuard-Konfigurationsdatei muss in diesen neuen Qube kopiert werden.

Warning

Bei dieses VM bleibt nur das Home-Verzeichnis bestehen. Alles andere wird bei einem Neustart auf den Ausgangszustand zurückgesetzt. Es ist deshalb notwendig, dass die WireGuard-Konfigurationsdatei bei jedem Start der VM an die richtige Stelle kopiert wird und WireGuard automatisch gestartet wird.

Die Datei ist nach dem erfolgreichen Kopieren in das Home-Verzeichnis des Benutzers zu kopieren.

wg_config.config ins Home-Verzeichnis kopieren
cp /home/user/QubesIncoming/<name>/wg_config.conf /home/user/

Die Datei wg_config.conf muss im Home-Verzeichnis /home/user/ verbleiben und darf nicht gelöscht werden.

Die Anweisung zum Kopieren der wg_config.conf und das Starten von WireGuard wird in eine persistente Datei geschrieben, die bei jedem Neustart der VM ausgeführt wird.

/rw/config/rc.local
nano /rw/config/rc.local 

In diese Datei werden die beiden Zeilen eingefügt:

Inhalt der /rw/config/rc.local
cp /home/user/wg_config.conf /etc/wireguard/
wg-quick up /etc/wireguard/wg_config.conf

WireGuard ist damit eingerichtet und die Verbindung zur FRITZ-Box kann hergestellt werden.

VPN-Verbindung anschalten
sudo wg-quick up /etc/wireguard/wg_config.conf
PING
ping <IP-ADRESSE-DER-FRITZ-BOX>

Die Verbindungsdetails lassen sich anzeigen mit.

WireGuard-Verbindung anzeigen
sudo wg
VPN-Verbindung ausschalten
wg-quick down /etc/wireguard/wg_config.conf

administration

  • VM enthält alle Apps
  • VM verwendet die Netzwerkverbindung des wireguard-proxy und damit automatisch den VPN zur FRITZ-Box

Screenshot AppVM administration erstellen

Screenshot: AppVM administration erstellen

Die VM kann sofort gestartet werden und in einem Terminal ein Ping auf die FRITZ-Box abgesetzt werden.

ping <IP-ADRESSE-DER-FRITZ-BOX>

Der Net cube der VM kann während des laufenden Betriebs gewechselt werden. Das kann dann notwendig werden, wenn der Zugang zu bestimmten Websites geblockt ist. Anstatt die Firewall der VM wireguard-proxy zu öffnen, kann auf einen anderen Proxy oder auf den Standard Net cube: sys-firewall gewechselt werden.

VM klonen

Die VM administration kann einmalig eingerichtet werden, also alle Apps und Konfigurationen erstellen. Eine Verbindung mit dem YubiKey / Nitrokey (Affiliate Link 🛒) herstellen.

Diese VM kann dann einfach geklont werden und als neue Administrations-VM genutzt werden.

Eine weitere Möglichkeit ist die Synchronisation aller wichtigen Ordner und Dateien über ein Git-Repository.
👉 Konfigurationsdateien im Home Directory mit Git zwischen macOS und Kubuntu Linux synchronisieren


wireguard-proxy - Firewall konfigurieren

Die Firewall der VM wireguard-proxy wird so angepasst, dass alle Verbindungen nur zur FRITZ-Box zugelassen werden. Damit wird der gesamte Traffic nur durch den VPN-Tunnel geleitet.

IP-Adresse der wireguard-proxy anzeigen lassen. Dafür muss die administration im Hintergrund laufen.

ip a | grep -i vif

Die Firewall-Konfiguration ist anzupassen

sudo nano /rw/config/qubes-firewall-user-script

Der Abschnitt ist einzufügen.

  • virtualif = Die oben angezeigte Adresse von ip a | grep -i vi
  • vpndns1 = DNS-Server der FRITZ-Box oder IP-Adresse eines Pi-holes.
# replace 10.137.0.47 with the IP address of your vif* interface
virtualif=xxx.xxx.xxx.xxx
vpndns1=xxx.xxx.xxx.xxx
iptables -F OUTPUT
iptables -I FORWARD -o eth0 -j DROP
iptables -I FORWARD -i eth0 -j DROP
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -F PR-QBS -t nat
iptables -A PR-QBS -t nat -d $virtualif -p udp --dport 53 -j DNAT --to $vpndns1
iptables -A PR-QBS -t nat -d $virtualif -p tcp --dport 53 -j DNAT --to $vpndns1

Der ausgehende Traffic wird nur zur FRITZ-Box erlaubt. Die DynDNS-Adresse steht fast am Ende der wg_config.conf in der Zeile Endpoint.

Screenshot AppVM wireguard-proxy Firewallregel

Screenshot: AppVM wireguard-proxy Firewallregel

Weitere optionale Anpassungen sind möglich, die in der Anleitung von Mullvad beschrieben sind.


Quelle

Es wurde die Anleitung von Mullvad als Grundlage für dieses Setup verwendet.


Gib mir gerne einen Kaffee ☕ aus 😀

Gib mir gerne einen Kaffee ☕ aus !

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address:

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Weitere Möglichkeiten mich zu unterstützen findest du 👉 hier

Source

Foto von Dean Pugh auf Unsplash