# OPNsense

OPNsense ist eine freie Firewall-Distribution auf Basis von FreeBSD auf der 64-Bit-x86-Architektur (x64). Bis 2021 wurde dabei mit HardenedBSD das offizielle FreeBSD (bis Version 12.x) u. a. um Address Space Layout Randomization (ASLR) erweitert.
Die OPNsense-Software steht unter der FreeBSD-Lizenz („2-clause BSD license“) und darf frei kopiert, verändert und verbreitet werden, auch für kommerzielle Projekte.

## Grundlegende Eigenschaften

Die Distribution kann kostenlos heruntergeladen werden.
OPNsense kann auf Festplatten und CompactFlash-Karten installiert, sowie von Live-CDs gestartet werden. OPNsense läuft auf einer Reihe von eingebetteten (embedded) Systemen, gewöhnlichen Personal Computern und als virtuelle Maschine.
Typische Anwendungen sind stateful Perimeter-Firewalls, Router, Wireless Access Points, DHCP-Server, DNS-Server und VPN-Endpunkte. Hierfür bietet OPNsense Eigenschaften, die oftmals nur von teuren kommerziellen Firewalls geboten werden. Mit Hilfe einer Webschnittstelle (Webinterface) kann OPNsense leicht konfiguriert werden und Updates sind komfortabel einzurichten, ohne dass genaue Kenntnisse des unterliegenden FreeBSD Betriebssystems erforderlich werden. Im Gegensatz zu vergleichbarer Open Source Firewall Software wie IPFire und pfSense bietet OPNsense Zwei-Faktor-Authentisierung.
OPNsense basiert auf FreeBSD und nutzte zwischen Version 16.7 und 21.7 dessen gehärtete Variante HardenedBSD, die gemeinsam mit der FreeBSD-Gemeinde entwickelt, jedoch mit FreeBSD Version 13 wieder aufgegeben wurde, da die gehärteten Funktionen inzwischen auch in FreeBSD verfügbar sind. Das OPNsense-Projekt ist auf Code-Qualität, einfache Code-Entwicklung und freien Zugang zu den Build-Werkzeugen ausgelegt. Es wendet das Model View Controller Paradigma an.
OPNsense erlaubte in den Version von 15.7 bis 22.7 die Benutzung der freien Kryptobibliothek LibreSSL, alternativ zum Standard OpenSSL (wählbar im WebUI).

## Name

Der Name ist vom Suffix des Namens seines Vorläufers pfSense und open abgeleitet und steht für: Open Source ergibt Sinn.

## Geschichte

Das Projekt wurde am 2. Januar 2015 ins Leben gerufen. Es ist eine Abspaltung (Fork) von pfSense, welches im Jahr 2004 selbst als Projektabspaltung von m0n0wall begann.
Das Projekt führt drei Gründe für seine Abspaltung an:
* Technische Gründe – klare, strukturierte Code-Basis, die von Entwicklern benutzt und gepflegt werden kann, soll entstehen
* Community (Gemeinschaft) – eine aktive, tragende Gemeinschaft von Anwendern und Entwicklern wird angestrebt
* Lizenz – OPNsense soll auf der bewährten 2-Klausel BSD-Lizenz aufgebaut werden, die flexibel im gewerblichen und freien Umfeld eingesetzt werden kann
Das OPNsense-Projekt wird von der niederländischen „Deciso B.V.“ finanziell und sachkundig unterstützt. Deciso B.V. tritt schon seit längerer Zeit als Sponsor und Co-Entwickler von anderen freien, quelloffenen Softwareprojekten auf, namentlich für pfSense, m0n0wall, Askozia und Zen Load Balancer.
Im November 2017 stellte ein Schiedsgericht der Weltorganisation für geistiges Eigentum fest, dass Netgate, der Urheber von pfSense, die Domain opnsense.com in böswilliger Absicht benutzt hatte, um OPNsense zu diskreditieren, und verpflichtete Netgate, die Domain an Deciso zu übertragen. Die Netgate-Partei versuchte, sich auf die Fair-Use-Klausel zu berufen und behauptete, dass der Domainname „für eine Parodie-Website verwendet wurde“; dies wurde mit der Begründung abgelehnt, dass die Meinungsfreiheit die Registrierung von Domainnamen nicht abdeckt.

## Plugins

OPNsense bietet neben den Grundfunktionen einer Firewall auch eine Reihe von Plugins an, die einfach über das WebUI nachinstalliert werden können, um weitere Funktionen hinzuzufügen. Die meisten Plugins sind sogenannte "Community Plugins", welche frei verfügbar / verwendbar sind. Einige wichtige Plugins sind zum Beispiel (nach Kategorie):
* DNS
** Dynamic DNS (auch RFC2136)
** BIND
* VPN
** OpenVPN
** WireGuard
** Tinc
* Routing
** frr
** tor
* Web
** Reverse Proxy and Webserver
** nginx
** HAProxy
** ACME Client
* Postfix mail relay
* Antivirus (c-icap, ClamAV, rspamd)
* Sonstige
** Zabbix Proxy und Agent
** diverse Treiber und Guest Agents (VMware, Quemu, Realtek, VirtualBox)
** Intrustion Detection / Intrustion Prevention
** IGMP Proxy
** SNMP
** iperf
** SMART-Tools
Es gibt auch einige Plugins, die nur über das Business-Repository (kostenpflichtig) verfügbar sind, zum Beispiel:
* Central Management (OPNCentral)
* GeoIP Datenbank
* OPNWAF (Web Application Firewall)
Die Firma "m.a.x. it" aus München bietet ebenfalls kostenpflichtige Plugins und Support für OPNsense an.

## Business Repository

Deciso bietet ein Business-Repository an, welches über ein kostenpflichtiges Abo erworben werden kann. Im Vergleich zur Community / Free Edition gibt es hier unter anderem getestete Updates, Zugriff auf das offizielle OPNsense OVA Image, diverse Business Plugins (siehe Plugins) oder ein kostenloses E-Book. Des Weiteren unterstützt man die aktive Entwicklung mit der Lizenzgebühr.

## Versionstabelle

Die Versionsnummern von OPNsense spiegeln nicht die Signifikanz der Veränderungen, sondern das Veröffentlichungsdatum wider (z. B. Veröffentlichung im Januar 2015 entspricht Version 15.1).
OPNsense Community Edition (die Business Edition hat meist andere Versionsnummern) :
| Version | Codename, mögl. Übersetzung | Veröffentlichung | Anmerkung |
| Ältere Version; nicht mehr unterstützt: 15.1 | Ascending Albatross, aufsteigender Albatros | 2. Januar 2015 | erste Version nach der Abspaltung von pfSense, FreeBSD 10 als Basis |
| Ältere Version; nicht mehr unterstützt: 15.7 | Brave Badger, mutiger Dachs | 2. Juli 2015 | bietet mit Suricata ein NIDS; inkludiert neben OpenSSL nun auch LibreSSL und erlaubt einen einfachen Wechsel |
| Ältere Version; nicht mehr unterstützt: 16.1 | Crafty Coyote, listiger Kojote | 28. Januar 2016 | FreeBSD 10.2, verbesserte Übersetzungen für Deutsch, Japanisch, Chinesisch und Französisch. |
| Ältere Version; nicht mehr unterstützt: 16.7 | Dancing Dolphin, tanzender Delfin | 28. Juli 2016 | HardenedBSD auf Basis von FreeBSD 10.3, Unterstützung für UEFI, Sprachunterstützung verbessert |
| Ältere Version; nicht mehr unterstützt: 17.1 | Eclectic Eagle, vielseitiger Adler | 31. Januar 2017 | FreeBSD 11.0 (HardenedBSD), weitere Übersetzungen ins Italienische, Tschechische und Portugiesische |
| Ältere Version; nicht mehr unterstützt: 17.7 | Free Fox, offenherziger Fuchs | 31. Juli 2017 | mehr Plugins, Übersetzungen Tschechisch, Chinesisch, Japanisch, Portugiesisch und Deutsch nun komplett |
| Ältere Version; nicht mehr unterstützt: 18.1 | Groovy Gecko, fetziger Gecko | 29. Januar 2018 | FreeBSD 11.1 (HardenedBSD), weitere Plugins; an Patches gegen Spectre und Meltdown wurde nach der ersten Veröffentlichung gearbeitet |
| Ältere Version; nicht mehr unterstützt: 18.7 | Happy Hippo, fröhliches Flusspferd | 6. August 2018 | FreeBSD 11.2 (HardenedBSD) |
| Ältere Version; nicht mehr unterstützt: 19.1 | Inspiring Iguana, begeisternder Leguan | 31. Januar 2019 | die Integration von HardenedBSD 11.2 wurde vervollständigt und das Firewall-API wurde finalisiert |
| Ältere Version; nicht mehr unterstützt: 19.7 | Jazzy Jaguar, toller Jaguar | 17. Juli 2019 | selbständiges Logging mit syslog-ng, Übersetzung ins Spanische, weitere Plugins: Netdata und WireGuard VPN |
| Ältere Version; nicht mehr unterstützt: 20.1 | Keen Kingfisher, verwegener Eisvogel | 30. Januar 2020 | letzte Version für 32-Bit-x86 (IA-32) „i386“ |
| Ältere Version; nicht mehr unterstützt: 20.7 | Legendary Lion, sagenhafter Löwe | 30. Juli 2020 | HardenedBSD 12.1 und nur noch 64-Bit-x86 (x64, IA-32 mit 64-Bit-Erweiterung) „amd64“; Suricata 5 |
| Ältere Version; nicht mehr unterstützt: 21.1 | Marvelous Meerkat, fantastisches Erdmännchen | 28. Januar 2021 | Verbesserungen der Firewall-Regeln und der Web-Oberfläche |
| Ältere Version; nicht mehr unterstützt: 21.7 | Noble Nightingale, edle Nachtigall | 28. Juli 2021 | Verbesserte Traffic Graphen sowie Update auf PHP 7.4, Python 3.8 sowie OpenVPN 2.5; native ZFS-Unterstützung im Installer: bei den Installations-Medien dvd, vga und serial kann zwischen dem Unix File System (UFS2) und ZFS (OpenZFS) gewählt werden; letzte Version, die auf HardendBSD aufbaut. |
| Ältere Version; nicht mehr unterstützt: 22.1 | Observant Owl, wachsame Eule | 27. Januar 2022 | Upgrade auf FreeBSD 13 (HardenedBSD als gehärtete Variante von FreeBSD wird nicht mehr gesondert weiterentwickelt). Durch diese große Änderung am Unterbau empfehlen die Entwickler vor der Aktualisierung eine Sicherung zu erstellen. Auch fehlt dadurch der bisherige Treiber für modernere Realtek-Netzwerkkarten (2.5G-Modelle). Als unsicher eingestufte ältere Kryptographieoptionen wurden entfernt, sodass bestehende IPsec-Einstellungen eventuell angepasst werden müssen. |
| Ältere Version; nicht mehr unterstützt: 22.7 | Powerful Panther, kraftvoller Panther | 28. Juli 2022 | Upgrade auf FreeBSD 13.1 und PHP 8.0. Die Version beinhaltet zahlreiche Detailverbesserungen. Als Neuerung ist nun eine Funktion zum Schutz vor DDoS (Distributed Denial of Service) enthalten. LibreSSL wird hingegen nicht mehr gepflegt und wird ab der nächsten Version nicht mehr in OPNsense enthalten sein. |
| Ältere Version; nicht mehr unterstützt: 23.1 | Quintessential Quail, typische Wachtel | 26. Januar 2023 | Upgrade auf FreeBSD 13.2 und PHP 8.1. LibreSSL wurde entfernt. |
| Ältere Version; nicht mehr unterstützt: 23.7 | Restless Roadrunner, ruheloser Wegekuckuck | 23. Juli 2023 | OpenVPN-Verbesserungen, Upgrade auf PHP 8.2. |
| Ältere Version; nicht mehr unterstützt: 24.1 | Savvy Shark, gerissener Hai | 30. Januar 2024 | |
| Ältere Version; nicht mehr unterstützt: 24.7 | Thriving Tiger, erfolgreicher Tiger | 25. Juli 2024 | u. a. Upgrade auf FreeBSD 14.1 und Python 3.11, sowie ein neues Dashboard |
| Aktuelle Version: 25.1 | Ultimate Unicorn, letztes Einhorn | 29. Januar 2025 | u. a. Upgrade auf FreeBSD 14.2 und PHP 8.3, Unterstützung für ZFS-Snapshots und ein überarbeitetes WebUI inkl. dunklem Farbschema (englisch dark theme) |
| Legende:Alte VersionÄltere Version; noch unterstütztAktuelle VersionAktuelle VorabversionZukünftige Version ||||