Netgate sponsort die Modernisierung der FreeBSD-Variante von pf(4)

Mit FreeBSD 15.0 sollen spĂĽrbare Verbesserungen fĂĽr dessen pf(4)-Variante kommen. Davon profitieren auch pfSense und OPNsense.

vorlesen Druckansicht 4 Kommentare lesen
Sicherheitsschloss auf einer ausgestreckten Hand

(Bild: FON's Fasai/Shutterstock.com)

Lesezeit: 5 Min.
Von
  • Michael Plura
Inhaltsverzeichnis
close notice

This article is also available in English. It was translated with technical assistance and editorially reviewed before publication.

Netgate will zusammen mit InnoGames die angestaubte FreeBSD-Variante von pf(4) auf den aktuellen Stand von OpenBSD bringen. Damit soll die Kernfunktion von pfSense deutlich moderner und sicherer werden. Das teilte Jim Thompson, CTO (Chief Technology Officer) bei Netgate, in einem Blogpost mit. Netgate wurde 2008 zum kommerziellen Sponsor und 2008 offizieller EigentĂĽmer der auf FreeBSD basierenden Firewall-Distribution pfSense.

Konkret unterstĂĽtzt Netgate den freiberuflichen Entwickler Kristof Provost, der bereits seit ĂĽber 13 Jahren FreeBSD-Commits im Bereich Netzwerk- und Videoanwendungen liefert. Die InnoGames GmbH aus Hamburg entwickelt Free-to-play Online-Spiele fĂĽr Browser und mobile Plattformen und unterstĂĽtzt den Network-Engineer Kajetan Staszkiewicz. Er fĂĽhrte die OpenBSD-Syntax fĂĽr scrub-Operationen in match- und pass-Regeln ein und arbeitet aktiv am pf(4)-Code.

Die Unterstützung durch die beiden Unternehmen fällt mit der für FreeBSD-Verhältnisse riesigen Zusage des Sovereign Tech Fund (STF) zusammen, der die FreeBSD Foundation mit 686.400 Euro unterstützen wird. Der Sovereign Tech Fund (STF) ist eine von der deutschen Bundesregierung initiierte NGO, die 2022 vom Bundesministerium für Wirtschaft und Klimaschutz (BMWK) ins Leben gerufen wurde. Die Unterstützung wurde zugesagt, um Infrastruktur, Sicherheit, regulatorische Compliance und die Entwicklererfahrung bei FreeBSD zu verbessern.

Das konsequent auf Sicherheit und korrekten Code ausgerichtete OpenSource-Betriebssystem benutzt den Paketfilter pf(4) fĂĽr alle wichtigen Firewall-Aufgaben wie das Filtern von TCP/IP-Datenverkehr, NAT (Network Address Translation), Normalisierung und Konditionierung von TCP/IP-Paketen oder zur Bandbreitenkontrolle und Paketpriorisierung. Der Paketfilter ist seit OpenBSD 3.0 (Dezember 2001) Teil des GENERIC-Kernels.

Zuvor verwendete OpenBSD den IPFilter (IPF) von Darren Reed, dessen Lizenz jedoch nur Änderungen von ihm persönlich am Quellcode erlaubte. Deswegen programmierte der Schweizer Daniel Hartmeier einen von Grund auf neuen Paketfilter namens pf(4), der mittlerweile vom gesamten OpenBSD-Team gepflegt, auditiert und auch mit Unterstützung aus der Industrie weiterentwickelt wird. So überzeugte die Sicherheit und Zuverlässigkeit von pf(4) etwa die deutsche Genua GmbH, die Hochsicherheitslösungen entwickelt und ihre High Resistance Firewall genugate bereits 2004 auf OpenBSD umstellte.

2004 wurde OpenBSDs pf(4) auf FreeBSD 5.3 portiert und stellte eine Alternative zum 1995 eingefĂĽhrten IPFW dar. Um einen Ăśberblick ĂĽber Funktion, Einrichtung und Syntax der drei Paketfilter zu bekommen, lohnt sich ein Blick in das FreeBSD-Handbuch unter Kapitel 33: Firewalls. Randnotiz: Das neue pf(4) in FreeBSD war ein Hauptgrund fĂĽr die Entwicklung von pfSense als Alternative zu Manuel Kaspers leichtgewichtiger m0n0wall.

Beide Distributionen haben unterschiedliche Designziele und Prioritäten: FreeBSD ist ein auf Netzwerk-Performance optimiertes Server-System, OpenBSD dient als Entwickler- und Appliance-Basis. So entstand ein unvermeidliches Dilemma: OpenBSD experimentiert mit neuen Funktionen und Sicherheitsfeatures, FreeBSD wollte vor allem Datendurchsatz und Skalierbarkeit. Der Quellcode von pf(4) war anfangs noch identisch, und das FreeBSD-Team übernahm die meisten Änderungen von OpenBSD. Im Laufe der Zeit entwickelten sich die beiden pf(4)-Varianten jedoch immer weiter auseinander, die komplett neue Syntax für pf(4) von OpenBSD 4.7 ignorierte FreeBSD komplett.

Seit etwa 2013 sind die beiden Projekte zwar immer noch ähnlich, aber nicht mehr zueinander kompatibel. Beispielsweise reserviert OpenBSDs pf(4) Speicher per pool_get(), das von FreeBSD hingegen per uma_zalloc(). Enthält eine Regel als Wert für eine IP-Adresse nur 10 so spuckt OpenBSD eine Fehlermeldung aus, FreeBSD akzeptiert den Wert und interpretiert ihn als 0.0.0.10. In beiden Lagern hat man erkannt, dass dieser Zustand ineffektiv ist – eine enge Kooperation könnte mehr Sicherheit und Funktionen für FreeBSD und mehr Performance für OpenBSD bieten.

Videos by heise

Da OpenSource-Projekte wie auch pfSense durch strenge Kommerzialisierung nicht grundsätzlich besser werden, spaltete sich 2015 OPNsense unter dem Unternehmen Deciso B.V. aus den Niederlanden als Fork von pfSense ab. OPNsense hat bereits einige modernere Funktionen aus OpenBSD portiert, was Netgates pfSense im Vergleich schlechter aussehen lässt.

Kein Wunder also, dass Netgate bereits vor einiger Zeit damit begann, die Modernisierung von pf(4) in FreeBSD und damit pfSense voranzutreiben. Läuft alles nach Plan, sollen spürbare Verbesserungen von pf(4) mit FreeBSD 15.0 kommen, das für Dezember 2025 angekündigt ist. Anschließend dürften wiederum pfSense und OPNsense davon profitieren. Da auch Code in Richtung OpenBSD fließt, sollte das für beide BSD-Projekte eine Win-Win-Situation werden. Bislang finden sich allerdings in den vorläufigen FreeBSD 15.0-Release Notes noch keine konkreten Hinweise auf diese Änderungen – aber bis zum offiziellen Release am 02. Dezember noch etwas Luft.

Der Blogpost von CTO Jim Thompson findet sich hier.

(kki)