Sicherheit durch Isolation
In modernen IT-Umgebungen ist die konsequente Trennung vertrauenswürdiger und potenziell unsicherer Systeme ein wesentlicher Bestandteil der Netzwerksicherheit. Dies gilt insbesondere für KI-Agenten, Testumgebungen, IoT-Geräte und sensible Entwicklungsumgebungen, die auf externe Datenquellen oder das Internet zugreifen, gleichzeitig jedoch keinen unkontrollierten Zugriff auf persönliche oder kritische Netzwerkressourcen erhalten sollen.
Eine geeignete Lösung besteht in der Einrichtung eines isolierten Netzwerks (IsoLAN), das strikt vom geschützten Heimnetzwerk (CoreLAN) getrennt ist. Systeme innerhalb des IsoLAN können bei Bedarf auf das Internet zugreifen, während Zugriffe auf das CoreLAN unterbunden werden. Gleichzeitig kann ein kontrollierter Zugriff vom CoreLAN auf ausgewählte Systeme im IsoLAN für Administration, Wartung und Überwachung ermöglicht werden.
Die Kombination aus Proxmox VE als Virtualisierungsplattform und OPNsense als Open-Source-Firewall ermöglicht eine flexible, klar strukturierte und zentral kontrollierbare Trennung der Netzwerkbereiche. Dadurch lassen sich auch potenziell kompromittierbare Systeme betreiben, ohne die Sicherheit des vertrauenswürdigen CoreLAN unnötig zu gefährden.
Ausgangslage und Zielarchitektur
Aufbau einer OPNsense-Firewall auf Proxmox, die ein isoliertes Netzwerk, bespielsweise für KI Agenten (IsoLAN, 192.168.10.0/24), vom geschützten Heimnetz (CoreLAN, 192.168.1.0/24) trennt.
Netzwerkarchitektur:
|
1 2 3 4 5 |
Router (192.168.1.1) ── CoreLAN 192.168.1.0/24 ── OPNsense WAN-Interface (192.168.1.91) │ OPNsense LAN-Interface (192.168.10.1) │ IsoLAN 192.168.10.0/24 (unsichere VMs) |
Anforderungen:
- Zugriff auf CoreLAN darf unter keinen Umständen aus isoLAN erfolgen.
- isoLAN erhält Internetzugriff über den Router (192.168.1.1) im CoreLAN.
- isoLAN erhält Zugriff auf OPNSense DNS- und DHCP-Server
- CoreLAN bezieht seine IP-Adressen weiterhin vom Router, nicht von OPNsense.
- CoreLAN darf auf Clients in isoLAN zugreifen.
- Aus isoLAN sind ausschließlich Internetzugriff sowie DNS- und DHCP-Dienste der Firewall selbst erreichbar, kein Zugriff auf die Firewall-WebUI oder sonstige Dienste.
- DHCPv6 für isoLAN nicht aktiviert.
Soll-Zustand nach der Konfiguration
Die Tabelle beschreibt den beabsichtigten Sicherheitszustand. Die einzelnen Regeln, Routen und Ausnahmen werden in den folgenden Abschnitten eingerichtet.
| Verbindung | Ergebnis |
|---|---|
| CoreLAN → OPNsense WebUI | ✅ Erlaubt |
| CoreLAN → isoLAN | ✅ Erlaubt |
| IsoLAN → OPNsense DNS | ✅ Erlaubt |
| IsoLAN → OPNsense DHCP | ✅ Erlaubt |
| isoLAN → OPNsense (SSH, WebUI etc.) | ❌ Blockiert |
| isoLAN → CoreLAN | ❌ Blockiert |
| isoLAN → CoreLAN 2 (VPN) | ❌ Blockiert |
| isoLAN → Alle anderen IPv4 Netze (Internet) | ✅ Erlaubt |
| isoLAN → Alle anderen IPv6 Netze (Internet) | ✅ Erlaubt |
IPv4 CIDR-Grundlagen für dieses Tutorial
Eine IPv4-Adresse besteht aus 32 Bits (4 Oktette à 8 Bit), z. B. 192.168.1.100. Die Subnetzmaske (oder CIDR-Suffix /n) teilt die Adresse in Netzwerkanteil (die ersten n Bits) und Hostanteil (die verbleibenden 32-n Bits).
| CIDR | Subnetzmaske | Host-Bits | Adressen gesamt | Nutzbare Hosts | IP-Bereich (Beispiel) | Typische Verwendung |
|---|---|---|---|---|---|---|
| /8 | 255.0.0.0 | 24 | 16.777.216 | 16.777.214 | 10.0.0.0 – 10.255.255.255 | Großes Netzwerk, RFC 1918 |
| /12 | 255.240.0.0 | 20 | 1.048.576 | 1.048.574 | 172.16.0.0 – 172.31.255.255 | Großes Netzwerk, RFC 1918 |
| /16 | 255.255.0.0 | 16 | 65.536 | 65.534 | 192.168.0.0 – 192.168.255.255 | Zusammenfassung vieler /24-Netze |
| /17 | 255.255.128.0 | 15 | 32.768 | 32.766 | 192.168.0.0 – 192.168.127.255 | Mittelgroße Standorte |
| /18 | 255.255.192.0 | 14 | 16.384 | 16.382 | 192.168.0.0 – 192.168.63.255 | Mittelgroße Standorte |
| /19 | 255.255.224.0 | 13 | 8.192 | 8.190 | 192.168.0.0 – 192.168.31.255 | Mittelgroße Standorte |
| /20 | 255.255.240.0 | 12 | 4.096 | 4.094 | 192.168.0.0 – 192.168.15.255 | Größere Abteilungen |
| /21 | 255.255.248.0 | 11 | 2.048 | 2.046 | 192.168.0.0 – 192.168.7.255 | Größere Abteilungen |
| /22 | 255.255.252.0 | 10 | 1.024 | 1.022 | 192.168.0.0 – 192.168.3.255 | Mittlere Abteilungen |
| /23 | 255.255.254.0 | 9 | 512 | 510 | 192.168.0.0 – 192.168.1.255 | Mittlere Abteilungen |
| /24 | 255.255.255.0 | 8 | 256 | 254 | 192.168.1.0 – 192.168.1.255 | Heim-, LAN- und VM-Netze |
| /25 | 255.255.255.128 | 7 | 128 | 126 | 192.168.1.0 – 192.168.1.127 | Kleine Büros, VLANs |
| /26 | 255.255.255.192 | 6 | 64 | 62 | 192.168.1.0 – 192.168.1.63 | Kleine Büros, VLANs |
| /27 | 255.255.255.224 | 5 | 32 | 30 | 192.168.1.0 – 192.168.1.31 | Kleine Arbeitsgruppen |
| /28 | 255.255.255.240 | 4 | 16 | 14 | 192.168.1.0 – 192.168.1.15 | Kleine Arbeitsgruppen |
| /29 | 255.255.255.248 | 3 | 8 | 6 | 192.168.1.0 – 192.168.1.7 | Kleine Verbindungen |
| /30 | 255.255.255.252 | 2 | 4 | 2 | 192.168.1.0 – 192.168.1.3 | Punkt-zu-Punkt-Verbindungen |
| /31 | 255.255.255.254 | 1 | 2 | 2* | 192.168.1.0 – 192.168.1.1 | Punkt-zu-Punkt (RFC 3021) |
| /32 | 255.255.255.255 | 0 | 1 | 1 | 192.168.1.10 | Einzelner Host, Route, Firewall |
1. Netzwerkkonfiguration in Proxmox: zweite Bridge für isoLAN erstellen
Für das isolierte Netz wird eine eigene, rein interne Linux-Bridge ohne Anbindung an eine physische Netzwerkkarte benötigt.
- In der Proxmox-Weboberfläche in der linken Baumstruktur den betreffenden Node auswählen (nicht “Datacenter”).
- Menüpunkt System → Network öffnen.
- Oben auf Erstellen → Linux Bridge klicken.
- Im Dialog:
- Name:
isoLAN(bzw. den nächsten freienvmbrX-Namen, falls die Proxmox-Version keine frei wählbaren Bridge-Namen erlaubt). - IPv4/CIDR, Gateway: leer lassen – die Bridge selbst benötigt keine IP-Adresse, da nur OPNsense und die VMs darauf kommunizieren.
- Bridge ports: leer lassen. Das ist der entscheidende Punkt: Ohne eingetragenen physischen Port ist die Bridge komplett vom restlichen Netzwerk isoliert und existiert nur virtuell innerhalb des Proxmox-Hosts.
- Häkchen bei VLAN aware ist nicht erforderlich, kann deaktiviert bleiben.
- Erstellen klicken, danach oben den Button Konfiguration anwenden anklicken, damit die Bridge tatsächlich aktiv geschaltet wird.
- Kontrolle: Die neue Bridge erscheint in der Liste unter System → Network mit dem Status “Active”, aber ohne zugeordnete physische Schnittstelle.
- Name:
Tipp: Da diese Bridge keinen Bridge-Port besitzt, kann später ausschließlich über das OPNsense-LAN-Interface auf dieses Netz zugegriffen werden – das ist gewünscht und Grundlage der Isolation.
2. Proxmox-VM für OPNsense einrichten
- Oben rechts Erstelle VM klicken.
- Allgemein: Name und VM ID vergeben, z. B.
OPN-GW-isoLAN. - OS: OPNsense-ISO als Installationsmedium auswählen (vorher per Upload oder Download from URL unter local (Node) → ISO Images bereitgestellt), Typ: Linux / 7.x – 2.6 Kernel.
- System: Standardwerte übernehmen, BIOS kann bei OVMF/UEFI oder SeaBIOS bleiben (SeaBIOS reicht für OPNsense).
- Disks: mindestens 6 GB (Systempartition sollte mindestens 4 GB groß sein, da sonst für spätere Updates zu wenig Speicherplatz zur Verfügung steht), Standard-Controller (VirtIO SCSI) beibehalten.
- CPU: mindestens 2 Kerne, Typ: Host
- Speicher: mindestens 4096 MB, Ballooning Gerät: Haken entfernen (deaktivieren)
- Netzwerk: erste Netzwerkkarte konfigurieren:
- Bridge:
vmbr0(CoreLAN) - Model: VirtIO (paravirtualized)
- Firewall: Haken entfernen (deaktivieren)
- Bridge:
- VM mit Bestätigen anlegen, aber noch nicht starten.
- Nach dem Anlegen: VM auswählen → Hardware → Hinzufügen → Netzwerkkarte, zweite NIC hinzufügen:
- Bridge:
isoLAN - Model: VirtIO (paravirtualized)
- Firewall: Haken entfernen (deaktivieren)
- Bridge:
Wichtig: CoreLAN-NIC vor dem ersten Start vom Netz trennen
OPNsense installiert das LAN-Interface standardmäßig mit der IP 192.168.1.1/24 und aktivem DHCP-Server. Bliebe die CoreLAN-NIC während der Installation und Erstkonfiguration mit vmbr0 verbunden, könnte der OPNSense eigene DHCP-Server kurzzeitig parallel zum Router DHCP Server im CoreLAN aktiv werden und dort IP-Konflikte verursachen.
Vorgehen:
- VM auswählen → Hardware.
- Die Netzwerkkarte, die an
vmbr0hängt, per Doppelklick öffnen. - Haken bei “Erweitert” (neben dem OK Button) um erweiterte Optionen anzuzeigen.
- Option “Trennen” aktivieren (trennt die virtuelle NIC logisch vom Netzwerk, ohne sie zu entfernen) und mit OK bestätigen.
- Die NIC an
isoLANkann verbunden bleiben, da diese Bridge ohnehin isoliert ist und keine Konfliktgefahr besteht. - Diese Trennung bleibt bestehen, bis die Basiskonfiguration über die Konsole (Abschnitt 4) abgeschlossen ist.
3. Installation von OPNsense
- VM starten, Console öffnen (noVNC oder xterm.js).
- Der Installer bootet automatisch ins Live-System.
- Login an der Konsole:
installer/opnsense - Installations-Assistenten durchklicken:
- Tastaturlayout bestätigen bzw. auswählen.
- Other Modes >> Extended Installation auswählen
- Auto (ZFS) auswählen (Voraussetzung für den Growfs-Mechanismus weiter unten sowie für automatische Boot-Environments bei künftigen Updates).
- Optionen ggf. anpassen und mit >>> Install fortfahren
- Select Virtual Device type: stripe
- Virtuelle Disk auswählen: (da0 – QEMU QEMU Harddisk)
- Folgenden Dialog mit YES bestätigen und Installation starten
- Nach Abschluss: Root-Passwort ändern
- Complete Install – Confirm and exit auswählen.
- Vor dem erneuten Hochfahren die ISO-Datei aus der VM aushängen (Hardware → CD/DVD Drive → Do not use any media), sonst startet der Installer erneut.
Exkurs: Festplatte nachträglich vergrößern (Growfs)
Falls die virtuelle Festplatte zu knapp bemessen wurde (z. B. für ein späteres Firmware-Update zu wenig freier Speicher), lässt sich das bei einer OPNsense-Installation mit ZFS über den eingebauten automatischen “Growfs”-Mechanismus nachträglich beheben, ohne Neuinstallation:
- VM in Proxmox herunterfahren.
- VM auswählen → Hardware → die virtuelle Festplatte auswählen → Disk Aktion → Größe anpassen → Wert um die Disk vergrößert werden soll eintragen, nicht Zielgröße.
- VM wieder starten, per Konsole oder SSH verbinden.
- In der OPNsense-Shell folgenden Befehl ausführen, um eine “magische” Datei anzulegen, die den Mechanismus beim nächsten Boot auslöst:
1touch /.probe.for.growfs
VM neu starten. Beim Boot erkennt OPNsense die Datei, vergrößert automatisch die ZFS-Partition und den Pool und löscht die Datei anschließend selbstständig. - Kontrolle nach dem Neustart:
1df -h
Der verfügbare Speicherplatz für/sollte jetzt der neuen, größeren Festplattengröße entsprechen.
4. Basiskonfiguration über die Proxmox-Konsole (Shell)
Nach dem Neustart bzw. Login (root/opnsense bzw. vergebenes Passwort) landet man automatisch im textbasierten OPNsense-Hauptmenü. Da LAN und WAN für das oben beschriebene Szenario zu diesem Zeitpunkt noch nicht sinnvoll konfiguriert sind, erfolgt die gesamte Grundkonfiguration zunächst ausschließlich über die Konsole.
4.1 Interfaces zuweisen
Menüpunkt 1) Assign interfaces wählen:
- “Do you want to configure LAGGs now?”: n (Link Aggregation wird in den meisten Fällen nicht benötigt)
- “Do you want to configure VLANs now?”: n (Virtuelle LANs werden nicht benötigt)
- “Enter the WAN interface name or ‘a’ for auto-detection”:
vtnet0(CoreLAN-NIC) - “Enter the LAN interface name…”:
vtnet1(isoLAN-Nic) - “Enter the Optional interface 1 name…”: leer lassen (Enter)
- “Do you want to proceed? [y/N]”:
y
Hinweis: Welche NIC als vtnet0 bzw. vtnet1 erscheint, hängt von der Reihenfolge beim Anlegen in Proxmox ab. Im Zweifel beide MAC-Adressen unter Hardware in Proxmox mit der Anzeige an der Konsole abgleichen.
4.2 LAN-Interface (isoLAN) konfigurieren
Menüpunkt 2) Set interface IP address → Interface 1 (LAN) wählen.
Diese Konfiguration kann auch mittels OPNSense WebUI erstellt werden
- Enter the number of the interface to configure: 1 (LAN)
- Configure IPv4 address LAN interface via DHCP? [y/N]:
n
Bei Auswahl von DHCP würde OPNsense versuchen, selbst eine IP von einem DHCP-Server innerhalb des isoLAN-Netzes zu beziehen; da OPNsense hier aber selbst als DHCP-Server fungieren soll, erscheint bei versehentlicher DHCP-Auswahl anschließend auch keine DHCP-Server-Konfigurationsabfrage. - IPv4-Adresse:
192.168.10.1 - Subnetz-Bitcount:
24 - Upstream-Gateway: leer lassen (Enter) – LAN-Interfaces besitzen kein Gateway.
- Configure IPv6 address LAN interface via WAN tracking:
n - Configure IPv6 address LAN interface via DHCP6?:
n - IPv6-Adresse: leer lassen (Enter)
- Do you want to enable the DHCP server on LAN? [y/N]:
y(nur nach o.g. Eingabe von fester IPv4-Adresse)- Start-Adresse:
192.168.10.10 - End-Adresse:
192.168.10.200
- Start-Adresse:
- Do you want to change the web GUI protocol from HTTPS to HTTP? [y/N]:
n - Do you want to generate a new self-signed web Gui certificate? [y/N]:
y - Restore web GUI access defaults [y/N]:
y
Hinweis zur CIDR /24: Mit Subnetz-Bitcount: 24 wird das Netz 192.168.10.0/24 definiert (255.255.255.0). Das ergibt 254 nutzbare Host-Adressen (.1 bis .254). Der DHCP-Pool .10–.200 lässt Platz für statische IPs (Gateway .1, Server .2–.9, Reserve .201–.254).
4.3 WAN-Interface (CoreLAN) konfigurieren
Menüpunkt 2) Set interface IP address → Interface 2 (WAN) wählen.
Für dieses Szenario wird eine feste WAN-Adresse verwendet. Dadurch bleibt die OPNsense-WebUI, die spätere Route und die gesamte Dokumentation unter derselben Adresse erreichbar.
- Enter the number of the interface to configure: 2 (WAN)
- Configure IPv4 address WAN interface via DHCP? [y/N]:
n - IPv4-Adresse:
192.168.1.91 - Subnetz-Bitcount:
24 - Upstream-Gateway:
192.168.1.1 - “Do you want to use the gateway as the IPv4 name server, too?”:
y - IPv6 via DHCP6:
n - Für WAN erscheint keine DHCP-Server-Abfrage – OPNsense bietet auf WAN-Interfaces grundsätzlich keinen DHCP-Server an. Die Anforderung “DHCP von OPNsense für CoreLAN darf nicht aktiv sein” ist damit strukturell automatisch erfüllt.
- “Change web GUI protocol HTTPS→HTTP?”:
n - “Generate new self-signed web GUI certificate?”:
y - “Restore web GUI access defaults?”:
y
Alternative: Statt einer festen Adresse kann das WAN-Interface auch per DHCP eine Adresse vom Router beziehen. Für die weiteren Schritte muss dann überall die tatsächlich vom Router vergebene WAN-Adresse verwendet werden. Eine feste Adresse wie 192.168.1.91 ist für dieses Tutorial jedoch übersichtlicher.
4.4 CoreLAN-NIC wieder verbinden
Erst jetzt, nach abgeschlossener Basiskonfiguration, die zuvor getrennte NIC wieder aktivieren:
- In Proxmox: VM → Hardware → die CoreLAN-NIC öffnen.
- Option “Trennen” wieder deaktivieren, mit OK bestätigen.
Die Konsole zeigt danach die finale Übersicht:
- LAN (vtnet1) -> v4: 192.168.10.1/24
- WAN (vtnet0) -> v4: 192.168.1.91/24 (oder falls DHCP gewählt, IP aus CoreLAN Adressbereich)
5. Management-VM (Linux-Live-Image) für die weitere WebUI-Konfiguration
Die OPNsense-WebUI ist nach der Grundkonfiguration ausschließlich über das LAN-Interface (IsoLAN) erreichbar, da nur dort eine Default-Allow-Regel existiert, die auch Zugriff auf die Firewall selbst einschließt. Auf dem WAN-Interface (CoreLAN) existiert dafür zunächst keine Regel.
Temporäre Management-VM starten
- In Proxmox eine neue, schlanke VM anlegen (z. B. mit einem Linux-Live-Image mit Desktopumgebung und Browser, etwa einer gängigen Live-Distribution).
- Netzwerkkarte dieser VM an die Bridge
isoLANanbinden. - VM starten, Live-System bootet direkt in eine grafische Desktopumgebung, ohne Installation.
- Netzwerkverbindung prüfen: Die VM sollte automatisch über DHCP eine Adresse aus dem Bereich
192.168.10.10–192.168.10.200erhalten (bezogen vom OPNsense-DHCP-Server). - Browser öffnen und
http://192.168.10.1(oder https, wenn konfiguriert) aufrufen. - Zertifikatswarnung bestätigen, wenn https konfiguriert (selbstsigniertes Zertifikat).
- Login mit
rootund dem zuvor an der Konsole vergebenen Passwort.
6.0 WebUI-Zugriff aus dem WAN (CoreLAN) einrichten
Um den Traffic aus dem CoreLAN (WAN-Interface von OPNsense) bis zur Firewall weiterzuleiten, muss unter Schnittstellen → WAN (CoreLAN) die Option „Private Netzwerke blockieren“ deaktiviert werden. Da es sich bei 192.168.1.0/24 um ein privates RFC1918-Netz handelt, würde OPNsense diesen Traffic andernfalls bereits durch eine automatisch generierte Regel vor der Verarbeitung der eigenen Firewall-Regeln verwerfen. „Bogon-Netzwerke blockieren“ kann hingegen aktiviert bleiben.
Damit die WebUI künftig auch direkt aus dem CoreLAN über das WAN-Interface erreichbar ist und die temporäre Management-VM nicht mehr benötigt wird, wird anschließend eine entsprechende Firewall-Regel für das CoreLAN-Interface angelegt.
Die Firewall-Regeln werden zentral unter Firewall → Regeln verwaltet. Eine neue Regel wird über das rote “+”-Symbol unten rechts in der Liste angelegt, Der Bearbeiten-Dialog lässt sich über den Schalter “Erweiterter Modus” oben links um zusätzliche Felder erweitern.
Menü: Firewall → Regeln, über “+” neue Regel:
-
- Aktiviert: Häkchen gesetzt
- Beschreibung: “Allow WAN / CoreLAN -> OPN Webui”
- Schnittstelle: WAN (CoreLAN)
- Schnell: Haken setzen
- Aktion: Erlauben
- Richtung: Eingehend
- Version: IPv4
- Protokoll: beliebig – damit ist der vollständige Zugriff vom CoreLAN auf die Firewall erlaubt.
- Quelle: WAN network
- Quellport: beliebig – damit ist der vollständige Zugriff vom CoreLAN auf die Firewall erlaubt.
- Ziel: Diese Firewall
- Zielport: beliebig
Zielport
Eingabe Speichern und sicherstellen, dass Regel an erster Stelle in der Regelliste steht, dann mit Anwenden Änderungen laden. Ab diesem Zeitpunkt ist die WebUI unter https://192.168.1.91 auch direkt aus dem CoreLAN erreichbar, die Management-VM wird nicht mehr benötigt.
Hinweis: Der vollständige Zugriff ist für dieses Tutorial ausdrücklich gewünscht. Wenn stattdessen nur einzelne Dienste freigegeben werden sollen, kann die Regel gezielt auf das benötigte Protokoll und den jeweiligen Zielport eingeschränkt werden, z. B. TCP auf den konfigurierten WebUI-Port.
7. IPv6 im LAN (isoLAN) deaktivieren
Aus Gründen der Übersichtlichkeit und Sicherheit wird IPv6 im isoLAN nicht verwendet. Dadurch beschränkt sich die Netzwerkkonfiguration auf IPv4 und es müssen keine zusätzlichen IPv6-Routen oder Firewall-Regeln berücksichtigt werden. Hierzu wird unter Schnittstellen → LAN(isoLAN) bei IPv6-Konfigurationstype die Einstellung Keine ausgewählt und anschließend die Änderung übernommen. Zusätzlich ist sicherzustellen, dass für das isoLAN keine DHCPv6-Dienste oder Router Advertisements aktiviert sind.
Die Deaktivierung von IPv6 reduziert damit den Konfigurationsaufwand und verhindert, dass IPv6-Verbindungen die für das isoLAN definierten IPv4-Firewallregeln umgehen.
8. Abschließende Konfiguration
Für die Kommunikation zwischen CoreLAN und isoLAN sind Routing und Firewall-Regeln gleichermaßen erforderlich. Eine Freigabe durch die Firewall allein stellt noch keine funktionierende Verbindung her. Da 192.168.10.0/24 ein für CoreLAN-Clients fremdes Subnetz ist, senden die Clients Pakete für dieses Zielnetz standardmäßig an ihr Default-Gateway. In diesem Beispiel ist dies die FRITZ!Box mit der IP-Adresse 192.168.1.1. Kennt die FRITZ!Box keine Route zum Netzwerk 192.168.10.0/24, kann sie die Pakete nicht gezielt an die OPNsense-Firewall weiterleiten. Das Paket erreicht OPNsense in diesem Fall nicht und kann dort folglich auch durch keine Firewall-Regel verarbeitet werden. Für den Zugriff von CoreLAN-Clients auf Systeme im isoLAN müssen daher zwei Voraussetzungen erfüllt sein:
- Routing: Der CoreLAN-Client bzw. der zuständige Router muss wissen, dass das Netzwerk
192.168.10.0/24über OPNsense erreichbar ist. - Firewall: OPNsense muss den anschließend eintreffenden Datenverkehr aus dem CoreLAN zum isoLAN durch eine entsprechende Firewall-Regel erlauben.
Erst wenn das Routing den Datenverkehr zur OPNsense-Firewall führt, kann diese anhand ihrer Regeln entscheiden, ob die gewünschte Verbindung zugelassen oder blockiert wird. Das Routing bestimmt somit den Weg des Pakets, während die Firewall die Zulässigkeit der Verbindung kontrolliert.
8.1 Route im CoreLAN einrichten
Da 192.168.10.0/24 ein für CoreLAN-Clients fremdes Subnetz ist, schicken Clients ihre Pakete dorthin standardmäßig an ihr Default-Gateway, in diesem Beispiel die FRITZ!Box 192.168.1.1. Kennt der Router das Netz 192.168.10.0/24 nicht, kommt das Paket bei OPNsense nie an.
Dazu muss eine der folgenden Varianten eingerichtet werden:
Option A – zentral im Router (empfohlen):
Statische Route im CoreLAN-Router (192.168.1.1) eintragen. Sie gilt anschließend für alle CoreLAN-Clients.
- Netzwerk:
192.168.10.0 - Subnetzmaske:
255.255.255.0 - Gateway: WAN-Adresse der OPNsense,
192.168.1.91
Option B – auf jedem Client:
Route auf jedem einzelnen CoreLAN-Client einrichten:
|
1 |
sudo ip route add 192.168.10.0/24 via 192.168.1.91 |
Diese Route ist bei ip route add standardmäßig nicht persistent und muss ggf. dauerhaft über die jeweilige Netzwerkverwaltung eingerichtet werden.
Ohne diese Route ist der Zugriff von CoreLAN auf isoLAN trotz korrekter OPNsense-Firewall-Regel nicht möglich.
8.2 Firewall-Regeln für WAN (CoreLAN)
Menü: Firewall → Regeln, jeweils neue Regel über “+” mit Schnittstelle: CoreLAN:
| # | Aktion | NIC | Version | Protokoll | Quelle | Quellport | Ziel | Zielport | Zweck |
| 1 | Erlauben | WAN | IPv4 | beliebig | WAN network (CoreLAN) | beliebig | Diese Firewall | beliebig / 443 | WebUI-Zugriff aus CoreLAN erlauben (Regel aus 5.2) |
| 2 | Erlauben | WAN | IPv4 | beliebig | beliebig | beliebig | LAN network (isoLAN) | beliebig | Zugriff auf isoLAN Netzwerk erlauben |
Menü: Firewall → Regeln, über “+” neue Regel:
- Aktiviert: Häkchen gesetzt
- Beschreibung: “ALLOW CoreLAN => isoLAN”
- Schnittstelle: WAN (CoreLAN)
- Schnell: Haken setzen
- Aktion: Erlauben
- Richtung: Eingehend
- Version: IPv4
- Protokoll: beliebig – vollständiger Zugriff aller Protokolle von WAN (CoreLAN) nach LAN (isoLAN)
- Quelle: beliebig – vollständiger Zugriff von allen IP Adressen von WAN (CoreLAN) nach LAN (isoLAN)
- Ziel: LAN network (isoLAN)
- Quellport: beliebig – vollständiger Zugriff aller Protokolle von WAN (CoreLAN) nach LAN (isoLAN)
- Ziel: Diese Firewall
- Zielport: beliebig – vollständiger Zugriff aller Protokolle von WAN (CoreLAN) nach LAN (isoLAN)
Eingabe Speichern und sicherstellen, dass Regel an zweiter Stelle in der Regelliste steht, dann mit Anwenden Änderungen laden. Damit werden Pakete aus dem WAN Netzwerk (CoreLAN) anhand der statischen Route (6.1) ins LAN Netzwerk (isoLAN) zugestellt.
8.3 Anti-Lockout-Regel deaktivieren
OPNsense erstellt für das als LAN zugewiesene Interface – in diesem Aufbau das isoLAN – automatisch eine Anti-Lockout-Regel, die den Zugriff auf die Firewall unabhängig von eigenen Firewall-Regeln erlaubt. Da diese Regel vor den eigenen Regeln ausgewertet wird, würde eine Sperrregel für die Firewall Dienste aus dem isoLAN nicht greifen. Da der administrative Zugriff auf die OPNsense-WebUI bereits über das CoreLAN eingerichtet ist (siehe Abschnitt 5.2), kann die Anti-Lockout-Regel für das isoLAN deaktiviert werden:
Menü: Firewall → Einstellungen → Erweitert
- Anti-Aussperrregel deaktivieren: Haken setzen
Eingabe Speichern
Hinweis: Sollte man sich danach versehentlich aus der WebUI aussperren, bleibt die Proxmox-VM-Konsole als Fallback erhalten – dort lässt sich über das Konsolenmenü (z. B. Option 1) Assign interfaces oder 13) Restore a backup) wieder eingreifen.
8.4 Firewall-Regeln für LAN (isoLAN)
Die bereits in den Punkten 6 und 8.2 erstellten Regeln (1 / 2) und Routen 8.1 steuern die Kommunikation zwischen dem WAN-Netzwerk (CoreLAN), der Firewall und dem LAN-Netzwerk (isoLAN). Standardmäßig hat das LAN-Netzwerk uneingeschränkten Zugriff auf das WAN-Netzwerk sowie die Firewall selbst. In diesem Fall ist dies jedoch nicht gewünscht, da das WAN-Netzwerk (CoreLAN) das sichere Netz darstellt, während das LAN-Netzwerk (isoLAN) als unsicher eingestuft wird. Da der Zugriff vom WAN-Netzwerk auf die Dienste der Firewall standardmäßig gesperrt ist, sind für den Betrieb des OPNsense-DHCP- und DNS-Servers drei weiter Regeln (3,4,5) erforderlich.
- Regel 3 und 4 gewähren dem WAN-Netzwerk Zugriff auf den OPNsense DHCP- und DNS-Server.
- Regel 5 sperrt den WAN Zugriff auf alle anderen Dienste, sodass nur der DNS- und DHCP-Server von OPNsense im WAN-Netzwerk erreichbar sind.
- Regel 6 und 7 sperren den WAN-Netzwerk Zugriff auf geschützte Netze.
- Regel 8 und 9 gewähren dem WAN-Netzwerk Zugriff auf das Internet (Regel werden meist automatisch erstellt).
Menü: Firewall → Regeln, jeweils neue Regel über “+” mit Schnittstelle: isoLAN. Reihenfolge von oben nach unten:
| # | Aktion | NIC | Version | Protokoll | Quelle | Quellport | Ziel | Zielport | Zweck |
| 1 | Erlauben | WAN | IPv4 | beliebig | WAN network (CoreLAN) | beliebig | Diese Firewall | beliebig / 443 | WebUI-Zugriff aus CoreLAN erlauben (Regel aus 5.2) |
| 2 | Erlauben | WAN | IPv4 | beliebig | beliebig | beliebig | LAN network (isoLAN) | beliebig | Zugriff auf isoLAN Netzwerk erlauben |
| 3 | Erlauben | LAN | IPv4 | TCP/UDP | isoLAN network | beliebig | Diese Firewall | 53 | DNS-Auflösung über OPNsense-Resolver |
| 4 | Erlauben | LAN | IPv4 | UDP | isoLAN network | beliebig | Diese Firewall | 67 | DHCP-Anfragen an OPNsense |
| 5 | Blockieren | LAN | IPv4 | beliebig | isoLAN network | beliebig | Diese Firewall | beliebig | Rest des Zugriffs auf die Firewall selbst sperren (WebUI, SSH, Ping etc.) |
| 6 | Blockieren | LAN | IPv4 | beliebig | isoLAN network | beliebig | CoreLAN network | beliebig | CoreLAN komplett sperren |
| 7 | Blockieren | LAN | IPv4 | beliebig | isoLAN network | beliebig | Einzelner Host oder Netzwerk: 192.168.2.0/24 | beliebig | Beispiel für ein weiteres, mit CoreLAN verbundenes Netz (z. B. VPN) |
| 8 | Erlauben | LAN | IPv4 | beliebig | isoLAN network | beliebig | beliebig | beliebig | restlicher IPv4-Traffic = Internetzugriff (automatisch angelegt) |
| 9 | Erlauben | LAN | IPv6 | beliebig | isoLAN network | beliebig | beliebig | beliebig | restlicher IPv6-Traffic = Internetzugriff (automatisch angelegt) |
Um nicht jedes private Netzwerk (Regeln 6/7) einzeln in der Firewall konfigurieren zu müssen, können mithilfe der passenden Netzwerkmaske (CIDR) ganze private IP-Bereiche zusammengefasst und gesperrt werden. Die Einstellung erfolgt über die Ziel-IP bzw. das Zielnetzwerk der Firewall-Regel.
- 192.168.1.0/24 → 192.168.1.0–192.168.1.255 (256 Adressen)
- 192.168.0.0/16 → 192.168.0.0–192.168.255.255 (65.536 Adressen)
Wichtig zur Richtung: Bei allen Regeln muss die Richtung auf “Eingehend” stehen (Traffic, der auf dem isoLAN-Interface ankommt), nicht “Ausgehend”. Eine versehentlich auf “Ausgehend” gestellte Regel matcht praktisch nie und wird von der darunterliegenden Allow-Regel überdeckt.
Wichtig zur Reihenfolge: Die Blockierungsregeln (5-7) müssen vor den Erlauben-Regeln für den Internetzugriff (8-9) stehen, da nach dem Prinzip “erste Übereinstimmung gewinnt” ausgewertet wird. Die Reihenfolge kann in der Übersicht bei Bedarf angepasst werden.
Hinweis bei mehreren Netzen innerhalb des CoreLAN (z. B. VPN): Existieren neben 192.168.1.0/24 weitere, mit dem CoreLAN verbundene Netze (z. B. ein VPN-Netz wie 192.168.2.0/24), sind diese von der Sperrung in Abschnitt 6.3, Regel 4 (“Blockieren, isoLAN → CoreLAN network”) nicht automatisch mit erfasst – es gibt keine automatische Sperre für “alles, was mit CoreLAN verbunden ist”. Für jedes weitere Netz muss auf dem isoLAN-Interface eine eigene, zusätzliche Blockierungsregel angelegt werden; ein konkretes Beispiel dafür ist bereits als Regel 5 in der Tabelle in Abschnitt 6.2 enthalten (Blockieren, Ziel: Einzelner Host oder Netzwerk 192.168.2.0/24, Beschreibung “Deny isoLAN => VPNLAN”).
9. Tipps, Hinweise und mögliche Fehlerquellen
Outbound-NAT ist für den Internetzugriff nicht grundsätzlich erforderlich
Für den Internetzugriff des isoLAN ist eine Outbound-NAT-Regel nicht zwingend erforderlich, sofern das übergeordnete Netzwerk bzw. der Router eine entsprechende Route zum isoLAN kennt. In vielen typischen Heimnetzwerk-Szenarien ist diese Route jedoch nicht vorhanden.
In diesem Fall kann OPNsense den Datenverkehr des isoLAN per Outbound NAT auf seine CoreLAN-Adresse (192.168.1.91) maskieren. Der Router im CoreLAN sieht dadurch ausschließlich die Adresse der OPNsense-Firewall und benötigt keine eigene Route zum isoLAN.
Unter Firewall → NAT → Quell-NAT kann hierfür die automatische Erzeugung von Outbound-NAT-Regeln verwendet werden. OPNsense erstellt dabei automatisch eine Regel, die Verbindungen aus dem isoLAN (192.168.10.0/24) beim Verlassen über das CoreLAN/WAN-Interface auf die entsprechende OPNsense-Adresse maskiert.
Hinweis: Ob Outbound NAT tatsächlich erforderlich ist, hängt vom vorhandenen Routing ab. Bei einer korrekt eingerichteten statischen Route zum isoLAN auf dem vorgelagerten Router kann darauf verzichtet werden.
Fehlerquelle: „Antwort an“ (Reply-to)
Falls der Zugriff vom CoreLAN auf das isoLAN trotz korrekter Routing- und Firewall-Konfiguration nicht funktioniert, kann die OPNsense-Option „Antwort an“ (Reply-to) die Ursache sein.
OPNsense kann für Regeln auf dem CoreLAN-Interface standardmäßig das dort konfigurierte Gateway als festen Rückweg für Antwortpakete verwenden. In bestimmten Netzwerktopologien führt dies dazu, dass Antwortpakete nicht direkt an den anfragenden CoreLAN-Client zurückgesendet werden.
Zur Behebung kann bei der entsprechenden Firewall-Regel „Antwort an“ → „Deaktivieren“ gesetzt werden:
- Die betreffende Firewall-Regel über das Stift-Symbol bearbeiten.
- „Erweiterter Modus“ aktivieren.
- Im Bereich „Quellrouting“ das Feld „Antwort an“ suchen.
- „Deaktivieren“ auswählen und die Regel speichern.
Dadurch verwendet OPNsense für die Antwortpakete nicht mehr das durch Reply-to vorgegebene Gateway, sondern das normale Routing der Firewall.
by Speefak
