Files
docu/shared/horus-opnsense-wireguard/README.md
T
root 98d41347ab WG-Subnetze trennen: VM nur 10.2.2/24, OPNsense 10.100.2/24.
10.2.0.0/16 und Legacy-Netze vom VM-Peer entfernt; 10.2.2.0/24
nicht mehr beim OPNsense-Peer auf Horus.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 13:22:26 +02:00

5.9 KiB
Raw Blame History

Horus ↔ OPNsense WireGuard (Site-to-Site)

Direkter WireGuard-Tunnel zwischen OPNsense (lokales Netz) und Horus (VPS), ohne Umweg über VM 101.

Horus horus.jeanavril.com / 207.180.222.207, WG-Port 61951, Tunnel-IP 10.1.1.1
OPNsense Tunnel-IP 10.1.1.22 (Peer opnsense-jeanavril)
VM 101 (legacy) Tunnel-IP 10.1.1.5 (Peer server5) — eigener Tunnel, bleibt

Configs inkl. Private Keys: privates Repo — siehe Dateien in diesem Ordner.

Subnetz-Aufteilung (kein Teilen zwischen Peers)

Netz Horus-Peer Wer routet
10.1.1.5/32 VM VM-WG-Tunnel
10.2.2.0/24 (docbr0) VM VM → docbr0; OPNsense nur → 192.168.10.10 im LAN
10.1.1.22/32 OPNsense OPNsense-WG-Tunnel
10.100.2.0/24 (Services pve2) OPNsense OPNsense opt7
192.168.1060.0/24 (VLANs) OPNsense OPNsense (ggf. NAT statt Export)

Nicht: 10.2.0.0/16 auf VM-Peer — war zu groß; nur 10.2.2.0/24.

Datei Inhalt
opnsense-client.conf OPNsense Client (Private Key, PSK, Endpoint)
horus-server-peer-opnsense.conf Gegenstück auf Horus
vm101-client.conf VM 101 Client (Referenz / Migration)
horus-server-peer-vm101.conf VM-Peer auf Horus

Topologie

LAN/VLANs (192.168.x.0/24, 10.2.2.0/24)
        ↓
   OPNsense (10.1.1.22)  ←——WireGuard——→  Horus (10.1.1.1)
        ↓                                      ↓
   10.2.2.0/24 → 192.168.10.10 (docbr0)    Services / SSH / …

10.2.2.0/24 (docbr0): Horus schickt Traffic dorthin an OPNsense; OPNsense leitet weiter an 192.168.10.10 (bestehende Route/Gateway VM101_DOCKER — siehe opnsense-docker-subnet-routing.md).

Public Keys

Rolle Public Key
Horus (Server) qXxhgerS2ORypVadhKCBuxgIX5Pu4J75nSWazdtd+Qk=
OPNsense walbWTYXAGOD1mOxPK+NwKT6qUhLyY0qieWBeTIbdXU=
VM 101 VB3Cf8kDxpzO+FyMrLxPyJ0vUjm8yJ/qIKmhY2KeeyI=

OPNsense einrichten

Werte aus opnsense-client.conf in die GUI übernehmen.

VPN → WireGuard → Local → +

Feld Wert
Enabled
Name wg_horus
Listen port leer oder 51820 (nur ausgehend nötig)
Tunnel Address 10.1.1.22/32
MTU 1250
Private key [Interface] PrivateKey aus opnsense-client.conf

VPN → WireGuard → Endpoints → + (Peer Horus)

Feld Wert
Enabled
Name horus
Public Key qXxhgerS2ORypVadhKCBuxgIX5Pu4J75nSWazdtd+Qk=
Shared Secret [Peer] PresharedKey aus opnsense-client.conf
Allowed IPs 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
Endpoint Address horus.jeanavril.com
Endpoint Port 61951
Persistent Keepalive 25

Instance und Endpoint verknüpfen (Peer der Instance zuweisen — je nach OPNsense-Version unter Local → Peers oder Endpoint an Instance binden).

Interface zuweisen

Interfaces → Assignments → New → wg_horus (optX) → Save

Interface aktivieren, ggf. Block private networks auf WG-Interface deaktivieren (Site-to-Site).

Firewall

Regel Interface Direction Source Destination Beschreibung
Pass LAN / VLAN10 / … in Netz(e) 10.1.1.0/24, 10.8.0.0/24, … LAN → Horus-Netze
Pass optX (WG) in 10.1.1.0/24 LAN / VLANs Horus → Heimnetz (Rückweg)

Routing auf Horus

Siehe horus-server-peer-opnsense.conf — bereits auf Horus aktiv.

Test

# Handshake auf Horus:
ssh jean@192.168.10.10 'ssh root@10.1.1.1 wg show wg0 | grep -A6 walbWTYX'

# Von LAN-PC:
ping 10.1.1.1
ssh root@10.1.1.1

Horus: fehlende WG-Routen (wichtig)

wg syncconf auf Horus legt keine Kernel-Routen für die OPNsense-AllowedIPs an. Ohne Fix gehen Antworten von Horus zu euren LANs über eth0/Internet statt wg0.

Symptom auf Horus: ip route get 192.168.20.2 zeigt via 207.180.222.1 dev eth0 statt dev wg0.

Fix (auf Horus, persistent):

/usr/local/sbin/wg0-opnsense-routes.sh   # siehe wg0-opnsense-routes.sh in diesem Ordner
systemctl enable --now wg0-opnsense-routes.service

iptables/ufw: wg0 ist offen (61951/udp, Anywhere on wg0 IN + FWD). Kein IP-spezifischer Block für 10.1.1.22.

OPNsense: falsche Route (LAN → Horus)

Wenn der Tunnel steht, aber vom LAN nichts ankommt: oft eine alte Static Route auf OPNsense.

Traceroute von intern sollte sein: … → OPNsense → 10.1.1.1 (via WG).

Falsch (beobachtet): Hop 2 = 192.168.178.1 — Traffic geht zur alten Fritz/VM-Route statt WireGuard.

Prüfen: System → Routes → Einträge für 10.1.1.0/24 / 10.8.0.0/24 — muss über WireGuard-Gateway (horusopnsense), nicht 192.168.178.1.

Firewall: VLAN20 → Destination 10.1.1.0/24 → Pass.

VM 101 — eigener Tunnel (bleibt)

VM 101 behält eigenes WireGuard zu Horus (10.1.1.5) — für Cert-Rsync, SSH, Automation.

Horus AllowedIPs VM-Peer: 10.1.1.5/32, 10.2.2.0/24 only — siehe horus-server-peer-vm101.conf.

Wenn OPNsense stabil läuft: kein Abschalten der VM-WG nötig. Nur keine überlappenden Subnetze zwischen VM- und OPNsense-Peer auf Horus.

Referenzen

Thema Doc
Horus SSH-Keys ../ssh/README.md
Route-Skript wg0-opnsense-routes.sh
docbr0 / 10.2.2.0/24 ../../pve1/guests/vm101-ubuntu/docbr0-opnsense-routing.md
VLAN-Übersicht ../infrastruktur-netzwerk.md