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
- Navigiere zu: VPN → WireGuard → Instances, öffne
Mullvad_VPNund wähle bei Peers denMullvad_Peeraus. Speichern. - Navigiere zu: VPN → WireGuard → General.
- Setze das Häkchen bei Enable WireGuard und klicke auf Apply.
- Unter VPN → WireGuard → Status den Handshake kontrollieren.
4. WireGuard-Interface zuweisen
Navigiere zu: Interfaces → Assignments
- Wähle bei New interface das WireGuard-Gerät (z. B.
wg1) aus und klicke auf Add. - Klicke auf das neu erstellte Interface und benenne es in
MULLVAD_WANum. - Konfiguriere:
- Enable Interface: ✓
- IPv4 Configuration Type:
None - IPv6 Configuration Type:
None
- 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
- Modus auf Hybrid outbound NAT rule generation stellen und speichern.
- 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
-
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.
-
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
- State Table zurücksetzen: Navigiere zu Firewall → Diagnostics → States und führe Reset States aus (oder trenne/verbinde die Netzwerkkabel-Verbindung des Zielgeräts).
- IP-Adresse prüfen (Zielgerät): Rufe auf dem Zielgerät
https://am.i.mullvad.netauf. Es muss eine Mullvad-IP angezeigt werden. - Gegentest (Anderes LAN-Gerät): Rufe dieselbe Seite von einem anderen Gerät auf. Es muss die normale Provider-WAN-IP angezeigt werden.
- DNS-Leak-Test: Führe auf
https://dnsleaktest.comden Extended Test durch. Es dürfen ausschließlich Mullvad-DNS-Server erscheinen. - Lokaler Zugriff: Prüfe den Zugriff auf lokale Ressourcen (Router, NAS, Drucker).
- Kill-Switch-Test: Deaktiviere die Instance unter VPN → WireGuard → Instances. Der Internetzugriff des Zielgeräts muss vollständig blockiert sein.