Road-Warrior-Setup mit UFW wg0→eth0 und pixel7-Config; OPNsense-LAN-Exit über HORUS_GW + Outbound-SNAT 10.1.1.22 als verifizierter Breakpoint. Co-authored-by: Cursor <cursoragent@cursor.com>
6.5 KiB
OPNsense — Internet optional über Horus (LAN-Gateway)
Stand: 2026-06-28
Status: Verifiziert — Gateway HORUS_GW (10.1.1.1 auf wg_horus) + Outbound SNAT auf 10.1.1.22 · Exit-IP 207.180.222.207
Agent: kein OPNsense-Zugang — Breakpoint war fehlendes SNAT, nicht das Gateway
Das ist nicht dasselbe wie beim Handy (pixel7): Dort trägt der Client selbst 0.0.0.0/0 in WireGuard.
Hinter OPNsense entscheidet der Router per Gateway/Firewall/NAT, welcher LAN-Traffic über wg_horus rausgeht.
Wann welches Modell?
| Modell | Wer | Mechanismus | Doc |
|---|---|---|---|
| Road Warrior | Handy/Laptop mit WG-App | Client-Config AllowedIPs = …, 0.0.0.0/0 |
../../horus/wireguard-internet-gateway.md |
| LAN über OPNsense | PCs hinter OPNsense | OPNsense-Gateway + Firewall + Outbound-NAT auf wg_horus |
dieses Doc |
Basis-Site-to-Site (Horus-Netze, LAN→Horus) bleibt: opnsense-step-a-nat.md — nicht entfernen.
Topologie (LAN-Internet via Horus)
LAN-PC (192.168.x) → OPNsense → wg_horus (SNAT 10.1.1.22) → Horus → eth0/NAT → Internet
Exit-IP im Internet: 207.180.222.207
Horus (bereits erledigt, 2026-06-28):
ip_forward=1- UFW route
wg0 → eth0(+ Rückweg) MASQUERADEaufeth0(alle Quellen inkl.10.1.1.22)- Routing-Test:
ip route get 8.8.8.8 from 10.1.1.22 iif wg0→ viaeth0✓
Wichtig: Wenn du am OPNsense testest und es wieder deaktivierst, sieht Horus keinen Internet-Traffic von 10.1.1.22 — tcpdump bleibt leer. Das ist normal.
Empfohlen: nur bestimmte LAN-Hosts (Policy Gateway)
Nicht gleich 0.0.0.0/0 als Static Route fürs ganze OPNsense — das killt den normalen WAN-Weg über Fritzbox.
1. Gateway anlegen
System → Routing → Gateways → Single → Add
| Feld | Wert |
|---|---|
| Name | HORUS_INET |
| Interface | wg_horus (opt10) |
| Gateway | 10.1.1.1 ← Horus-Tunnel-IP |
| Monitor | optional aus, oder Monitor-IP 1.1.1.1 (nur wenn du weißt was du tust) |
| Default Gateway | Nein |
Häufiger Fehler: Gateway 192.168.178.1 (Fritzbox) oder 10.1.1.21 — falsch, Interface liegt am Tunnel.
2. Outbound NAT (Internet, nicht nur Horus-Netze) — Pflicht
Step A (opnsense-step-a-nat.md) NATet nur LAN → HORUS_WG (z. B. 10.1.1.0/24).
Ohne SNAT funktioniert es nicht, auch wenn Gateway-Monitoring auf 10.1.1.1 grün ist: Monitoring pingt nur OPNsense→Horus; LAN-Traffic hat sonst Quelle 192.168.x — Horus kennt den Rückweg nicht (Peer nur 10.1.1.22/32).
Für Internet brauchst du zusätzlich (Hybrid-Modus, Regel oben):
| Feld | Wert |
|---|---|
| Interface | wg_horus |
| Source | Alias z. B. HORUS_INET_CLIENTS (nur die PCs die Horus-Exit nutzen sollen) |
| Destination | any |
| Translation | Interface address → 10.1.1.22 |
Ohne diese Regel: Horus sieht ggf. 192.168.x als Quelle oder verwirft/ routet falsch.
3. Firewall LAN
Firewall → Rules → LAN (Regel über block/deny):
| Feld | Wert |
|---|---|
| Action | Pass |
| Source | HORUS_INET_CLIENTS |
| Destination | any |
| Gateway | HORUS_INET |
| Description | Internet via Horus WG |
Rest des LANs: kein Gateway → normaler WAN-Weg (Fritzbox).
4. WireGuard Peer „horus“ — Allowed IPs
Für Policy-Gateway reicht meist:
10.1.1.0/24, 10.1.2.0/24, 10.1.3.0/24, 10.1.4.0/24, 10.8.0.0/24
Kein 0.0.0.0/0 nötig, wenn du nur per Firewall-Gateway routest.
Disable routes kann an bleiben — Static Route 10.1.1.0/24 → 10.1.1.1 via wg_horus (Step A) bleibt.
5. DNS
Clients hinter OPNsense nutzen weiter OPNsense/Unbound — nicht automatisch Horus-DNS.
Wenn Browser „tot“, obwohl ping 8.8.8.8 geht: DNS/Filter auf OPNsense prüfen, nicht Horus-NAT.
Alternative (riskant): gesamtes OPNsense-Internet über Horus
Nur wenn bewusst gewollt (Surfshark/WAN entfällt als Default):
- Peer Allowed IPs um
0.0.0.0/0erweitern oder Default-Route via10.1.1.1aufwg_horus - Outbound NAT auf
wg_horusfürany - Konflikt mit mehreren WG-Instanzen (Surfshark, WGServer) — „Disable routes“ und Routing-Tabelle genau prüfen
Nicht empfohlen ohne klaren Plan — schnell kein Internet mehr über Fritzbox.
Tests (Reihenfolge)
| # | Wo | Befehl | Erwartung |
|---|---|---|---|
| 1 | OPNsense | Diagnostics → Ping, Source wg_horus → 10.1.1.1 |
ok (~17 ms) |
| 2 | Horus | ping 10.1.1.22 |
ok |
| 3 | LAN-Test-PC (mit Gateway-Regel) | ping 8.8.8.8 |
ok |
| 4 | LAN-Test-PC | curl -4 ifconfig.me |
207.180.222.207 |
| 5 | Horus (während Test) | tcpdump -ni wg0 host 10.1.1.22 and not net 10.1.0.0/16 |
Traffic zu 8.8.8.8/443 |
| 6 | Anderer LAN-PC (ohne Regel) | curl ifconfig.me |
Fritzbox-WAN-IP, nicht Horus |
Troubleshooting (OPNsense — Agent blind)
| Symptom | Erste Prüfung in OPNsense GUI |
|---|---|
| Gateway-Monitoring ok, LAN-Internet tot | Outbound SNAT auf wg_horus → 10.1.1.22, Destination any fehlt (häufigster Fix) |
| Gar kein Traffic auf Horus | Gateway 10.1.1.1, Interface wg_horus, Firewall-Regel mit Gateway gesetzt? |
| Handshake ok, LAN-Internet tot | Outbound NAT any auf wg_horus, nicht nur HORUS_WG |
| Nur Horus-Netze ok | Step A ok, Step Internet-NAT fehlt (s.o.) |
| Alles tot nach Experiment | Static Route / Allowed IPs 0.0.0.0/0 wieder entfernen, Default Gateway WAN reaktivieren |
| Live View leer | Traffic geht noch über WAN — Gateway-Regel greift nicht (Source/Order) |
Firewall → Log Files → Live View während Test — einziger zuverlässiger Beweis ohne SSH.
Deaktivieren (Rollback)
- Firewall-Regel „Internet via Horus WG“ disable/delete
- Outbound-NAT-Regel
wg_horus→anydisable/delete - Gateway
HORUS_INEToptional löschen - Nicht Step-A-Regeln (LAN→Horus-Netze) anfassen
Danach tcpdump auf Horus wieder leer — erwartet.
Referenzen
| Doc | Inhalt |
|---|---|
| opnsense-step-a-nat.md | Site-to-Site + LAN→Horus-Netze |
| ../../horus/wireguard-internet-gateway.md | Handy/Road Warrior |
| ../../issues/2026-06-28-opnsense-horus-wireguard-lan.md | Gateway-Fehler .21/Fritzbox |