WireGuard-VPN auf OPNsense-Firewall einrichten | WindowsPro (2024)

WireGuard-VPN auf OPNsense-Firewall einrichten | WindowsPro (1)Beim Einsatz einer OPNsense-Firewall lässt sich WireGuard als VPN-Server als Alternative zu OpenVPN nutzen. Er hat den Vorteil, sehr schlank und schnell zu sein, zudem gibt es Clients für alle gängigen Betriebssysteme. Die Installation erfolgt als OPNsense-Erweiterung und die Konfiguration über die Web-Konsole fällt nicht schwer.

Der Aufbau einer VPN-Infrastruktur mit WireGuard auf OPNsense erfordert mehrere Schritte:

  • WireGuard installieren
  • WireGuard-Instanz erzeugen und konfigurieren
  • Netzwerk-Interface für den VPN-Server konfigurieren
  • Firewall-Regel für VPN erzeugen
  • WireGuard-Client installieren und anpassen
  • Clients auf dem VPN-Server eintragen
  • Verbindung zum WireGuard-Server testen

WireGuard als Erweiterung hinzufügen

Um ein WireGuard-VPN zu betreiben, muss man es zuerst unter System => Firmware => Erwei­terungen installieren. Diese trägt die Bezeichnung os-wireguard. Nach der Installation ist bei VPN der neue Menüpunkt WireGuard zu finden. Wird er nicht angezeigt, dann hilft eine Aktualisierung des Browser-Fensters.

Neue WireGuard-Instanz anlegen

Zuerst erstellt man auf der Registerkarte Instances unter VPN => WireGuard mit einem Klick auf das Pluszeichen einen neuen WireGuard-Server. Mithin kann man wie bei OpenVPN auch mit WireGuard auf einer OPNsense-Firewall mehrere Server betreiben. Für den neuen Server vergibt man zuerst einen Namen, wie er auf der Oberfläche angezeigt werden soll.

Bei Hörender Port wird der Port angegeben, auf dem der VPN-Server auf Anfragen lauscht. Diesen muss man später auch in der Firewall freischalten. Bei Tunnel address trägt man das Subnetz ein, in dem sich künftig die VPN-Schnittstelle und die Clients befinden.

In unserem Beispiel arbeiten wir mit dem Subnetz 172.16.2.1/24, wobei dann das VPN-Interface die IP-Adresse 172.16.2.1 erhält.

Alle anderen Felder müssen bei der Erstellung nicht ausgefüllt werden. Möchte man die Routing-Regeln selbst erstellen, dann kann man hier noch Disable routes anhaken. Nach dem Speichern wird mit Anwenden die Konfiguration des Servers in OPNsense gesichert.

Durch das Speichern erstellt OPNsense automatisch einen öffentlichen Schlüssel für den VPN-Server. Dieser wird später für den Handshake mit den Clients benötigt.

Öffnet man die Konfiguration des Servers erneut, dann sind bei Öffentlicher Schlüssel und Privater Schlüssel die beiden Felder automatisch ausgefüllt. Hier markiert man den öffentlichen Schlüssel und kopiert ihn in eine Textdatei, weil wir ihn später noch einmal benötigen.

Im Anschluss kann man WireGuard unter Allgemein aktivieren, was man wiederum mit Anwenden bestätigt muss.

Netzwerkschnittstellen für WireGuard konfigurieren

Um das VPN mit der OPNsense zu verbinden, ist unter Schnittstellen noch die Konfiguration des VPN-Interfaces erforderlich. Bei Zuweisungen sind die vorhandenen Schnittstellen zu sehen. Hier erzeugt man das neue Interface und weist dieses an WireGuard-VPN zu.

Durch einen Klick auf das neue Interface öffnet sich das Fenster mit dessen Konfiguration. Hier aktiviert man diese über die entsprechende Checkbox. Zudem ist es sinnvoll, an dieser Stelle auch gleich Verhindere die Schnittstellenentfernung zu setzen, um ein versehentliches Löschen zu verhindern.

Für die Namensauflösung im internen Netzwerk kann man Unbound DNS auf OPNsense einrichten.

Firewall-Regeln für WireGuard-VPN erstellen

Als nächstes erstellt man unter Firewall => Regeln => WAN eine Regel, die den Zugriff über das Internet auf den VPN-Server gestattet.

Beim Definieren einer neuen Regel wählt man die Aktion Erlauben und die Schnittstelle WAN aus. Bei Richtung entscheidet man sich für die Option in, bei TCP/IP-Version für IPv4, bei Protokoll für UDP und bei Quelle Jeglich.

Wichtig ist es, bei Zielportbereich unter von und an den Port anderer zu wählen und die Portnummer anzugeben, die man bei der Erstellung des Servers angegeben hat. Sie ist unter VPN => WireGuard zu finden. An dieser Stelle kann man noch die Option Protokolliere Pakete, die von dieser Regel behandelt werden aktivieren.

Mit einer weiteren Regel legt man fest, wie der Datenverkehr der VPN-Clients zum internen Netzwerk verlaufen soll. Wählen sich Clients per VPN ein, dann befinden sich diese zunächst im VPN-Netz, dessen IP-Bereich bei der Erstellung des Servers angegeben wurde.

Von hier müssen sie zu den jeweiligen Anwendungen im lokalen Netzwerk kommen. Diese Regeln konfiguriert man über Firewall => Regeln => <WireGuard-Schnittstelle>. Generell ist es empfehlens­wert, die Regeln so zu gestalten, dass die VPN-Clients nur auf die Geräte zugreifen dürfen, die sie tatsächlich brauchen.

Dazu wählt man beim Erstellen einer neuen Regel unter Aktion die Option Erlauben und bei Schnittstelle jene von WireGuard aus. Bei Richtung entscheidet man sich für in und bei Protokoll für any, und bei Quelle und Ziel kann man jeglich auswählen, wenn man den Zugang zu sämtlichen Ressourcen im Netz zulassen möchte.

WireGuard-Clients installieren und anpassen

Im Anschluss daran installiert man den WireGuard-Client, zum Beispiel in Windows. Danach kann man mit Tunnel hinzufügen eine neue Verbindung konfigurieren.

Im ersten Schritt vergibt man einen Namen für die VPN-Verbindung. Den Wert für Öffentlicher Schlüssel speichert man wieder in einer Textdatei, da man ihn später auf dem Server eintragen muss.

Bei [Interface] gibt man die IP-Adresse ein, die der Client im VPN-Subnetz erhalten soll. Diese haben wir bereits beim Erstellen des VPN-Servers festgelegt. In unserem Beispiel weisen wir dem Windows-PC die IP-Adresse 172.16.2.11 zu. Bei DNS trägt man entweder einen internen DNS-Server oder die IP-Adresse des VPN-Servers ein.

Bei [PEER] muss man unter Endpoint den Namen oder die IP-Adresse des VPN-Servers inklusive Port angeben. Bei AllowedIPs hinterlegt man, für welche IP-Adressen der Traffic durch den VPN-Tunnel laufen soll. In diesem Beispiel ist dies das Subnetz 10.0.0.0/16, also das LAN, das zur OPNsense-Firewall gehört.

Soll nach einer VPN-Verbindung der ganze Datenverkehr über das VPN gehen, auch jener zum Internet, ist hier die Angabe von 0.0.0.0/0 notwendig.

Bei PublicKey trägt man den öffentlichen Schlüssel des WireGuard-VPN-Servers ein, den wir weiter oben in einer Textdatei gespeichert haben. Den öffentlichen Schlüssel des Clients geben wir hingegen in die Konfiguration des WireGuard-Servers ein.

VPN-Clients in WireGuard konfigurieren

In der Web-Oberfläche von OPNsense konfiguriert man die VPN-Clients auf der Registerkarte Peers unter VPN => WireGuard => Einstellungen. Über das Pluszeichen erstellt man einen neuen Client und legt dessen Namen fest.

In das Feld Öffentlicher Schlüssel kopiert man den Key des Clients. Bei Zugelassene IPs trägt man die IP-Adresse ein, die man dem Client in seiner Konfiguration zugewiesen hat.

Ein Pre-shared key kann in einer produktiven Umgebung sinnvoll sein, in der Testumgebung verzichten wir darauf. Mit Speichern wird der Client erstellt.

Danach wechselt man zu Instances und öffnet die Einstellungen des WireGuard-Servers. Unter Peers setzt man bei dem neuen Client einen Haken, damit der Server diesen bei einer Verbindung akzeptiert.

Danach ist es empfehlenswert, über Lobby => Dashboard den WireGuard-Dienst neu zu starten.

Verbindungsaufbau mit dem VPN-Client

Im Anschluss kann man auf dem Client testweise eine Verbindung aufbauen. Bei Übertragen muss der Wert für empfangene und gesendete Daten ansteigen. Bleibt hier eine 0 stehen, hat der Handshake nicht geklappt.

In diesem Fall sollte man überprüfen, ob der öffentliche Schlüssel für den Server am Client und der des Clients auf dem Server richtig hinterlegt ist. Außerdem muss der Client in den Einstellungen des Servers bei Peers eingetragen sein.

Bei Protokoll sind Informationen zur Verbindung zu sehen und die OPNsense-Firewall zeigt die Verbindungen unter VPN => WireGuard => Diagnose an. Hier sind alle aktiven Clients zu erkennen.

Zusammenfassung

Die Installation von WireGuard auf OPNsense erfolgt durch Hinzufügen einer Erweiterung. Anschließend konfiguriert man dessen Interface und kümmert sich um die Namensauflösung, wobei sich dafür mit Unbound DNS ein weiterer OPNsense-Dienst anbietet.

Anschließend bestimmt man mit Hilfe von Firewall-Regeln, auf welche Ressourcen die Clients zugreifen dürfen. Schließlich richtet man die VPN-Clients ein, wobei dafür die öffentlichen Schlüssel des Servers und Clients wechselseitig in die jeweilige Konfiguration eingetragen werden müssen.WireGuard-VPN auf OPNsense-Firewall einrichten | WindowsPro (15)

WireGuard-VPN auf OPNsense-Firewall einrichten | WindowsPro (2024)
Top Articles
Latest Posts
Article information

Author: Ray Christiansen

Last Updated:

Views: 6412

Rating: 4.9 / 5 (49 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Ray Christiansen

Birthday: 1998-05-04

Address: Apt. 814 34339 Sauer Islands, Hirtheville, GA 02446-8771

Phone: +337636892828

Job: Lead Hospitality Designer

Hobby: Urban exploration, Tai chi, Lockpicking, Fashion, Gunsmithing, Pottery, Geocaching

Introduction: My name is Ray Christiansen, I am a fair, good, cute, gentle, vast, glamorous, excited person who loves writing and wants to share my knowledge and understanding with you.