Qubes OS - WireGuard VPN zur eigenen FRITZ-Box
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:
- einen einzigen *Net Cube der alle WireGuard-Konfigurationen enthält, die individuell ausgewählt und gestartet werden
- 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 Menu → Templates → Xfce Terminal.
Im Terminal kann das WireGuard-Tool installiert werden.
sudo dnf install wireguard-tools -y
sudo shutdown -h now
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.
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
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.
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.
nano /rw/config/rc.local
In diese Datei werden die beiden Zeilen eingefügt:
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.
sudo wg-quick up /etc/wireguard/wg_config.conf
ping <IP-ADRESSE-DER-FRITZ-BOX>
Die Verbindungsdetails lassen sich anzeigen mit.
sudo wg
wg-quick down /etc/wireguard/wg_config.conf
administration
- VM enthält alle Apps
- VM verwendet die Netzwerkverbindung des
wireguard-proxyund damit automatisch den VPN zur FRITZ-Box
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 vonip a | grep -i vivpndns1= 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
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.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Weitere Möglichkeiten mich zu unterstützen findest du 👉 hier
Follow Me
Source
Foto von Dean Pugh auf Unsplash





