MeinSBS
· 21 Minuten read

Mullvad VPN auf OPNsense einrichten (Selektives Routing für ein Gerät)

Diese Anleitung leitet den IPv4-Internetverkehr eines einzelnen definierten LAN-Geräts über einen Mullvad-WireGuard-Tunnel. Der lokale Netzwerkverkehr (z. B. zu NAS oder Drucker) sowie der Datenverkehr aller anderen LAN-Geräte verbleiben auf der normalen WAN-Verbindung.

1. WireGuard-Instance anlegen

Am besten meldest du dich gleichzeitig bei Mullvad VPN an und erstellst eine neue WireGuard Konfiguration. Du muss hier den privaten Schlüssel aus dem folgenden Schritt importieren um eine config von der Webseite zu erhalten.

Navigiere zu: VPN → WireGuard → Instances

Klicke auf + und konfiguriere:

Einstellung Wert Erläuterung
Enabled Aktiviert die Instance
Name Mullvad_VPN Eindeutiger Bezeichner
Public / Private Key über Schlüssel-Icon generieren Privat Key im Mullvad-Account eintragen
Listen Port leer Dynamischer Quellport zur Konfliktvermeidung
Tunnel Address 10.xxx.xxx.xxx/32 Zugewiesene Mullvad-IPv4 aus der Mullvad-Konfiguration
Disable Routes Verhindert die automatische Erstellung einer globalen Standardroute
Peers Mullvad_Peer (Wird nach Schritt 2 zugewiesen)

Anmerkung: Bei der aktuellen OPNsense-Anleitung für Selective Routing zu einem externen WireGuard-VPN wird die Gateway-IP nicht einfach als Mullvad-Gateway-IP fest vorgegeben. Stattdessen soll im WireGuard-Instance-Setup eine Gateway-Adresse definiert werden, die als internes Gateway für das WireGuard-Interface dient. OPNsense nennt beispielsweise eine Adresse eine Nummer unterhalb der Tunnel-IP. Diese Adresse wird anschließend auch bei System → Gateways verwendet. Ich habe hier kein Gateway hinterlegt!

2. Mullvad-Peer anlegen

Navigiere zu: VPN → WireGuard → Peers

Klicke auf + und konfiguriere:

Einstellung Wert
Enabled
Name Mullvad_Peer
Public Key <Mullvad-Server-Public-Key>
Allowed IPs 0.0.0.0/0
Endpoint Address (IP des gewählten Mullvad-Servers aus der config, "xy.xy.xy.xy:51820" - Ohne den Port eingeben!)
Endpoint Port 51820
Persistent Keepalive 25
Instances Mullvad_VPN

3. WireGuard aktivieren & Instance verknüpfen

  1. Navigiere zu: VPN → WireGuard → Instances, öffne Mullvad_VPN und wähle bei Peers den Mullvad_Peer aus. Speichern.
  2. Navigiere zu: VPN → WireGuard → General.
  3. Setze das Häkchen bei Enable WireGuard und klicke auf Apply.
  4. Unter VPN → WireGuard → Status den Handshake kontrollieren.

4. WireGuard-Interface zuweisen

Navigiere zu: Interfaces → Assignments

  1. Wähle bei New interface das WireGuard-Gerät (z. B. wg1) aus und klicke auf Add.
  2. Klicke auf das neu erstellte Interface und benenne es in MULLVAD_WAN um.
  3. Konfiguriere:
    • Enable Interface: ✓
    • IPv4 Configuration Type: None
    • IPv6 Configuration Type: None
  4. Speichern und Apply changes.

5. Mullvad-Gateway erstellen

Navigiere zu: System → Gateways → Configuration

Klicke auf + Add und konfiguriere:

Einstellung Wert Erläuterung
Name MULLVAD_GW Name des Gateways
Interface MULLVAD_WAN Zugeordnetes WireGuard-Interface
Address Family IPv4 IPv4
IP Address 10.yyy.yyy.yyy Mullvad-Gateway-IP aus der config
Far Gateway Erforderlich wegen /32-Subnetz
Disable Gateway Monitoring Unchecked (deaktiviert lassen) Gateway-Überwachung muss aktiv bleiben
Monitor IP 10.yyy.yyy.yyy Prüft Erreichbarkeit des Tunnels

6. Aliase anlegen

Navigiere zu: Firewall → Aliases

Alias 1: Zielgerät

  • Name: WG_VPN_Hosts
  • Type: Host(s)
  • Content: Exakte IPv4-Adresse des Zielgeräts aus deinem Netzwerk (z. B. 192.168.1.50), ggf. feste IP oder statisches DHCP.

Alias 2: Lokale Netzwerke

  • Name: LOCAL_NETS
  • Type: Network(s)
  • Content: <DEIN_LAN_NETZ>/24 (bzw. alle internen Subnetze).

7. Firewall-Regeln für Policy-Based Routing (LAN)

Navigiere zu: Firewall → Rules → LAN

Erstelle zwei neue Regeln und platziere diese zwingend ganz oben in der Liste (oberhalb aller Standard-Regeln):

Regel 1 (Bypass für lokalen Datenverkehr – Position 1)

Einstellung Wert
Action Pass
Interface LAN
Direction in
TCP/IP Version IPv4
Protocol any
Source WG_VPN_Hosts
Destination LOCAL_NETS
Gateway default

Regel 2 (Mullvad Policy Routing – Position 2)

Einstellung Wert
Action Pass
Interface LAN
Direction in
TCP/IP Version IPv4
Protocol any
Source WG_VPN_Hosts
Destination any
Gateway MULLVAD_GW

8. Outbound NAT

Navigiere zu: Firewall → NAT → Outbound

  1. Modus auf Hybrid outbound NAT rule generation stellen und speichern.
  2. Mit + Add neue Regel erstellen:
Einstellung Wert
Interface MULLVAD_WAN
TCP/IP Version IPv4
Protocol any
Source WG_VPN_Hosts
Destination any
Translation / target Interface address

Speichern und Apply changes.

9. DNS-Leak Protection (Destination NAT)

Navigiere zu: Firewall → NAT → Destination NAT

Klicke auf + Add:

Einstellung Wert
Interface LAN
TCP/IP Version IPv4
Protocol TCP/UDP
Source WG_VPN_Hosts
Destination any
Destination Port Range 53 (DNS) bis 53 (DNS)
Redirect Target IP 10.yyy.yyy.yyy (DNS aus der config)
Redirect Target Port 53 (DNS)

Speichern und Apply changes.

10. Kill Switch & Fail-Safe

  1. Navigiere zu: Firewall → Settings → Advanced → Gateway Monitoring

    • Setze das Häkchen bei Skip rules (✓ aktiviert).
    • Dadurch wird eine Firewall-Regel mit einem ausgefallenen Gateway nicht angewendet. Ein automatisches Ausweichen auf das Standard-Gateway wird damit verhindert.
  2. Navigiere zu: Firewall → Rules → LAN

    • Erstelle eine neue Block-Regel und platziere sie direkt unter der Mullvad-Routing-Regel (Position 3):
Einstellung Wert
Action Block
Interface LAN
Direction in
TCP/IP Version IPv4
Protocol any
Source WG_VPN_Hosts
Destination any

Erklärung: Fällt das Mullvad-Gateway aus und wird von OPNsense als down erkannt, wird die Mullvad-Routing-Regel (Position 2) übersprungen. Der Datenverkehr des Zielgeräts trifft anschließend auf die nachfolgende Block-Regel (Position 3) und wird verworfen. Dadurch kann der Traffic nicht über nachfolgende Standardregeln auf das normale WAN-Gateway ausweichen.

11. Inbetriebnahme & Funktionstest

  1. State Table zurücksetzen: Navigiere zu Firewall → Diagnostics → States und führe Reset States aus (oder trenne/verbinde die Netzwerkkabel-Verbindung des Zielgeräts).
  2. IP-Adresse prüfen (Zielgerät): Rufe auf dem Zielgerät https://am.i.mullvad.net auf. Es muss eine Mullvad-IP angezeigt werden.
  3. Gegentest (Anderes LAN-Gerät): Rufe dieselbe Seite von einem anderen Gerät auf. Es muss die normale Provider-WAN-IP angezeigt werden.
  4. DNS-Leak-Test: Führe auf https://dnsleaktest.com den Extended Test durch. Es dürfen ausschließlich Mullvad-DNS-Server erscheinen.
  5. Lokaler Zugriff: Prüfe den Zugriff auf lokale Ressourcen (Router, NAS, Drucker).
  6. Kill-Switch-Test: Deaktiviere die Instance unter VPN → WireGuard → Instances. Der Internetzugriff des Zielgeräts muss vollständig blockiert sein.