Im Juli 2003 wurde PF, die Standard-Firewall von OpenBSD, nach FreeBSD portiert und in die FreeBSD-Ports-Sammlung aufgenommen. 2004 war PF in FreeBSD 5.3 Teil des Basissystems. Bei PF handelt es sich um eine komplette, vollausgestattete Firewall, die optional auch ALTQ (Alternatives Queuing) unterstützt. ALTQ bietet Ihnen Quality of Service (QoS)-Bandbreitenformung.
Das OpenBSD-Projekt leistet bereits hervorragende Dokumentationsarbeit mit der PF FAQ. Aus diesem Grund konzentriert sich dieser Handbuchabschnitt nur auf diejenigen Besonderheiten von PF, die FreeBSD betreffen, sowie ein paar allgemeine Informationen hinsichtlich der Verwendung. Genauere Informationen zum Einsatz erhalten Sie in der PF FAQ.
Weitere Informationen zu PF für FreeBSD finden Sie unter http://pf4freebsd.love2party.net/.
Um die PF Kernel Module zu laden, fügen Sie folgende
Zeile in ihre /etc/rc.conf
ein:
Danach starten Sie das Startup Script um die Module zu laden:
#
/etc/rc.d/pf start
Das PF Modul wird nicht geladen, falls es die Ruleset
Konfigurationsdatei nicht findet. Standardmässig befindet
sich diese Datei in /etc/pf.conf
. Falls das
PF Ruleset sich an einem anderen Platz befindet, können Sie das
durch Hinzufügen einer Zeile ähnlich der folgenden, in
ihrer /etc/rc.conf
ändern:
/path/to/pf.conf
"Ein Beispiel für die Datei pf.conf
finden Sie im Verzeichnis /usr/share/examples/pf/
.
Das PF-Modul kann auch manuell über die Kommandozeile geladen werden:
#
kldload pf.ko
Protokollierungsfunktionen für PF werden durch das Modul
pflog.ko
zur Verfügung gestellt und
können durch folgenden Eintrag in der
/etc/rc.conf
aktiviert werden:
Danach starten Sie das Startup Script, um das Modul zu laden:
#
/etc/rc.d/pflog start
Falls Sie noch weitere Features für PF benötigen, müssen Sie diese in den Kernel einbauen.
Es ist nicht zwingend nötig, dass Sie PF-Unterstützung in den FreeBSD-Kernel kompilieren. Sie werden dies tun müssen, um eine von PFs fortgeschritteneren Eigenschaften nutzen zu können, die nicht als Kernelmodul verfügbar ist. Genauer handelt es sich dabei um pfsync(4), ein Pseudo-Gerät, welches bestimmte Änderungen der PF-Zustandstabelle offenlegt. Es kann mit carp(4) kombiniert werden, um ausfallsichere Firewalls mit PF zu realisieren. Weitere Informationen zu CARP erhalten Sie in Abschnitt 32.13, „CARP - Common Address Redundancy Protocol“ des Handbuchs.
Die Kernelkonfigurationsoptionen von PF befinden
sich in /usr/src/sys/conf/NOTES
und sind im
Folgenden wiedergegeben:
Die Option device pf
aktiviert die
Unterstützung für die „Packet
Filter“-Firewall (pf(4)).
Die Option device pflog
aktiviert das optionale
pflog(4)-Pseudonetzwerkgerät, das zum Protokollieren
des Datenverkehrs über einen bpf(4)-Deskriptor
dient. pflogd(8) ist in der Lage, diese Protokolldateien
auf Ihre Platte zu speichern.
Die Option device pfsync
aktiviert das optionale
pfsync(4)-Pseudonetzwerkgerät für die
Überwachung von „Statusänderungen“.
Die folgenden rc.conf(5)-Einträge konfigurieren PF und pflog(4) beim Systemstart:
Wenn Sie ein lokales Netzwerk hinter dieser Firewall betreiben und Pakete für dessen Rechner weiterleiten oder NAT verwenden wollen, benötigen Sie zusätzlich die folgende Option:
PF liest seine konfigurierten Regeln aus
pf.conf(5) (standardmässig /etc/pf.conf
)
und modifiziert, verwirft oder lässt Pakete passieren anhand der
Regeln oder Definitionen, die in dieser Datei gespeichert sind. FreeBSD
enthält dazu nach der Installation mehrere Beispieldateien, die
in /usr/share/examples/pf/
abgelegt sind.
Für eine ausführliche Behandlung des
PF-Regelwerks lesen Sie bitte die PF FAQ.
Beim Lesen der PF FAQ wollten Sie
darauf achten, dass verschiedene Versionen von FreeBSD auch
unterschiedliche Versionen von PF enthalten.
FreeBSD 8.X
(und älter)
FreeBSD-Versionen benutzen PF aus OpenBSD 4.1.
FreeBSD 9.X
(und neuer) benutzen
hingegen PF aus OpenBSD 4.5.
Die FreeBSD packet filter mailing list ist eine erste Anlaufstelle für Fragen zur Konfiguration und dem Einsatz der PF Firewall. Vergessen Sie nicht, vorher die Mailinglistenarchive zu durchsuchen, bevor Sie dort eine Frage stellen!
Benutzen Sie pfctl(8), um PF zu steuern. Unten finden Sie ein paar nützliche Befehle (lesen Sie auch die Manualpage zu pfctl(8), um alle verfügbaren Optionen nachzuschlagen):
Befehl | Zweck |
---|---|
pfctl | PF aktivieren |
pfctl | PF deaktivieren |
pfctl | Alle Filterregeln zurücksetzen (NAT, Filter, Zustand,
Tabelle, etc.) und erneut aus der Datei
/etc/pf.conf auslesen |
pfctl | Bericht über die Filterregeln, NAT-Regeln, oder Zustandstabellen |
pfctl | überprüft /etc/pf.conf auf
Fehler, lädt aber das Regelwerk nicht neu |
ALTQ muss vor der Verwendung in den FreeBSD-Kernel kompiliert werden. Beachten Sie, dass ALTQ nicht von allen verfügbaren Netzwerkkartentreibern unterstützt wird. Sehen Sie daher zuerst in altq(4) nach, ob Ihre Netzwerkkarte diese Funktion unter Ihrer FreeBSD-Version unterstützt.
Die folgenden Kerneloptionen aktivieren ALTQ sowie alle Zusatzfunktionen:
options ALTQ
aktiviert das
ALTQ-Framework.
options ALTQ_CBQ
aktiviert das
Class Based Queuing (CBQ).
CBQ erlaubt es, die Bandbreite einer Verbindung in
verschiedene Klassen oder Warteschlangen zu unterteilen, um die
Priorität von Datenpaketen basierend auf Filterregeln zu
ändern.
options ALTQ_RED
aktiviert
Random Early Detection
(RED). RED wird
zur Vermeidung einer Netzwerkverstopfung verwendet. Dazu
ermittelt RED die Größe der
Warteschlange und vergleicht diesen Wert mit den minimalen
und maximalen Grenzwerten der Warteschlange. Ist die
Warteschlange größer als das erlaubte Maximum,
werden alle neuen Pakete verworfen. Getreu seinem Namen
verwirft RED Pakete unterschiedlicher
Verbindungen nach dem Zufallsprinzip.
options ALTQ_RIO
aktiviert
Random Early Detection In and Out.
options ALTQ_HFSC
aktiviert den
Hierarchical Fair Service Curve-Paketplaner.
Weitere Informationen zu HFSC finden Sie
unter http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html.
options ALTQ_PRIQ
aktiviert
Priority Queuing (PRIQ).
PRIQ lässt Verkehr einer Warteschlange mit
höherer Priorität zuerst durch.
options ALTQ_NOPCC
aktiviert die
SMP Unterstützung von
ALTQ. Diese Option ist nur auf
SMP-System erforderlich.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.