Die Open Source Firewall OPNsense unterstützt mehrere Technologien zur Einrichtung von VPN (Virtual Private Network) Verbindungen.
Neben IPsec und OpenVPN gibt es seit OPNsense Version 19.7 die Möglichkeit ein VPN mit WireGuard einzurichten. In diesem Artikel zeigen wir die Konfiguration des WireGuard VPN Dienstes auf einer Firewall mit OPNsense 25.1, damit Roadwarrior Benutzer Zugriff auf das interne (Firmen-)Netzwerk hinter der OPNsense Firewall ermöglicht wird.
Zur Einrichtung des VPNs sind in diesem Abschnitt die folgenden Schritte beschrieben:
Konfiguration der WireGuard Instance auf OPNsense
Generieren der Peer Konfigurationen
Firewall Regeln WAN Verbindung
Firewall Regeln WireGuard Verbindung
WireGuard Integration seit OPNsense 24.1
Seit dem Release von OPNsense 24.1 ist WireGuard VPN nun offiziell standardmäßig installiert und muss nicht mehr als Plugin ergänzt werden.[1]
Konfiguration von WireGuard auf OPNsense
Die folgenden Screenshots zeigen die Konfiguration von WireGuard:
Klicken Sie auf VPN -> WireGuard und dann auf den Tab Instances.
Hier erfolgt die Konfiguration für die OPNsense Instanz. Klicken Sie auf das + Symbol.
Geben Sie einen Namen an, klicken Sie auf das Zahnrad-Symbol neben Public Key um ein Keypaar zu erzeugen.
Legen Sie den Port, die Tunnel Adresse des OPNsense Endpoints fest und klicken Sie anschließend auf Save. Die WireGuard Instanz wurde erstellt.
WireGuard Interface erstellen
In diesem Konfigurationsbeispiel wird WireGuard einem Interface zugewiesen. Dies wird von den Entwicklern empfohlen, muss aber nicht gemacht werden. Die Firewall Regeln werden dann statt für das WG0 Interface für das automatisch erstellte Interface "WireGuard (Group)" definiert.
Gehen Sie zum Menü Interfaces -> Assignments und wählen Sie im Dropdownmenü das wg0 Interface aus.
Geben Sie eine Bezeichnung ein und klicken Sie anschließend auf Add.
Das Interface wurde angelegt, klicken Sie auf Save.
Einige Einstellungen müssen nun noch gesetzt werden. Klicken Sie auf [WG0].
Setzen Sie den Haken bei Enable und scrollen Sie nach unten.
Klicken Sie auf Save.
Zum Aktivieren müssen Sie noch Apply changes klicken.
Starten Sie im Dashboard der OPNsense den WireGuard VPN Dienst neu.
Firewall Regel für WAN
Die folgenden Screenshots zeigen die Konfiguration einer Firewall-Regel, die den Zugriff auf den des WireGuard VPN Dienstes auf der OPNsense Firewall erlaubt:
Klicken Sie auf Firewall -> Rules -> WAN und anschließen rechts oben auf den orangenen Button + ADD.
Wählen Sie Protocol UDP ein und scrollen Sie nach unten.
Geben Sie bei Destination Port Range den zuvor gewählten Port in den Feldern from: und to: an. Geben Sie eine Bezeichnung für die Regel im Feld Description an und klicken Sie auf Save.
Klicken Sie auf Apply changes.
Die neue Firewall Regel ist konfiguriert und aktiv.
Firewall Regel für WireGuard
Die folgende neue Regel erlaubt dem verbundenen VPN Peer ("Client") den vollständigen Zugriff auf die Netzwerke von OPNsense. In diesem Konfigurationsbeispiel wurde vorab WireGuard einem Interface WG0 zugewiesen:
Klicken Sie auf Firewall -> Rules -> WG0 und anschließend auf den orangen Button +.
Wählen Sie bei Source den Alias __wireguard_network aus und scrollen sie nach unten.
Geben Sie eine Bezeichnung für die Regel im Feld Description an und klicken Sie auf Save.
Klicken Sie auf Apply. Die Firewall Regeln werden nun neu geladen und aktiviert.
Normalization Einstellung
Die Normalization Einstellung dient dazu, dass die Pakete korrekt geroutet werden. Abhängig von Ihrer WAN Anbindung müssen unterschiedliche Paketgrößen eingestellt werden.
Gehen Sie zum Menü Firewall -> Settings -> Normalization und klicken Sie auf das +.
Stellen Sie das Interface WG0 ein und geben Sie eine Beschreibung an.
Der Parameter Max mss wird in diesem Fall auf 1380 festgelegt. Klicken Sie anschließend auf Save.
Klicken Sie auf Apply changes.
Die Normalization Regel ist nun aktiv.
Outbound NAT
Standardmäßig ist OPNsense auf Automatic outbound NAT rule generation eingestellt, es können dann keine manuellen Regeln verwendet werden. Stellen Sie diese Einstellung wie folgt um:
Gehen Sie zum Menü Firewall -> NAT -> Outbound' und klicken Sie auf den Radiobutton Hybrid outbound NAT rule generation.
Klicken Sie auf Save.
Klicken Sie auf Apply changes, die Einstellung ist nun geändert.
Wenn Sie Unbound als DNS Server nutzen, starten Sie diesen zur Sicherheit neu.
Peer konfigurieren
Die nachfolgenden Screenshots zeigen exemplarisch die Konfiguration eines Endpoints, der sich via WireGuard zum OPNsense System verbinden darf. Die Konfiguration des Gegenstelle (in diesem Beispiel ein Ubuntu System) finden Sie im Artikel Ubuntu 18.04 als WireGuard VPN Client konfigurieren.
Wechseln Sie zum Reiter Peers des WireGuard Konfigurationsmenüs.
Klicken Sie auf das + Symbol um einen Peer anzulegen.
Ein Pre-shared Key kann bequem mit dem Zahnrad Symbol erstellt werden.
Geben Sie alle erforderlichen Einstellungen an, der Public Key wurde auf einem Linux-basierten Desktop erstellt und kopiert. Bei der Zeile Allowed IPs wird dem Peer eine IP-Adresse aus dem Bereich des zuvor erstellten WireGuard Servers zugewiesen.
Unter Instances wurde der zuvor erstellte WireGuard VPN Server ausgewählt. Klicken Sie auf Save.
Der Peer wurde angelegt, prüfen Sie die Checkbox bei Enabled in der Zeile des Peers, setzen Sie den Haken bei Enable WireGuard und klicken Sie auf Apply.
Zurück im Reiter Instances muss nun noch der neu erstellte Peer dem WireGuard VPN Server zugewiesen werden. Klicken Sie dazu auf das Stift-Symbol.
Wählen Sie im Dropdown-Menü der Zeile Peers den Peer aus.
Sie können anschließend den Status einer Verbindung auch auf der OPNsense Firewall prüfen:
Gehen Sie zum Menü VPN -> WireGuard und anschließend zum Untermenü Status. Hier sehen Sie bei einer erfolgreichen Client-Verbindung dessen Verbindungsdaten, sowie einen Eintrag Handshake.
Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.