Update to r52936:

This patch updates the PF chapter regarding structure and various updates.
This commit is contained in:
Bjoern Heidotting 2019-07-22 21:13:34 +00:00
parent cadf73b760
commit 7eb6669e14
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=53265

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/firewalls/chapter.xml,v 1.53 2012/04/30 16:15:52 bcr Exp $
basiert auf: r52855
basiert auf: r52936
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@ -367,8 +367,10 @@
<warning>
<para>Bedenken Sie beim Studium der <link
xlink:href="http://www.openbsd.org/faq/pf/">PF FAQ</link>,
dass &os; die <application>PF</application>-Version aus
OpenBSD&nbsp;4.5 enthält.</para>
dass die <application>PF</application>-Version von &os;
im Laufe der Jahre erheblich von der Version in OpenBSD
abgewichen ist. Nicht alle Eigenschaften funktionieren
unter &os; genauso wie unter OpenBSD und umgekehrt.</para>
</warning>
<para>Die &a.pf; ist ein guter Anlaufpunkt für Fragen zur
@ -378,31 +380,26 @@
Frage stellen. Vielleicht wurde die Frage dort schon
beantwortet.</para>
<para>Weitere Informationen über die Portierung von
<application>PF</application> nach &os; finden Sie unter <link
xlink:href="http://pf4freebsd.love2party.net/">
http://pf4freebsd.love2party.net/</link>.</para>
<para>Dieser Abschnitt konzentriert sich auf
<application>PF</application> in &os;. Es wird beschrieben, wie
<application>PF</application> und
<application>ALTQ</application> aktiviert werden. Anschließend
<application>ALTQ</application> aktiviert werden. Zusätzlich
wird demonstriert, wie Regelsätze auf einem &os;-System erstellt
werden.</para>
<sect2>
<title><application>PF</application> aktivieren</title>
<para>Damit <application>PF</application> benutzt werden kann,
<para>Um <application>PF</application> zu benutzen,
muss zunächst das Kernelmodul geladen werden. Dieser
Abschnitt beschreibt die Einträge für
<filename>/etc/rc.conf</filename>, die verwendet werden können
um <application>PF</application> zu aktivieren.</para>
<para>Beginnen Sie mit folgender Zeile in
<filename>/etc/rc.conf</filename>:</para>
<para>Beginnen Sie damit <literal>pf_enable=yes</literal> in
<filename>/etc/rc.conf</filename> hinzuzufügen:</para>
<programlisting>pf_enable="YES"</programlisting>
<screen>&prompt.root; <userinput>sysrc pf_enable=yes</userinput></screen>
<para>&man.pfctl.8; beschreibt zusätzliche Optionen, die beim
Start an <application>PF</application> übergeben werden
@ -425,15 +422,17 @@
<para>Protokollierungsfunktionen für
<application>PF</application> werden von &man.pflog.4; zur
Verfügung gestellt. Fügen Sie folgende Zeile in
Verfügung gestellt. Fügen Sie
<literal>pflog_enable=yes</literal> in
<filename>/etc/rc.conf</filename> ein, um diese Funktion zu
aktivieren:</para>
<programlisting>pflog_enable="YES"</programlisting>
<screen>&prompt.root; <userinput>sysrc pflog_enable=yes</userinput></screen>
<para>Die folgenden Zeilen können ebenfalls hinzugefügt werden,
um den Speicherort der Protokolldatei zu bestimmen und weitere
Optionen beim Start an &man.pflog.4; zu übergeben:</para>
<para>Die folgenden Zeilen können zusätzlich hinzugefügt
werden, um den Speicherort der Protokolldatei zu bestimmen und
weitere Optionen beim Start an &man.pflog.4; zu
übergeben:</para>
<programlisting>pflog_logfile="/var/log/pflog" # where pflogd should store the logfile
pflog_flags="" # additional flags for pflogd startup</programlisting>
@ -441,8 +440,8 @@ pflog_flags="" # additional flags for pflogd startup</programli
<para>Falls ein <acronym>LAN</acronym> hinter der Firewall
existiert und die Pakete an die Rechner im
<acronym>LAN</acronym> weitergeleitet werden müssen, oder
wenn <acronym>NAT</acronym> benötigt wird, fügen Sie die
folgende Option hinzu:</para>
wenn <acronym>NAT</acronym> benötigt wird, aktivieren Sie die
folgende Option:</para>
<programlisting>gateway_enable="YES" # Enable as LAN gateway</programlisting>
@ -585,102 +584,6 @@ device pfsync</programlisting>
von &man.top.1; sehr ähnlich.</para>
</sect2>
<sect2>
<title><application>ALTQ</application> aktivieren</title>
<para>Unter &os; kann <application>ALTQ</application> zusammen
mit <application>PF</application> benutzt werden, um Quality
of Service (<acronym>QoS</acronym>) bereitzustellen. Sobald
<application>ALTQ</application> aktiviert ist, können
Warteschlangen definiert werden, mit denen Sie die Priorität
für ausgehende Pakete festlegen können.</para>
<para>Bevor Sie <application>ALTQ</application> aktivieren,
sollten Sie &man.altq.4; lesen und sicherstellen, das der
Treiber der Netzwerkkarte diese Funktion unterstützt.</para>
<para><application>ALTQ</application> steht nicht als ladbares
Kernelmodul zur Verfügung. Wenn die Netzwerkkarte des Systems
<application>ALTQ</application> unterstützt, erstellen Sie
nach den Anweisungen in <xref linkend="kernelconfig"/> einen
angepassten Kernel. Als erstes muss
<application>ALTQ</application> aktiviert werden. Zudem ist
mindestens eine weitere Option nötig, um den Algorithmus für
die Warteschlange zu bestimmen:</para>
<programlisting>options ALTQ
options ALTQ_CBQ # Class Based Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Schedule (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)</programlisting>
<para>Die folgenden Algorithmen stehen zur Verfügung:</para>
<variablelist>
<varlistentry>
<term>CBQ</term>
<listitem>
<para>Class Based Queuing (<acronym>CBQ</acronym>) erlaubt
es, die Bandbreite einer Verbindung in verschiedene
Klassen oder Warteschlangen zu unterteilen, um die
Priorität von Datenpaketen basierend auf Filterregeln zu
beeinflussen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RED</term>
<listitem>
<para>Random Early Detection (<acronym>RED</acronym>) wird
eingesetzt, um eine Überlastung des Netzwerks zu
vermeiden. Dazu ermittelt <acronym>RED</acronym> 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 nach dem
Zufallsprinzip verworfen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RIO</term>
<listitem>
<para>Random Early Detection In and Out
(<acronym>RIO</acronym>). Dieser Modus verwaltet
mehrere Warteschlangen durchschnittlicher Größe mit
mehreren Schwellwerten, eine für jedes
<acronym>QoS</acronym>-Level.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>HFSC</term>
<listitem>
<para>Hierachical Fair Service Curve Packet Scheduler
(<acronym>HFSC</acronym>) wird in <link
xlink:href="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html">
http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html</link>
beschrieben.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PRIQ</term>
<listitem>
<para>Priority Queuing (<acronym>PRIQ</acronym>) lässt den
Verkehr einer Warteschlange mit höherer Priorität zuerst
durch.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Weitere Informationen über diese Algorithmen und Beispiele
für Regelsätze finden Sie in den <uri
xlink:href="https://web.archive.org/web/20151109213426/http://www.openbsd.org/faq/pf/queueing.html">
OpenBSD Archiven</uri>.</para>
</sect2>
<sect2 xml:id="pf-tutorial">
<info>
<title><application>PF</application> Regelsätze</title>
@ -814,11 +717,11 @@ pass proto udp to any port $udp_services keep state</programlisting>
<screen>&prompt.root; <userinput>sysctl net.inet6.ip6.forwarding=1</userinput></screen>
<para>Um diese Einstellungen beim Systemstart zu aktivieren,
fügen Sie folgende Zeilen in
fügen Sie sie mit Hilfe von &man.sysrc.8; in
<filename>/etc/rc.conf</filename> ein:</para>
<programlisting>gateway_enable="YES" #für ipv4
ipv6_gateway_enable="YES" #für ipv6</programlisting>
<screen>&prompt.root; <userinput>sysrc gateway_enable=yes</userinput>
&prompt.root; <userinput>sysrc ipv6_gateway_enable=yes</userinput></screen>
<para>Prüfen Sie mit <command>ifconfig</command>, dass beide
Schnittstellen vorhanden und aktiv sind.</para>
@ -1706,6 +1609,102 @@ block drop in quick on $ext_if from $martians to any
block drop out quick on $ext_if from any to $martians</programlisting>
</sect3>
</sect2>
<sect2>
<title><application>ALTQ</application> aktivieren</title>
<para>Unter &os; kann <application>ALTQ</application> zusammen
mit <application>PF</application> benutzt werden, um Quality
of Service (<acronym>QoS</acronym>) bereitzustellen. Sobald
<application>ALTQ</application> aktiviert ist, können
Warteschlangen definiert werden, mit denen Sie die Priorität
für ausgehende Pakete festlegen können.</para>
<para>Bevor Sie <application>ALTQ</application> aktivieren,
sollten Sie &man.altq.4; lesen und sicherstellen, das der
Treiber der Netzwerkkarte diese Funktion unterstützt.</para>
<para><application>ALTQ</application> steht nicht als ladbares
Kernelmodul zur Verfügung. Wenn die Netzwerkkarte des Systems
<application>ALTQ</application> unterstützt, erstellen Sie
nach den Anweisungen in <xref linkend="kernelconfig"/> einen
angepassten Kernel. Als erstes muss
<application>ALTQ</application> aktiviert werden. Zudem ist
mindestens eine weitere Option nötig, um den Algorithmus für
die Warteschlange zu bestimmen:</para>
<programlisting>options ALTQ
options ALTQ_CBQ # Class Based Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Schedule (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)</programlisting>
<para>Die folgenden Algorithmen stehen zur Verfügung:</para>
<variablelist>
<varlistentry>
<term>CBQ</term>
<listitem>
<para>Class Based Queuing (<acronym>CBQ</acronym>) erlaubt
es, die Bandbreite einer Verbindung in verschiedene
Klassen oder Warteschlangen zu unterteilen, um die
Priorität von Datenpaketen basierend auf Filterregeln zu
beeinflussen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RED</term>
<listitem>
<para>Random Early Detection (<acronym>RED</acronym>) wird
eingesetzt, um eine Überlastung des Netzwerks zu
vermeiden. Dazu ermittelt <acronym>RED</acronym> 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 nach dem
Zufallsprinzip verworfen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RIO</term>
<listitem>
<para>Random Early Detection In and Out
(<acronym>RIO</acronym>). Dieser Modus verwaltet
mehrere Warteschlangen durchschnittlicher Größe mit
mehreren Schwellwerten, eine für jedes
<acronym>QoS</acronym>-Level.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>HFSC</term>
<listitem>
<para>Hierachical Fair Service Curve Packet Scheduler
(<acronym>HFSC</acronym>) wird in <link
xlink:href="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html">
http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html</link>
beschrieben.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PRIQ</term>
<listitem>
<para>Priority Queuing (<acronym>PRIQ</acronym>) lässt den
Verkehr einer Warteschlange mit höherer Priorität zuerst
durch.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Weitere Informationen über diese Algorithmen und Beispiele
für Regelsätze finden Sie in den <uri
xlink:href="https://web.archive.org/web/20151109213426/http://www.openbsd.org/faq/pf/queueing.html">
OpenBSD Archiven</uri>.</para>
</sect2>
</sect1>
<sect1 xml:id="firewalls-ipfw">