IPFilter ist vor allem vorhanden, da es unter anderen Unix-Dialekten sehr weit verbreitet ist und man den Anwendern den Umstieg erleichtern will. Neue Systeme darauf aufbauen würde ich im Jahr 2008 nicht mehr, hat sich von seiner Konzeption einfach überlebt.
IPFW2 ist FreeBSDs eigene Firewall, sie kann zusammen mit den Traficshapern ALTQ und Dummynet eingesetzt werden. Sie wird seit ca. 10 Jahren aktiv entwickelt, ist von den Möglichkeiten her der umfangreichste Paketfilter. Viele auf FreeBSD basierende, professionelle Netzwerkgeräte nutzen IPFW2, ihre Herstellern sponsern die Weiterentwicklung. Aber IPFW2 ist - gerade wenn du statefull (also dir Verbindungen merken willst) filter möchtest - nicht gerade einfach im Aufbau.
pf stammt aus OpenBSD und der jüngste der Drei. pf hat alle wichtigen Features, es ist ausreichend schnell und vor allem einfach. Das Risiko ein Loch in das Regelwerk zu reißen ist geringer als bei IPFW und IPFilter, außerdem ist das Ding das am besten dokumentierte der Drei. Mit ALTQ steht ein Trafficshaper zur Verfügung, der für den Heimeinsatz mehr als außreichend ist, dazu kommen Möglichkeiten wie mehrere Paketfilter miteinander zu synchronieren und dadruch per CARP eine ausfallsichere Lösung zu bauen. Ergänzt wird dies durch eine Menge externer Tools wie pftop, den FTP-Proxie und Dienste für "Universal Plug and Play".
==> Im Zweifel würde ich pf nehmen, als Anfänger fährst du damit - auch durch die Doku - am besten, sie ist wenig frustrierend und mehr als ausreichend für die allermeisten Netzwerke. Es gibt nur ein Argument gegen pf und das ist "Netgraph". Sagt dir das nun nichts, vergiss es einfach
