OPNsense: WireGuard VPN

~ 0 min
2025-02-25 22:41
Seit Version 24.1.5 hat OPNsense einen Wireguard Peer-Generator mit Config-Export und QR-Code.
WireGuard Grundlagen: uwe-kernchen.de/phpmyfaq/index.php?solution_id=1380

Beispiel-Daten:
Tunnelnetz: 10.10.10.0/24
Standort A:

  • OPNsense-A Version:25.1.1
  • IP-Netz: 192.168.10.0/24
  • IP Tunnelnetz: 10.10.10.1
Wireguard Client - Server einrichten

1) WireGuard Instance auf OPNsense-A einrichten -> WG-Server

  • VPN –> WireGuard –> Instances: “Enable WireGuard” + Apply
  • Add Instance
  • Name: “wg-server-51820”
  • Public/Private-Keypair erzeugen lassen (auf das Zahnradsymbol klicken).
  • Listen port: 51820/udp (o.a.)
  • Tunnel address: erste IP-Adresse des Transfer-Netzes (Bsp: 10.10.10.1/24)
  • Peers: Nothing
  • Save.

Jeder WireGuard-Server kann mehrere Clients (Peers) beinhalten. Man benötigt also bei mehreren Clients nur einen WireGuard-Server.
Haben Verbindungen abweichende Ports, muß dafür ein separater Server erstellt werden.

2) WireGuard Peer auf der OPNsense-A einrichten (Peer generator) -> WG-Client

  • VPN –> WireGuard –> Peer generator
  • Instance <wg-server-51820> aus Punkt 1 wählen
  • Endpoint: 170.5.40.3:51820 (Endpoint address:Port von OPNsense A)
  • Name: “Handy-1”
  • Public/Private-Keypair erzeugen lassen (auf das Zahnradsymbol klicken).
  • Address: 10.10.10.2/32  (Tunnel-IP der Nebenstelle)
  • Pre-shared key: optional
  • Allowed IPs: 192.168.10.0/24 (IP-Netze der eigenen Seite, alles erlaubt: 0.0.0.0/0)
  • Keepalive interval: 25
  • Config kopieren, QR-Code sichern
  • Save + Apply

Diese Konfig kann man nun für einen Client nutzen.
Weitere Clients einrichten: Tunnel-Address hoch zählen, neuen Name vergeben, sonst identisch.

3) Assign und Enable WG-Interface "wg"
  (bei Client - Server nicht erforderlich)

- Interface - Assign - WG-Server + Enable
- Interface -> WAN:

  • Block private networks: deaktivieren
  • Block bogon networks: deaktivieren

4) Firewall
Rule "WireGuard (Group) gilt für alle WireGuard-Instanzen.

  • Zugriff von der Gegenstelle zum LAN:
    Rule ALLOW, Interface: "wg" (wenn Interface Assigned) oder "WireGuard (Group)",
    Source: "WG net" oder “Single host or Network” auswählen und IP-Netz der Gegensteite (192.168.0.0/24)
  • Zugriff vom LAN auf die Gegenstelle erlauben
    Rule ALLOW, Interface: LAN
    Source: “Single host or Network” auswählen und lokales IP-Netz (192.168.100.0/24)
    Destination: “Single host or Network” auswählen und IP-Netz der Gegenseite (192.168.0.0/24)
  • Nur für die Server-Seite:
    Rule ALLOW, Interface: WAN, Protocol: UDP, 
    Source: “Single host or Network” auswählen und wenn vorhanden: feste öffentliche IP der Gegenstelle eintragen. Bei dynamischen Adressen “WAN network” auswählen.
    Destination: "WAN address" oder “Single host or Network” auswählen und lokales IP-Netz (192.168.100.0/24)
    Dest.Port= 51820

“Normalization rule” anlegen

  • Firewall –> Settings –> Normalization:”  Add Setting
  • Interface: WireGuard (Group)
  • Direction, Protocol, Source, Destinateion: any
  • Description: “Wireguard MSS Clamping Site A”
  • Max mss: 1380 oder weniger (“subtract at least 40 bytes from the Wireguard MTU”)
  • Save + Apply changes

5) Test

  • VPN -> WireGuard -> Status zeigt:
    * Wireguard-Server Instance (up)
    * WG Peer(s) (zeigt bei Verbindung last Handshake und Traffic)

Wireguard Server - Server einrichten

Standort B: (Beispiel-Daten)

  • OPNsense-B 25.1.1
  • IP-Netz: 192.168.20.0/24
  • IP Tunnelnetz: 10.10.10.2

1) WireGuard Instance auf OPNsense-A einrichten - Server A
  siehe Punkt 1) oben

2) WireGuard Instance auf OPNsense-B einrichten - Server B

  • VPN –> WireGuard –> Instances: “Enable WireGuard” + Apply
  • Add Instance
  • Name: “wg-server-b”
  • Public/Private-Keypair erzeugen lassen (auf das Zahnradsymbol klicken).
  • Listen port: 51820/udp (o.a.)
  • Tunnel address: freie IP-Adresse des Transfer-Netzes (Bsp: 10.10.10.2/24)
  • Save.

3) WireGuard Peer auf der OPNsense-A einrichten (ohne Peer generator)
  (Client für OPNsense B)

  • VPN –> WireGuard –> Peers
  • Name: “wg-peer-zu-opnsense-b”
  • Public Key: Kopiere public key von Instanz der OPNsense-B
  • Pre-shared key: optional
  • Allowed IPs: 10.10.10.2/32 and 192.168.20.0/24 (Tunnel-Adresse und LAN address range der OPNsense-B) => Routen zur Seite B
  • Endpoint address: 10.1.102.252 (Public WAN IP)
  • Endpoint port: 51820 (o.a.)
  • Instances <wg-server-51820>
  • Keepalive interval: 25
  • Save + Apply

4) WireGuard Peer auf der OPNsense-B einrichten (ohne Peer generator)
  (Client für OPNsense A)

  • wie Punkt 3)
  • Name: “wg-peer-zu-opnsense-a”
  • Public Key: Kopiere public key von Instanz der OPNsense-A
  • Allowed IPs: 10.10.10.1/32 and 192.168.10.0/24 => Routen zur Seite A
  • Instances <wg-server-b>

5) Assign und Enable WG-Interface "wg"
  (wie Punkt 3) oben, auf beiden Seiten)

6) Firewall
  (wie Punkt 4) oben, auf beiden Seiten)

7) Test

  • VPN -> WireGuard -> Status - wie oben (auf beiden Seiten)
  • PING auf Transfernetz und LAN Gegenseite
Quellen:
Durchschnittliche Bewertung 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.