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/.
Seit der Veröffentlichung von FreeBSD 5.3 ist PF als ein separates, zur Laufzeit ladbares Modul enthalten. Das System lädt das PF-Kernelmodul automatisch, wenn die rc.conf(5)-Anweisung pf_enable="YES" verwendet wird. Allerdings wird das PF-Modul nicht geladen, wenn das System keine Konfigurationsdatei mit einem Regelwerk finden kann. Der Standardpfad ist /etc/pf.conf. Wenn ihr PF-Regelwerk irgendwo anders abgelegt ist, tragen Sie pf_rules="/path/pf.rules" in ihre /etc/rc.conf ein, um den Pfad zu der Konfigurationsdatei anzugeben.
Anmerkung: Seit FreeBSD 7.0 ist die Beispiel-pf.conf aus dem Verzeichnis /etc nach /usr/share/examples/pf/ gewandert. Bei FreeBSD Versionen vor 7.0 existiert standardmässig eine Datei /etc/pf.conf.
Das PF-Modul kann auch manuell über die Kommandozeile geladen werden:
# kldload pf.ko
Das Kernelmodul wurde mit aktiviertem pflog(4) erstellt, welches Unterstützung für Protokollierung liefert. Falls Sie andere Eigenschaften von PF benötigen, müssen Sie PF-Unterstützung mit in den Kernel kompilieren.
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 Kapitel 29 des Handbuchs.
Die Kernelkonfigurationsoptionen von PF befinden sich in /usr/src/sys/conf/NOTES und sind im Folgenden wiedergegeben:
device pf device pflog device pfsync
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:
pf_enable="YES" # PF aktivieren (Modul, wenn nötig, aktivieren) pf_rules="/etc/pf.conf" # Datei mit Regeldefinitionen für pf pf_flags="" # zusätzliche Parameter für den Start von pfctl pflog_enable="YES" # starte pflogd(8) pflog_logfile="/var/log/pflog" # wo soll pflogd die Protokolldatei speichern pflog_flags="" # zusätzliche Parameter für den Start von pflogd
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:
gateway_enable="YES" # LAN Gateway aktivieren
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.
Warnung: Beim Lesen der PF FAQ wollten Sie darauf achten, dass verschiedene Versionen von FreeBSD auch unterschiedliche Versionen von PF enthalten:
FreeBSD 5.X - PF-Version von OpenBSD 3.5
FreeBSD 6.X - PF-Version von OpenBSD 3.7
FreeBSD 7.X - PF-Version von OpenBSD 4.1
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 -e |
PF aktivieren |
pfctl -d |
PF deaktivieren |
pfctl -F all -f /etc/pf.conf |
Alle Filterregeln zurücksetzen (NAT, Filter, Zustand, Tabelle, etc.) und erneut aus der Datei /etc/pf.conf auslesen |
pfctl -s [ Regeln | NAT | Zustand
] |
Bericht über die Filterregeln, NAT-Regeln, oder Zustandstabellen |
pfctl -vnf /etc/pf.conf |
ü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 options ALTQ_CBQ # Class Bases Queuing (CBQ) options ALTQ_RED # Random Early Detection (RED) options ALTQ_RIO # RED In/Out options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) options ALTQ_PRIQ # Priority Queuing (PRIQ) options ALTQ_NOPCC # Wird von SMP benötigt
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.
Zurück | Zum Anfang | Weiter |
Firewallpakete | Nach oben | Die IPFILTER-Firewall (IPF) |
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>.