doc/de_DE.ISO8859-1/books/handbook/firewalls/chapter.sgml
Johann Kois 06c4847dc5 MFbed: Update the German documentation set.
books/faq/book.sgml                             1.780 -> 1.781
books/handbook/Makefile                         1.98  -> 1.100
books/handbook/book.sgml                        1.164 -> 1.166
books/handbook/chapters.ent                     1.33  -> 1.35
books/handbook/firewalls/chapter.sgml           1.66  -> 1.67
books/handbook/mirrors/chapter.sgml             1.416 -> 1.418
books/handbook/network-servers/chapter.sgml     1.79  -> 1.81
books/handbook/preface/preface.sgml             1.30  -> 1.32
flyer/Makefile                                  1.1   -> 1.2
flyer/flyer.tex                                 1.10  -> 1.13

Obtained from:  The FreeBSD German Documentation Project.
2006-05-20 17:47:39 +00:00

539 lines
20 KiB
Text

<!--
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/firewalls/chapter.sgml,v 1.4 2006/05/13 17:32:31 jkois Exp $
basiert auf: 1.67
-->
<chapter id="firewalls">
<chapterinfo>
<authorgroup>
<author>
<firstname>Joseph J.</firstname>
<surname>Barbish</surname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Brad</firstname>
<surname>Davis</surname>
<contrib>Nach SGML konvertiert und aktualisiert von </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Michael</firstname>
<surname>Bunzel</surname>
<contrib>Teilweise &uuml;bersetzt von </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>Firewalls</title>
<indexterm><primary>firewall</primary></indexterm>
<indexterm>
<primary>security</primary>
<secondary>firewalls</secondary>
</indexterm>
<sect1 id="firewalls-intro">
<title>Einf&uuml;hrung</title>
<para>Firewalls erm&ouml;glichen es, den ein- und ausgehenden
Netzwerkverkehr Ihres Systems zu filtern. Dazu verwendet eine
Firewall eine oder mehrere Gruppen von <quote>Regeln</quote>,
um ankommende Netzwerkpakete zu untersuchen und entweder
durchzulassen oder zu blockieren. Die Regeln einer
Firewall untersuchen charakteristische Eigenschaften von
Datenpaketen, darunter den Protokolltyp, die Quell- und
Zieladresse sowie den Quell- und Zielport.</para>
<para>Firewalls k&ouml;nnen die Sicherheit eines Rechners oder
eines Netzwerks erh&ouml;hen, indem sie folgende Aufgaben
&uuml;bernehmen:</para>
<itemizedlist>
<listitem>
<para>Den Schutz der Anwendungen, Dienste und Rechner Ihres
internen Netzwerks vor unerw&uuml;nschtem Datenverkehr
aus dem Internet.</para>
</listitem>
<listitem>
<para>Die Beschr&auml;nkung des Zugriffs von Rechnern des
internen Netzwerk auf Rechner oder Dienste des externen
Internets.</para>
</listitem>
<listitem>
<para>Den Einsatz von Network Address Translation
(<acronym>NAT</acronym>), die es Ihnen durch die Verwendung
von privaten <acronym>IP</acronym>-Adressen erm&ouml;glicht,
eine einzige gemeinsame Internetverbindung f&uuml;r mehrere
Rechner zu nutzen (entweder &uuml;ber eine einzige Adresse
oder &uuml;ber eine Gruppe von jeweils automatisch
zugewiesenen &ouml;ffentlichen
<acronym>IP</acronym>-Adressen).</para>
</listitem>
</itemizedlist>
<para>Nachdem Sie dieses Kapitel gelesen haben, werden Sie:</para>
<itemizedlist>
<listitem>
<para>Wissen, wie man korrekte Paketfilterregeln erstellt.</para>
</listitem>
<listitem>
<para>Die Unterschiede zwischen den in &os; eingebauten Firewalls
kennen.</para>
</listitem>
<listitem>
<para>Wissen, wie man die <application>PF</application>-Firewall
von OpenBSD konfiguriert und einsetzt.</para>
</listitem>
<listitem>
<para><application>IPFILTER</application> konfigurieren und
einsetzen k&ouml;nnen.</para>
</listitem>
<listitem>
<para>Wissen, wie man
<application>IPFW</application> konfiguriert und einsetzt.</para>
</listitem>
</itemizedlist>
<para>Bevor Sie dieses Kapitel lesen, sollten Sie:</para>
<itemizedlist>
<listitem>
<para>Die grundlegenden Konzepte von &os; und dem Internet
verstehen.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="firewalls-concepts">
<title>Firewallkonzepte</title>
<indexterm>
<primary>firewall</primary>
<secondary>rulesets</secondary>
</indexterm>
<para>Es gibt zwei grundlegende Arten, Regelgruppen f&uuml;r
Firewalls zu erstellen: <quote>einschlie&szlig;end</quote>
(<foreignphrase>inclusive firewall</foreignphrase>) sowie
<quote>auschlie&szlig;end</quote> (<foreignphrase>exclusive
Firewall</foreignphrase>). Eine auschlie&szlig;ende Firewall
l&auml;sst jeden Datenverkehr durch, der nicht durch eine Regel
ausgeschlossen wurde. Eine einschlie&szlig;ende Firewall macht
das genaue Gegenteil. Sie l&auml;sst Datenverkehr nur dann
durch, wenn er einer der definierten Regeln entspricht.</para>
<para>Einschlie&szlig;ende Firewalls sind tendentiell sicherer als
ausschlie&szlig;ende Firewalls, da sie das Risiko, dass
unerw&uuml;nschter Datenverkehr die Firewall passiert, signifikant
reduzieren.</para>
<para>Die Sicherheit einer Firewall kann durch den Einsatz einer
<quote>zustandsabh&auml;ngigen Firewall</quote>
(<foreignphrase>stateful firewall</foreignphrase>) weiter
erh&ouml;ht werden. Eine zustandsabh&auml;ngige Firewall
&uuml;berwacht alle durch die Firewall gehenden offenen
Verbindungen und erlaubt nur schon bestehenden Verkehr oder
Datenverkehr, der eine neue Verbindung &ouml;ffnet. Der Nachteil
einer zustandsabh&auml;ngigen Firewall ist allerdings, dass sie
anf&auml;llig f&uuml;r Denial of Service (<acronym>DoS</acronym>)
-Attacken ist, wenn sehr schnell sehr viele neue Verbindungen
erstellt werden. Bei den meisten Firewalls k&ouml;nnen Sie eine
Kombination aus zustandsabh&auml;ngigem und nicht
zustandsabh&auml;ngigem Verhalten verwenden, um eine f&uuml;r Ihre
Bed&uuml;rfnisse optimale Fireall einzurichten.</para>
</sect1>
<sect1 id="firewalls-apps">
<title>Firewallpakete</title>
<para>Das Basissystem von &os; enth&auml;lt bereits drei
Firewallpakete: <emphasis>IPFILTER</emphasis> (auch als
<acronym>IPF</acronym> bekannt), <emphasis>IPFIREWALL</emphasis>
(auch als <acronym>IPFW</acronym> bezeichnet) sowie das von OpenBSD
&uuml;bernommene <emphasis>PacketFilter</emphasis> (das auch als
<acronym>PF</acronym> bezeichnet wird). Zus&auml;tzlich
verf&uuml;gt &os; &uuml;ber zwei eingebaute Pakete f&uuml;r das
sogenannte <foreignphrase>traffic shaping</foreignphrase> (dabei
handelt es sich die Steuerung des Bandbreitenverbrauchs):
&man.altq.4; sowie &man.dummynet.4;. Dummynet steht traditionell
in enger Verbindung mit <acronym>IPFW</acronym>, w&auml;hrend
<acronym>ALTQ</acronym> gemeinsam mit
<acronym>IPF</acronym>/<acronym>PF</acronym> eingesetzt wird.
Gemeinsam ist allen Firewallpaketen (IPF, IPFW sowie PF), dass sie
Regeln einsetzen, um den Transfer von Datenpaketen auf und von
Ihrem System zu regeln. Unterschiedlich sind aber die Art und
Weise, wie dies realisiert wird. Auch die f&uuml;r diese Regeln
verwendete Syntax ist unterschiedlich.</para>
<para>&os; &uuml;berl&auml;sst es dem Anwender, das Firewallsystem
zu w&auml;hlen, dass seinen Anforderungen und Vorlieben am Besten
entspricht. Keines der im Basissystem enthaltenen Firewallpakete
wird dabei als <quote>das beste</quote> angesehen.</para>
<para>IPFILTER hat etwa den Vorteil, dass dessen
zustandsabh&auml;ngige Regeln relativ einfach in einer
<acronym>NAT</acronym>-Umgebung implementiert werden k&ouml;nnen.
Au&szlig;erdem verf&uuml;gt es &uuml;ber einen eigenen FTP-Proxy,
der die Erstellung von sicheren Regeln f&uuml;r ausgehende
FTP-Verbindungen vereinfacht.</para>
<para>Da alle Firewalls auf der Untersuchung der Werte
ausgew&auml;hlter Kontrollfelder von Datenpaketen basieren, ist es
f&uuml;r die Erstellung von Firewallregeln notwendig, die
Funktionsweise von <acronym>TCP</acronym>/IP zu verstehen.
Au&szlig;erdem muss man dazu wissen, was die Werte der einzelnen
Kontrollfelder bedeuten und wie diese w&auml;hrend einer
Verbindung eingesetzt werden. Eine gute Erkl&auml;rung dieser
Thematik finden Sie unter <ulink
url="http://www.ipprimer.com/overview.cfm"></ulink>.</para>
</sect1>
<sect1 id="firewalls-pf">
<title>Paket Filter (PF) von OpenBSD und
<acronym>ALTQ</acronym></title>
<indexterm>
<primary>firewall</primary>
<secondary>PF</secondary>
</indexterm>
<para>Im Juli 2003 wurde <acronym>PF</acronym>, die
Standard-Firewall von OpenBSD, nach &os; portiert und in die
&os;-Ports-Sammlung aufgenommen. Die erste &os;-Version,
die <acronym>PF</acronym> als Teil des Basisssytems enthielt, war
&os;&nbsp;5.3 im November&nbsp;2004. Bei <acronym>PF</acronym>
handelt es sich um eine komplette, vollausgestattete Firewall,
die optional auch <acronym>ALTQ</acronym> (Alternatives
Queuing) unterst&uuml;tzt. <acronym>ALTQ</acronym> bietet Ihnen
<foreignphrase>Quality of Service</foreignphrase>
(<acronym>QoS</acronym>)-Bandbreitenformung. Dadurch k&ouml;nnen
Sie, basierend auf Filterregeln, unterschiedlichen Diensten eine
bestimmte Bandbreite garantieren. Da das OpenBSD-Projekt bereits
&uuml;ber eine hervorragende Dokumentation verf&uuml;gt, wurde das
PF-Handbuch nicht in dieses Kapitel aufgenommen.</para>
<para>PF ist f&uuml;r folgende &os;-Versionen verf&uuml;gbar:</para>
<informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
<entry>&os;-Version</entry>
<entry>PF-Verf&uuml;gbarkeit</entry>
</row>
</thead>
<tbody>
<row>
<entry>Versionen vor 4.X</entry>
<entry>F&uuml;r &os;-Versionen vor 4.X ist PF nicht
verf&uuml;gbar.</entry>
</row>
<row>
<entry>Alle Versionen des 4.X-Zweiges</entry>
<entry>PF ist als Teil von KAME verf&uuml;gbar.</entry>
</row>
<row>
<entry>5.X-Versionen vor 5.3-RELEASE</entry>
<entry>F&uuml;r diese &os;-Versionen kann der Port
<filename role="package">security/pf</filename>
verwendet werden, um PF zu installieren. Da diese
&os;-Versionen aber nur f&uuml;r Entwickler und Personen
gedacht waren, die einen Einblick in die fr&uuml;hen
5.X-Versionen haben wollten, wird Nutzern dieser
Versionen dringend empfohlen, Ihr System auf
5.3-RELEASE oder neuer zu aktualisieren.</entry>
</row>
<row>
<entry>5.3-RELEASE und neuer</entry>
<entry>Seit 5.3-RELEASE ist PF Teil des Basissystems.
Benutzen Sie daher <emphasis>nicht</emphasis> den
Port <filename role="package">security/pf</filename>,
da dieser unter diesen Versionen nicht funktioniert.
Verwenden Sie stattdessen das im Basissystem enthaltene
&man.pf.4;.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>Weitere Informationen finden Sie unter
<ulink url="http://pf4freebsd.love2party.net/"></ulink>.</para>
<sect2>
<title>PF aktivieren</title>
<para>PF ist in Standardinstallationen von &os;&nbsp;5.3 oder
neuer als eigenes, zur Laufzeit ladbares Kernelmodul enthalten.
Das System l&auml;dt das PF-Kernelmodul automatisch, wenn die
Anweisung <literal>pf_enable="YES"</literal> in
<filename>/etc/rc.conf</filename> enthalten ist. Das ladbare
Kernelmodul wurde mit aktivierter &man.pflog.4;-Protokollierung
erstellt.</para>
<note>
<para>Das Kernelmodul geht davon aus, dass die Eintr&auml;ge
<literal>options INET</literal> sowie
<literal>device bpf</literal> in Ihrer Kernelkonfigurationsdatei
vorhanden sind. Haben Sie <literal>NO_INET6</literal> (seit
&os;&nbsp;6.X) oder <literal>NOINET6</literal> (in &os;-Versionen
vor 6.X) nicht definiert, ben&ouml;tigen Sie (etwa in
&man.make.conf.5;) zus&auml;tzlich die Option
<literal>options INET6</literal>.</para>
</note>
<para>Nachdem Sie das Kernelmodul geladen oder die
PF-Unterst&uuml;tzung statisch in Ihren Kernel kompiliert haben,
k&ouml;nnen Sie <application>pf</application> &uuml;ber den
Befehl <command>pfctl</command> aktivieren beziehungsweise
deaktivieren.</para>
<para>Das folgende Beispiel zeigt, wie Sie
<application>pf</application> aktivieren:</para>
<screen>&prompt.root; <userinput>pfctl -e</userinput></screen>
<para><command>pfctl</command> erm&ouml;glicht es Ihnen, die
<application>pf</application>-Firewall zu steuern. Lesen Sie
&man.pfctl.8;, bevor Sie das Programm einsetzen.</para>
</sect2>
<sect2>
<title>Kernel-Optionen</title>
<indexterm>
<primary>kernel options</primary>
<secondary>device pf</secondary>
</indexterm>
<indexterm>
<primary>kernel options</primary>
<secondary>device pflog</secondary>
</indexterm>
<indexterm>
<primary>kernel options</primary>
<secondary>device pfsync</secondary>
</indexterm>
<para>Es ist nicht zwingend n&ouml;tig, dass Sie PF durch die
Angabe der folgenden Optionen in den &os;-Kernel kompilieren.
Kompilieren Sie die PF-Unterst&uuml;tzung in Ihren Kernel, so
wird das Kernelmodul <emphasis>nie</emphasis> verwendet werden.
Die folgenden Angaben dienen daher nur als
Hintergrundinformationen.</para>
<para><filename>/usr/src/sys/conf/NOTES</filename> enth&auml;lt
Beispiele f&uuml;r die Kernelkonfigurationsoptionen von PF:</para>
<programlisting>device pf
device pflog
device pfsync</programlisting>
<para><literal>device pf</literal> aktiviert die Unterst&uuml;tzung
f&uuml;r die <quote>Packet Filter</quote>-Firewall.</para>
<para><literal>device pflog</literal> aktiviert das optionale
&man.pflog.4;-Pseudonetzwerkger&auml;t, das zum Protokollieren
des Datenverkehrs &uuml;ber einen &man.bpf.4;-Deskriptor
dient. &man.pflogd.8; ist in der Lage, diese Protokolldateien
auf Ihre Platte zu speichern.</para>
<para><literal>device pfsync</literal> aktiviert das optionale
&man.pfsync.4;-Pseudonetzwerkger&auml;t f&uuml;r die
&Uuml;berwachung von <quote>Status&auml;nderungen</quote>.
Da es sich dabei nicht um einen Bestandteil des Kernelmoduls
handelt, muss diese Option auf jeden Fall in den Kernel kompiliert
werden, bevor man sie verwenden kann.</para>
<para>Diese Einstellungen werden erst dann &uuml;bernommen, wenn
man einen Kernel mit diesen Optionen kompiliert und
installiert.</para>
</sect2>
<sect2>
<title>Verf&uuml;gbare rc.conf-Optionen</title>
<para>Um PF beim Systemstart zu aktivieren, ben&ouml;tigen Sie die
folgenden Eintr&auml;ge in <filename>/etc/rc.conf</filename>:</para>
<programlisting>pf_enable="YES" # PF aktivieren(Modul, wenn n&ouml;tig, aktivieren)
pf_rules="/etc/pf.conf" # Datei mit Regeldefinitionen f&uuml;r pf
pf_flags="" # zus&auml;tzliche Parameter f&uuml;r den Start von pfctl
pflog_enable="YES" # stare pflogd(8)
pflog_logfile="/var/log/pflog" # wo soll pflogd die Protokolldatei speichern
pflog_flags="" # zus&auml;tzliche Parameter f&uuml;r den Start von pflogd</programlisting>
<para>Wenn Sie ein lokales Netzwerk hinter dieser Firewall
betreiben, und Pakete f&uuml;r dessen Rechner weiterleiten oder
NAT verwenden wollen, ben&ouml;tigen Sie zus&auml;tzlich die
folgende Option:</para>
<programlisting>gateway_enable="YES" # LAN Gateway aktivieren</programlisting>
</sect2>
<sect2>
<title><acronym>ALTQ</acronym> aktivieren</title>
<para><acronym>ALTQ</acronym> muss vor der Verwendung in den
&os;-Kernel kompiliert werden. Beachten Sie, dass
<acronym>ALTQ</acronym> nicht von allen verf&uuml;gbaren
Netzwerkkartentreibern unterst&uuml;tzt wird. Sehen Sie daher
zuerst in &man.altq.4; nach, ob Ihre Netzwerkkarte diese
Funktion unter Ihrer &os;-Version unterst&uuml;tzt. Die
folgenden Kerneloptionen aktivieren <acronym>ALTQ</acronym>
sowie alle Zusatzfunktionen:</para>
<programlisting>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&ouml;tigt</programlisting>
<para><literal>options ALTQ</literal> aktiviert das
<acronym>ALTQ</acronym>-Framework.</para>
<para><literal>options ALTQ_CBQ</literal> aktiviert das
<foreignphrase>Class Based Queuing</foreignphrase>
(<acronym>CBQ</acronym>). <acronym>CBQ</acronym> erlaubt es, die
Bandbreite einer Verbindung in verschiedene Klassen oder
Warteschlangen zu unterteilen, um die Priorit&auml;t von
Datenpaketen basierend auf Filterregeln zu &auml;ndern.</para>
<para><literal>options ALTQ_RED</literal> aktiviert
<foreignphrase>Random Early Detection</foreignphrase>
(<acronym>RED</acronym>). <acronym>RED</acronym> wird
zur Vermeidung einer Netzwerkverstopfung verwendet. Dazu
ermittelt <acronym>RED</acronym> die Gr&ouml;&szlig;e der
Warteschlange und vergleicht diesen Wert mit den minimalen
und maximalen Grenzwerten der Warteschlange. Ist die
Warteschlange gr&ouml;&szlig;er als das erlaubte Maximum,
werden alle neuen Pakete verworfen. Getreu seinem Namen
verwirft <acronym>RED</acronym> Pakete unterschiedlicher
Verbindungen nach dem Zufallsprinzip.</para>
<para><literal>options ALTQ_RIO</literal> aktiviert
<foreignphrase>Random Early Detection In and
Out</foreignphrase>.</para>
<para><literal>options ALTQ_HFSC</literal> aktiviert den
<foreignphrase>Hierarchical Fair Service Curve</foreignphrase>
-Paketplaner. Weitere Informationen zu <acronym>HFSC</acronym>
finden Sie unter <ulink
url="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html"></ulink>.</para>
<para><literal>options ALTQ_PRIQ</literal> aktiviert
<foreignphrase>Priority Queuing</foreignphrase>
(<acronym>PRIQ</acronym>). <acronym>PRIQ</acronym>
l&auml;sst Verkehr einer Warteschlange mit h&ouml;herer
Priorit&auml;t zuerst durch.</para>
<para><literal>options ALTQ_NOPCC</literal> aktiviert die
<acronym>SMP</acronym> Unterst&uuml;tzung von
<acronym>ALTQ</acronym>. Diese Option ist nur auf
<acronym>SMP</acronym>-System erforderlich.</para>
</sect2>
<sect2>
<title>Filterregeln generieren</title>
<para>Der Packetfilter liest seine Konfiguration aus der Datei
&man.pf.conf.5; ein, um entsprechend der dort definierten Regeln
Pakete durchzulassen oder zu verwerfen. Die Standardinstallation
von &os; enth&auml;lt bereits eine beispielhafte Version der
Datei <filename>/etc/pf.conf</filename> mit einigen hilfreichen
Beispielen und Erkl&auml;rungen.</para>
<para>Obwohl &os; eine eigene Version der Datei
<filename>/etc/pf.conf</filename> enth&auml;lt, wird dennoch die
gleiche Syntax wie unter OpenBSD verwendet. Das OpenBSD-Team hat
eine gro&szlig;artige Dokumentation zur Konfiguration von
<application>pf</application> geschrieben, die unter
<ulink url="http://www.openbsd.org/faq/pf/"></ulink>
erh&auml;ltlich ist.</para>
<warning>
<para>Denken Sie beim Lesen des pf-Handbuch daran, dass die
verschiedenen &os;-Versionen unterschiedliche Versionen
der <application>pf</application>-Firewall einsetzen. So
wird unter &os;&nbsp;5.X noch die OpenBSD-Version&nbsp;3.5
der Firewall eingesetzt, w&auml;hrend in den
&os;-6.X-Versionen die OpenBSD-Version&nbsp;3.7 zum
Einsatz kommt.</para>
</warning>
<para>Haben Sie weitere Fragen zur
<application>pf</application>-Firewall, so
k&ouml;nnen Sie auf der Mailingliste &a.pf;
stellen. Vergessen Sie aber nicht, vorher die Archive der
Mailinglisten zu durchsuchen, bevor Sie dort eine Frage
stellen.</para>
</sect2>
</sect1>
<sect1 id="firewalls-ipf">
<title>Die IPFILTER-Firewall (IPF)</title>
<para>Dieses Kapitel ist noch nicht &uuml;bersetzt.
Lesen Sie bitte <ulink
url="&url.books.handbook.en;/firewalls-ipf.html">
das Original in englischer Sprache</ulink>. Wenn Sie helfen
wollen, dieses Kapitel zu &uuml;bersetzen, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;.</para>
</sect1>
<sect1 id="firewalls-ipfw">
<title>IPFW</title>
<para>Dieses Kapitel ist noch nicht &uuml;bersetzt.
Lesen Sie bitte <ulink
url="&url.books.handbook.en;/firewalls-ipfw.html">
das Original in englischer Sprache</ulink>. Wenn Sie helfen
wollen, dieses Kapitel zu &uuml;bersetzen, senden Sie bitte
eine E-Mail an die Mailingliste &a.de.translators;.</para>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->