WireGuard Server mit OPNsense  Part I – Server

WireGuard Server mit OPNsense Part I – Server

Im ersten Teil dieser Blog Post Serie werde ich zeigen wie der WireGuard Server auf einer OPNsense installiert wird. Im zweiten Teil werden wir über die Anbindung der Clients sprechen.

Installation des benötigten Plugins

System -> Firmware -> Plugins

Wir benötigen das Plugin „os-wireguard“. Schnell installieren und danach weiter.

Konfiguration von WireGuard

VPN -> WireGuard -> General

Den Haken bei „Enable WireGuard“ setzen und mit „Save“ speichern.

VPN -> WireGuard -> General -> Reiter Local

Auf das kleine „+“ unten klicken.

  • „Name“: Bezeichnung für den Server
  • „Public Key“: Leer lassen, wird nach dem speichern automatisch befüllt.
  • „Private Key“: Leer lassen, wird nach dem speichern automatisch befüllt.
  • „Listen Port“: Sucht euch einen Port außerhalb der well known Ports aus.
  • „DNS Server“: Tragt hier euren internen DNS ein.
  • „Tunnel Address“: Die IP die ihr hier eintragt wird für das Gateway, den WireGuard Server benutzt. Das Subnetz bestimmt die Adressrange auch für die Clients! Ich empfehle als das Netzwerk für die Clients etwas aus der Range 100.64.0.0–100.127.255.255 zu nehmen. Diese Range wird unter Carriern verwendet, ist aber in Unternehmens- oder Privatnetzen eher selten zu sehen. Damit garantieren wir aber das es zu keinem IP Konflikt kommt wenn ihr mit eurem VPN unterwegs seid.

Speichern.

VPN -> WireGuard -> General -> Reiter Endpoints

Jetzt richten wir die Clients ein. Jeder Client der sich mit dem WireGuard Server verbinden soll muss explizit auf dieser Seite eingetragen werden. Jeder Client bekommt außerdem eine feste IP im VPN Netz zugewiesen.

Auf das kleine „+“ unten klicken.

  • „Name“: Einen Namen für den Client vergeben
  • „Public Key“: Lassen wir erstmal leer, wird im zweiten Teil dieser Reihe eingetragen.
  • „Shared Secret“: Hier könnte man einen PSK hinterlegen, dieser müsste pro Client eindeutig sein. Ist aber optional. Muss in Base64 codiert sein und 32byte länge haben.
  • „Allowed IPs“: Hier müsst ihr alle Netze eintragen, die über die VPN Tunnel erreichbar sein sollen. Zusätzlich muss noch die eindeutige IP für den Client angegeben. In meinem Fall möchte ich das Netz 10.10.0.0/16 aus dem VPN heraus erreichen. Mein Client soll die IP 100.65.0.2/32 benutzen.
  • „Endpoint Address“: Wird leer gelassen, da diese ja zu 99% variabel sein wird.
  • „Endpoint Port“: Gilt das gleiche wie für die Address.
  • „Keepalive“: Leer lassen, dann wir der Standard verwendet.

Jeden Client den Ihr angelegt habt müsst ihr nun noch dem Server zuweisen. Hierzu müssen wir wieder zurück zu dem Reiter „Local“ und unseren eben erstellten Server editieren. Ihr seht, dass Public- und Privatekey nun ausgefüllt sind. Unsere Clients werden unten unter „Peer“ hinzugefügt.

Firewall anpassen

Firewall -> Rules -> Euer WAN Interface

Wir müssen nun noch eine neue Regel hinzufügen, die eingehenden Traffic auf den Port (UPD) den wir beim erstellen des WireGuard Servers angelegt haben erlaubt. Einmal auf „Add“ klicken.

  • „Protocol“: UDP
  • „Destination port range“: other, from 51820 to 51820. Die Ports müssen die gleichen sein wie in der WireGuard Server konfiguration!
  • „Description“: Vernünftige Beschreibung der Regel.

Firewall -> Rules -> WireGuard

In diesem Menüpunkt könnt ihr noch kleinteiliger die Zugriffe der Clients anpassen. Wir haben als wir die Clients angelegt haben IP-Netze eingetragen die erlaubt sind. Wenn euch diese Einstellungen schon langen müsst ihr hier nur eine neue Regel erstellen, die alles überallhin erlaubt. Einmal auf „Add“ klicken und danach direkt auf Save. Jetzt könnt ihr später alle IP’s der Netzte aus der Client Konfiguration erreichen. Wenn ihr wollt geht sogar das komplette Routing durch den VPN Tunnel. Das kommt dann aber im zweiten Teil.

NAT Konfiguration

Firewall -> NAT -> Outbound

Hier müsst ihr einmal den Modus mindestens auf “Hybrid outbound NAT rule generation” setzen damit ihr ein eigenes Outbound NAT erstellen könnt. Danach auf das kleine “+” klicken.

“Interface”: WireGuard
Den Rest könnt ihr lassen wie er ist oder entsprechend eurer Interfaces / VLANs anpassen.

Damit ist die erste, grundlegende Einrichtung abgeschlossen. Im zweiten Teil konfigurieren wir dann die Clients.