OPNsense + ZeroTier: Sicherer Fernzugriff auf Ihr Heim- oder Büro‑Netzwerk (Schritt für Schritt)

In diesem Tutorial erkläre ich, wie Sie mit OPNsense und ZeroTier einen robusten, wartbaren Fernzugriff auf Ihr eigenes Netzwerk aufbauen. Ziel ist ein Zero‑Trust‑ähnliches VPN, das sich gut in bestehende Firewall‑Regeln, Routing und DNS‑Lösungen integriert und für fortgeschrittene Entwickler und DevOps‑Profis reproduzierbar ist.

Ich zeige sowohl GUI‑ als auch CLI‑Schritte, Konfigurationsbeispiele, typische Fallstricke und Security‑Empfehlungen. Das Tutorial geht davon aus, dass Sie OPNsense bereits als Gateway/Firewall betreiben und Zugriff auf die Weboberfläche sowie die Konsole haben.

Relevante Links und Referenzen:

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass folgende Punkte erfüllt sind:

  • OPNsense 22.7 oder neuer (Ähnliches gilt für neuere Releases) mit Zugriff auf die WebUI und SSH/Console.
  • Ein ZeroTier Account (kostenlos möglich) und Zugriff auf ZeroTier Central zur Verwaltung Ihrer Netzwerke.
  • Grundkenntnisse zu Firewall‑Regeln, NAT und Routing.
  • Optional: CLI‑Zugriff auf OPNsense für Paketinstallation und Debugging.

Architekturüberblick

Die Grundidee: OPNsense läuft als ZeroTier‑Member und verbindet sich zu einem ZeroTier‑Netzwerk. OPNsense kann über das ZeroTier‑Interface Routen zu internen LANs ankündigen (Managed Routes), so dass andere ZeroTier‑Peers direkt auf Geräte hinter OPNsense zugreifen können. Firewall‑Regeln auf OPNsense kontrollieren Traffic zwischen ZeroTier und internen Netzen.

Typische Komponenten:

  • ZeroTier Central: Netzwerkmanagement, Autorisierung von Members, Zuweisung virtueller IPs und Managed Routes.
  • OPNsense als ZeroTier‑Client: Join des Netzwerks und Advertisement der lokalen LAN‑Routen.
  • Clients (Laptop, Smartphone, VM) mit ZeroTier‑Client: autorisierte Members im selben ZeroTier‑Netz.

Schritt 1 — ZeroTier Netzwerk anlegen

Besuchen Sie ZeroTier Central, melden Sie sich an und erstellen Sie ein neues Netzwerk.

Empfohlene Einstellungen:

  • Network Type: Private (Standard), damit neue Mitglieder zunächst nicht automatisch autorisiert werden.
  • Managed IPs: Definieren Sie einen adressblock, zum Beispiel 10.147.17.0/24. ZeroTier weist Clients IPs aus diesem Block zu.
  • Allow Managed Routes: aktivieren, damit OPNsense später Routen ankündigen kann.
  • DNS: optional — Sie können hier eine interne DNS‑IP eintragen, z. B. die OPNsense Unbound IP 192.168.1.1, wenn Clients interne Namen auflösen sollen.

Notieren Sie die Network ID; Sie benötigen sie zum Joinen auf OPNsense und Clients.

Schritt 2 — ZeroTier Plugin auf OPNsense installieren

OPNsense bietet ein Community‑Plugin oder Paket für ZeroTier. Installieren Sie es bevorzugt über die WebUI:

WebUI:

  1. System > Firmware > Plugins
  2. Suchen Sie nach os‑zerotier oder zerotier. Falls vorhanden, wählen Sie das Paket und klicken auf Install.
  3. Nach der Installation finden Sie den Eintrag unter Services > ZeroTier.

CLI (falls GUI nicht erwünscht):

Auf der OPNsense Konsole bzw. per SSH:

sudo pkg update
sudo pkg install os‑zerotier

Starten Sie danach die OPNsense WebUI neu oder starten Sie den Plugin‑Service.

Schritt 3 — OPNsense dem ZeroTier Netzwerk beitreten

GUI:

  1. Services > ZeroTier
  2. Aktivieren Sie ZeroTier.
  3. Fügen Sie die Network ID ein und klicken Sie auf Join.

CLI:

Wenn der Dienst os‑zerotier direkt installiert ist, können Sie

sudo zerotier-cli join

ausführen. Prüfen Sie mit

sudo zerotier-cli listnetworks
oder
sudo ifconfig | grep zt

ob ein Interface erstellt wurde (z. B. zt0) und eine IP zugewiesen ist.

Schritt 4 — Node autorisieren und IP prüfen

In ZeroTier Central erscheint nun Ihr OPNsense‑Node als unauthorisierter Member. Autorisieren Sie ihn und prüfen Sie die zugewiesene IP (z. B. 10.147.17.2).

Wichtig: Notieren Sie die Node‑ID von OPNsense. Sie benötigen diese für Managed Routes und ACLs.

Schritt 5 — Managed Route für LAN ankündigen

Damit andere ZeroTier‑Peers direkt 192.168.1.0/24 (Beispiel LAN) erreichen können, müssen Sie die Route entweder in ZeroTier Central definieren oder OPNsense so konfigurieren, dass es Managed Routes ankündigt.

Option A — Route in ZeroTier Central anlegen (manuell):

  • Network > Advanced > Routes
  • Fügen Sie eine Route hinzu: 192.168.1.0/24 mit Target = NodeID von OPNsense
  • Setzen Sie die Route auf Persistent/Managed.

Option B — OPNsense Managed Route (falls Plugin unterstützt):

In der OPNsense ZeroTier Konfiguration gibt es meist eine Option ‚Advertise Route‘ oder ‚Managed Routes‘. Tragen Sie das lokale LAN Subnet ein und aktivieren Sie das Advertisement. Das Plugin schreibt dann die Route in ZeroTier Central.

Ergebnis: Andere ZeroTier‑Peers lernen über ZeroTier, dass 192.168.1.0/24 über OPNsense erreichbar ist und routen Traffic dorthin.

Schritt 6 — Firewall Regeln auf OPNsense

Der häufigste Fehler ist fehlende oder falsche Firewall‑Rule, die Traffic vom ZeroTier Interface zum LAN blockiert. Legen Sie explizite Regeln an:

WebUI:

Firewall > Rules > [ZeroTier Interface (z. B. zt0)]

Erstellen Sie mindestens folgende Regel:

  • Action: Pass
  • Protocol: Any (oder gezielt TCP/UDP ICMP)
  • Source: zt network (z. B. 10.147.17.0/24)
  • Destination: LAN net (z. B. 192.168.1.0/24)
  • Beschreibung: Allow ZeroTier to LAN

Optional: Inverse Rule für LAN->ZeroTier falls interne Hosts initieren sollen.

CLI Beispiel mit pfctl (nur Debug):

sudo pfctl -s rules | grep zt

Falls Sie Outbound NAT betreiben und Probleme auftreten, prüfen Sie NAT > Outbound; in 1:1 oder Manual Modus müssen Sie ggf. Regeln anpassen, damit Source IPs nicht unnötig SNATed werden.

Schritt 7 — DNS

Für eine benutzerfreundliche Namensauflösung haben Sie mehrere Optionen:

  • In ZeroTier Central im Abschnitt ‚DNS‘ die interne DNS Adresse eintragen (z. B. 192.168.1.1), sodass Clients diese DNS automatisch nutzen.
  • Auf Clientseite statisch die OPNsense Unbound DNS als DNS eintragen.
  • Auf OPNsense Unbound konfigurieren: Fügen Sie Host Overrides oder Domain Overrides hinzu, um interne Namen korrekt aufzulösen.

Beispiel: DNS in ZeroTier für Netzwerk setzen

DNS: 192.168.1.1
Search Domain: home.local

Clients erhalten dadurch beim Joinen automatisch DNS‑Settings von ZeroTier.

Schritt 8 — Testen und Troubleshooting

1) Prüfen Sie Interface und IPs auf OPNsense:

ifconfig | grep -A3 zt
zerotier-cli info
zerotier-cli listpeers

2) Prüfen Sie Routen auf einem Remote‑Client:

ip route | grep 192.168.1.0
traceroute 192.168.1.1

3) Testen Sie Connectivity:

  • Ping die LAN‑Gateway IP von einem ZeroTier Client.
  • SSH zu internen Servern testen.
  • Wenn Packets nicht ankommen, schauen Sie in OPNsense Firewall Logs: Firewall > Log Files > Live View.

Häufige Ursachen bei Problemen:

  • Node nicht autorisiert in ZeroTier Central
  • Managed Route nicht eingetragen/angekündigt
  • Fehlende Firewall‑Regeln auf dem ZeroTier Interface
  • SNAT/NAT verändert Quell‑IP und es passt nicht zu Firewall/Routing

Schritt 9 — Sicherheit und Härtung

ZeroTier ist per Design ein Overlay‑Netz. Dennoch beachten Sie:

  • Nutzen Sie Private Networks und autorisieren neue Nodes manuell.
  • Vergeben Sie mit ZeroTier ACLs feingranulare Zugriffsregeln, falls nötig. Lesen Sie die Dokumentation zu ZeroTier ACLs.
  • Beschränken Sie in OPNsense den erlaubten Verkehr vom ZeroTier‑Interface nach Anwendung, Port und Ziel.
  • Erstellen Sie Monitoring und Alerts für neue Authorizations oder ungewöhnlichen Traffic.

Link zu ACLs und Security‑Best‑Practices: ZeroTier Manual

Advanced Topics

Einige fortgeschrittene Szenarien:

  • Site‑to‑Site: Verbinden Sie zwei OPNsense Gateways über ZeroTier und announce Managed Routes auf beiden Seiten für automatisches Cross‑Site Routing.
  • High Availability: Nutzen Sie VRRP/Carp nicht direkt über ZeroTier; stattdessen synchronisieren Sie OPNsense Konfiguration über Backup/Config Sync und planen Sie Failover‑Mechanismen.
  • Policy‑Based Routing: Verwenden Sie Firewall‑Rules mit Gateway‑Groups, um bestimmten ZeroTier‑Traffic über spezifische physische WANs zu leiten.
  • Automatisierung: Verwenden Sie die OPNsense API oder config.xml Automationen, um ZeroTier Konfigurationen zu deployen.

Beispiel: ZeroTier Join via Shell Script und automatische Autorisierung (Admin‑Workflow)

# On OPNsense
sudo pkg install os‑zerotier
sudo zerotier-cli join 8b3f4a1c2d3e4f56
# Then check ID and paste into ZeroTier Central to authorize
zerotier-cli info

Tipps aus der Praxis / Insights

  • Bevor Sie Managed Routes ankündigen, denken Sie an Adresskonflikte zwischen ZeroTier IP‑Raum und internen Netzen. Wählen Sie einen Zerotier‑Pool, der nicht kollidiert.
  • Für mobile Nutzer ist ZeroTier praktisch, da kein zentraler Server benötigt wird und NAT traversal meist automatisch funktioniert.
  • Wenn Sie mehrere Gateways haben, planen Sie eindeutige Routes und ggf. BGP/OSPF nicht über ZeroTier — ZeroTier ist primär für Overlay‑Routing.
  • Logs sind Ihr bester Freund: zerotier‑service Logs, OPNsense Firewall Logs und TCPDUMP helfen, Paketfluss zu verstehen.

Beispiel: pfSense/OPNsense Firewallregel als XML‑Snippet

Wenn Sie Konfigurationen per config.xml deployen, sieht eine einfache Allow‑Regel etwa so aus (vereinfachtes Beispiel):

<rule>
<type>pass</type>
<interface>zt0</interface>
<protocol>any</protocol>
<source>
<network>10.147.17.0/24</network>
</source>
<destination>
<network>192.168.1.0/24</network>
</destination>
<description>Allow ZeroTier to LAN</description>
</rule>

Achten Sie bei Automation darauf, dass Sie bestehende Regeln nicht überschreiben.

Fazit und nächste Schritte

ZeroTier in Kombination mit OPNsense bietet eine flexible, skalierbare Lösung für Fernzugriff auf private Netzwerke ohne klassische VPN‑Server‑Infrastruktur. Die wichtigsten Schritte sind das Joinen des ZeroTier‑Netzwerks, Authorisierung des OPNsense‑Nodes, Ankündigung der Managed Routes und korrekte Firewall‑Regeln auf dem ZeroTier‑Interface.

Als nächste Schritte empfehle ich:

  • Automatisieren Sie Deployment für neue OPNsense‑Nodes per Script und nutzen Sie ZeroTier API für automatisierte Authorizations in kontrollierten Umgebungen.
  • Setzen Sie ZeroTier ACLs zur weiteren Härtung und vermeiden Sie unnötig breite Firewall‑Regeln.
  • Integrieren Sie Monitoring: Exportieren Sie Firewall‑Logs in SIEM und beobachten Sie ZeroTier‑Authorizations.
  • Testen Sie Failover‑Szenarien und dokumentieren Sie die Recovery‑Schritte.

Wenn Sie weiterführende Beispiele oder ein Beispiel‑Repo mit Automation wünschen, kann ich ein Shell‑ und Ansible‑Playbook zur Verfügung stellen, das OPNsense per SSH vorbereitet, ZeroTier installiert und Managed Routes konfiguriert.

Quellen und weiterführende Lektüre:

Viel Erfolg beim Aufbau Ihrer ZeroTier‑basierten Fernzugriffe. Falls Sie möchten, kann ich ein Beispiel für ein Ansible‑Playbook oder eine Terraform‑basierte ZeroTier Central Provisioning Pipeline ergänzen, um die Lösung in einer produktiven Infrastruktur zu standardisieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert