WireGuard ist derzeit der hippe Scheiß, wenn man sich auf einer FritzBox von unterwegs ins eigene Netz einwählen will. Es kommt aus der Linux Welt und daher gibt es unter Windows einige Besonderheiten zu beachten.

WireGuard ist von Haus aus unter Windows nur als Admin User sinnvoll zu bedienen. Es wird im Default eine GUI installiert, die man als non-Admin aber nicht aufrufen kann. Das ist leider systembedingt, da Wireguard immer ein neues Netzwerkinterface erzeugt, sobald ein Tunnel aufgebaut wird.

Wenn man das Netz jetzt durchstöbert findet man relativ häufig den Vorschlag einen Registry Eingriff zu machen und dem non-Admin dann zusätzlich zur Gruppe Users die Gruppe Netzwerkoperatoren zuzuweisen. Das funktioniert zwar, hat für mich aber den Haken, dass dem User hier allgemein höhere Rechte (zwar nicht Admin, aber deutlich mehr als User) zugesprochen werden. Das äußert sich unter anderem darin, dass bei der jeder UAC Anfrage (also eigentlich die Abfrage nach Admin Credentials wegen bspw. einer Programminstallation) in der Liste der möglichen User auch Netzwerkoperatoren aufgeführt werden, also auch der „non-Admin“ den wir mit höheren Rechten ausgestattet haben. Das schadet in den meisten Fällen nicht, weil der Netzwerkadministrator keine Berechtigung für die Installation von Programmen hat, aber es ist aus Ednuser Sicht verwirrend.

Ich habe daher nach einem Ansatz geforscht, der es ermöglicht, mit normalen User Rechten einen Tunnel auf und abzubauen. Und das funktioniert

Rahmenbedingungen

Auch hierfür kann man ganz normal unter Windows (natürlich mit Admin Rechten) das auf wireguard.com verfügbare Client Paket installieren. Als Admin hat man dann auch Zugriff auf die normale GUI (zumindest noch).

Als nächstes braucht man eine VPN Konfigurationsdatei für Wireguard. Ich gehe hier einfach mal davon aus, dass ihr diese aus einer FritzBox oder auf anderem Wege erzeugt. Für den Rest der Beschreibung gehe ich von „Beispiel.con“ aus.

In der GUI kann man diese Datei dann entsprechend einlesen und sie wird mit dem Namen Beispiel angezeigt. Man sollte die Konfig dann testen. Dafür mit einem Handy Hotspot (oder von einem anderen Internet Anschluß als dem, der als Ziel dient) über die GUI den Tunnel aktivieren und prüfen, ob man Ziele im Heimnetz erreichen kann. Wenn das erledigt ist können wir uns dem non-Admin Zugriff annähern!

Für die weitere Beschreibung gilt darüber hinaus folgendes:

  • Der WireGuard Programmpfad lautet: „C:\Program Files\wireguard\wireguard.exe“
  • Die Konfigurationsdatei ist nach dem Import oben hier abgelegt: „C:\Program Files\WireGuard\Data\Configurations\Beispiel.conf.dpapi“
    Das. .dpapi ist eine verschlüsselte Ablage der Konfigurationsdatei!

Anpassung von Services

Hier macht es schon einmal Sinn einen Terminl mit erhöhten Rechten (also cmd als Admin) auszuführen.

Grundsätzliche legt Wireguard einen Service mit dem Namen Wireguard Manager an. Das ist das TrayIcon/die GUI von Wireguard. Da wir ohne diese arbeiten werden, deaktivieren wir die GUI direkt:

C:\Program Files\wireguard\wireguard.exe /uninstallmanagerservice

Falls die GUI noch geöffnet ist, diese schliessen (/rechte Maustaste Trayicon und dann beenden.

"C:\Program Files\wireguard\wireguard.exe" /installtunnelservice "C:\Program Files\WireGuard\Data\Configurations\FBMS.conf.dpapi"
sc sdset "WireguardTunnel$FBMS" "D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWLOCRRC;;;IU)(A;;RPWPDTRC;;;BU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
sc config "WireguardTunnel$%tunnelname%" start=demand
net start WireguardTunnel$FBMS
net stop WireguardTunnel$FBMS