top of page
Autorenbilditernas

OPNsense, Cluster, HA, failover und carp

Aktualisiert: 18. Juni

Die OPNsense arbeitet wunderbar als fehlertoleranter Firewall-Cluster zusammen.

In der Konfiguration ist es dazu notwendig, drei wichtige generelle Funktionselemente einzurichten:

  • CARP, um IP-Adressen auch im Falle eines Defekts eines OPNsense-Gerätes bereitzustellen

  • pfsync, damit die aktuellen offenen Sessions in der OPNsense-Firewall („FW sessions table)“ auf alle anderen Firewalls synchronisiert werden

  • XMLRPC sync, um die Konfig von der primären OPNsense auf die 2. OPNsense-Firewall zu synchronisieren

Mit diesen drei Konfigurationen wird die OPNsense zu einem robusten Cluster.

-> Diese Informationen betreffen grundsätzlich alle Unix-basierten Systeme. Demzufolge sind die Firewalls von Genua, also die GenuGate und Genuscreen ebenso in einigen Punkten technisch vergleichbar.


Wichtig: Diese drei Möglichkeiten können auf der OPNsense auch jeweils einzeln und unabhängig verwendet werden. 


CARP:

Common Address Redundancy Protocol (CARP) sorgt auf der OPNsense für die Verfügbarkeit von einer oder mehreren IPv4- bzw. IPv6-Adressen und stellt somit permanente „fail-safe“ IP-Adressen als default Gateway im LAN oder als „next hop“ für den Carrier im WAN bereit.


Diese virtuellen IPv4- und IPv6-Adressen lassen sich dann an der OPNsense (genau wie an andere CARP implementieren, wie pfsense oder Genugate/Genuscreen) als Services IP-Adressen für BGP, VPN-Einwahl nutzen.


OPNsense CARP Aktivitäten sind im wireshark dargestellt
OPNsense CARP Wireshark

Die OPNsense benutzt CARP standardkonform wie VRRP die Protokoll ID 112, setzt also direkt auf den IP-Layer (ohne TCP/UDP) auf.

Im Wireshark werden im CARP falsche CARP IP-Adressen angezeigt: dies ist kein OPNsense-Problem, sondern liegt an der Verschlüsslung. OPNsense fordert eine Verschlüsselung bei CARP, damit sind die Daten auch für Wireshark ohne Passwort nicht mehr auswertbar.

Ursprünglich wurde CARP vom OpenBSD-Team entwickelt, um (auch aus Lizenzgründen) unabhängig von VRRP und HSRP zu sein.


Wichtig: Um die Services hinter den virtuellen (Carp) IP-Adressen praktisch nutzen zu können, sind auf der OPNsense-Firewall natürlich die passenden Firewallregeln notwendig.


pfsync („packet filter synchronization“) synchronisiert auf den OPNsense-Firewalls die aktuellen dynamisch angelegten Regeln, als den „statefull“-Anteil der OPNsense-Firewall.

Baut ein Client beispielsweise eine durch die Firewall zugelassene Verbindung auf, so werden die Antwortpakete ebenso zugelassen. Dazu legt die OPNsense-Firewall wie jede andere „statefull firewall“ eine dynamische Firewall-Regel an. Genau diese Regeln gilt es zu synchronisieren, damit im Fehlerfall die andere OPNsense-Firewall die Sessions ohne Unterbrechung für die Clients übernehmen kann.


Die pfsync-Datenpakete mit den Sessioninformationen werden an die Multicast-Adresse 224.0.0.240 gesendet. Jede Änderung auf den beiden (oder mehreren) OPNsense-Firewalls werden als Updates über ein definiertes Interface gesendet, dieser Abgleich kann von jeder OPNsense-Firewall und damit bidirektional erfolgen. Somit haben alle OPNsense-Firwalls die gleichen Session-Table.


OPNsense pfsync Pakte sind im wireshark dargestellt
OPNsense pfsync Wireshark



Als drittes ist es bei der OPNsense möglich, die Konfiguration von einer Firewall auf die andere Firewall zu übertragen. Die Lösung dahinter:


XMLRPC sync

Die primäre OPNsense wird dazu per http/https auf die Backup OPNsense zugreifen und die XML-Datei mit den Konfigdaten dort einspielt.

Genau genommen erfolgt diese Synchronisation für jedes Softwaremodule separat. Welche Konfigelemente auf die Backup OPNsense-Firewall übertragen werden, wird im Webfrontend festgelegt.

Für diesen Sync empfiehlt es sich, einen separaten User-Account anzulegen. Ebenso die passenden Firewallregeln, wir empfehlen die Verwendung eines separaten „Sync-Interfaces“. Über dieses können auch die pfsync-Informationen ausgetauscht werden.


Wichtig: Die Synchronisation der Konfiguration erfolgt bei der OPNsense nicht automatisch, sondern muß jeweils manuell auf der primären OPNsense angestoßen werden.
Alternativ kann man die OPNsense Konfiguration auch über die Kommandozeile mit dem Befehl
configctl filter sync
syncen lassen.

Zu beachten gilt, das die OPNsense-Konfig dabei auf dem Zielgerät mit dem zu syncenden Elementen überschrieben wird!


OPNsense xmlsync ist im Wireshark dargestellt
OPNsense config pf xml sync Wireshark


Fazit:


Die OPNsense Firewall ist hervorragend geeignet, um kleinere oder spezielle Bereiche abzusichern. Neben den vielen Plugins und Features sorgen die Redundanzmöglichkeiten für eine professionelle Einsatzmöglichkeit. Nach vielen Installationen und Beobachtungen von OPNsense- Sicherheitslösungen können wir klar sagen, die OPNsense hat alle notwendigen Cluster-Möglichkeiten. Wichtig ist, die Redundanzmöglichkeiten zu verstehen, genau dazu sollte dieser OPNsense-Artikel beitragen.



OPNsense & iternas GmbH:


Wir, die iternas GmbH, sind OPNsense-Partner und unterstützen damit das OPNsense-Projekt finanziell. Insbesondere sind wir ein Schulungspartner von und für OPNsense. Unsere Kunden wiederum erhalten erstklassigem Support durch den direkten Draht zu den Entwicklern von OPNsense.

Wir finden es wichtig, mit OPNsense eine „open“-Lösung und Lizenz anzubieten, um die IT-Sicherheit unabhängig vom Budget in unterschiedlichen Unternehmen, Organisationen und Einrichtungen zu erhöhen.


Zudem bieten wir hochkarätige OPNsense Firewall Schulungen und Workshops an: OPNsense Schulung



Bei Fragen zur Auswahl der geeigneten IT-Sicherheits- und Firewallösungen beraten wir Sie gerne.




3.170 Ansichten

Aktuelle Beiträge

Alle ansehen

DMZ verstehen

OPNsense-Partner

bottom of page