<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nbkr</id>
	<title>Linupedia.org - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nbkr"/>
	<link rel="alternate" type="text/html" href="https://linupedia.org/opensuse/Spezial:Beitr%C3%A4ge/Nbkr"/>
	<updated>2026-04-21T09:15:12Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=26308</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=26308"/>
		<updated>2008-11-24T09:40:59Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Grundsätze zur Gestaltung des Regelwerkes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Artikel beschäftigt sich mit Firewalls im Allgemeinen. Es geht nicht um die Konfiguration einer speziellen Firewall. Anleitungen und Artikel darüber finden sich, am Ende der Seite, in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet, dass die einzelnen Rechner in den verschiedenen Netzwerksegmenten bestimmte Verbindungen untereinander aufbauen sollen, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen, deren Verbindungen kontrolliert werden sollen. Die Firewall ist somit Teil beider Netzwerke und hat somit (mit Ausnahmen) auch zwei IP-Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können, muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-3/4 Firewall bezeichnen, denn sie arbeitet _meistens_ in den Schichten 3 und 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO/OSI Modells]. Eine Firewall, die keinerlei Verbindungen blockiert, verhält sich somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
Neben diesen Layer-3/4 Firewalls kann eine Firewall auch im Layer 2, also bereits im Data Link Layer, aktiv sein. Eine solche Firewall filtert dann nicht mehr anhand von IP-Adressen, sondern nach MAC-Adressen. Solche Bridge-Firewalls werden in aller Regel für die Kontrolle des eigenen internen LANs eingesetzt. Im Außeneinsatz, also zur Trennung zwischen eigenem LAN und Internet machen solche Firewalls keinen Sinn, da MAC-Adressen bereits nach dem ersten Router verloren gehen und so ein feinkörnige Trennung der Zugriffe nicht mehr möglich ist.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente, gibt es auch noch Firewalls, die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin,&lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie&lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, indem man einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte, dass bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert man dann nicht einfach das Programm, welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Application-Layer-Firewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Application-Layer-Firewall versteht man Firewalls, welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes, beeinflussen. Eine Application-Layer-Firewall kann also erkennen, ob das, was ein Rechner sendet, wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht, unerlaubt Daten durch die Firewall zu schicken, indem er so tut, als wäre es eine Webanfrage. So kann eine Application-Layer-Firewall z.B. Webseiten ausfiltern, welche versuchen, eine bekannte Browserlücke auszunutzen, oder verhindern, dass ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Application-Layer-Firewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls, d.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien, ob diese Pakete weitergeleitet oder verworfen wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen, müssen sie durch die Firewall durch, da diese &amp;quot;auf dem Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (Quelladdresse), wohin die Daten sollen (Zieladdresse), sowie welcher Port verwendet wird (z.B. http oder ssh). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt, welche diese Verbindung expliziert erlaubt, wird das Datenpaket weitergeleitet. Gibt es eine Regel, welche diese Verbindung verbietet, wird das Paket verworfen. Gibt es keine Regel, handelt die Firewall nach ihrer Default Policy. Dies ist eine Regel, die angewendet wird, wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stateful Inspection ==&lt;br /&gt;
Eine Firewall, die Stateful Inspection beherrscht, handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen, d.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, indem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat, würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen, braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Stateful Inspection kann, so muss der Administrator eine Regel einbauen, welche es den Schülern immer erlaubt, Daten an den Lehrer zu schicken. Das würde bedeuten, dass die Schüler dem Lehrer ständig ins Wort fallen könnten.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Stateful Inspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken, wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort wartet. Wenn der Lehrer nur am Erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen der Stateful Inspection noch etwas oben drauf. Eine Stateful Inspection Firewall kann zwar erkennen, ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht, ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern, dass z.B. ein Browser eine Verbindung zu einem Webserver aufbaut und dieser eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um beim Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland?&amp;quot; und ein Schüler könnte antworten, &amp;quot;der Lehrer ist doof&amp;quot;, den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot;, was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig funktioniert(?).&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall, Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren, d.h. die Firewall würde eine Verbindung kontrollieren, wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist, zu verhindern, dass ein Angreifer seine Quelladresse fälscht und somit Daten über die Firewall schicken könnte.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor, der Lehrer hat eine Frage gestellt, auf die er eine Note vergeben will. Derjenige, der die richtige Antwort gibt, bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note kann nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Stateful Failover) ==&lt;br /&gt;
Unter Stateful Failover versteht man die Fähigkeit, zwei Firewalls zu koppeln, so dass keine Verbindung unterbrochen wird, auch nicht, wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor, der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung von Lehrer zu Schüler über ihn laufen, können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt, übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Stateful Failover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen, ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus, weiß der zweite Aufpasser nicht, welche Fragen schon gestellt wurden, da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen, damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Stateful Failover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu zu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb werden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Der Linux-Kernel hat eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über die Befehl &amp;quot;iptables&amp;quot; (Layer 3/4 für IPv4), &amp;quot;ip6tables&amp;quot; (Layer 3/4 für IPv6), &amp;quot;arptables&amp;quot; (Layer 2) und &amp;quot;ebtables&amp;quot; (Layer 2 in Verbindung mit Bridge) konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man Netfilter meint.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da es durch iptables vollkommen ersetzt ist.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Stateful Inspection, kann also Verbindungen anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Stateful Failover-Funktionalität gearbeitet. Das entsprechende Modul, welches hierfür benötigt wird, nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig im Linux-Kernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es, für jedes Programm individuell zu bestimmen, ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster, welches den Benutzer fragt, ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen, welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSUSE, weshalb man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
''pf'' steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Stateful Inspection und kann mit Hilfe von pf_sync sogar hochverfügbar gemacht werden. (Ein Howto hierzu findet sich am Ende der Seite.)&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
''[http://wipfw.sourceforge.net/ wipfw]'' ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich, MS Windows als echte Netzwerkfirewall einzusetzen. (Aber wer will das schon.)&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern nur eine Oberfläche für iptables. Somit kann die SuSE-Firewall nur das, was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt; in einem Texteditor ansehen. Darin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Software zur Konfiguration von Netfilter, wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist ein GUI, in welchem man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist eine Webseite, über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel scripte - Scripts selbst erstellen|Runlevelscript]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt, öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen, um die Dienste, welche die Firewall erlauben soll, abzusichern. Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine darstellen.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen, dass die Firewall &amp;quot;im Weg&amp;quot; steht, d.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre als ob man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln, wenn man ein System innen und außen unter Kontrolle hat. PCs im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben, wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch dies muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut, hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen, dass die Firewall die erste Regel benutzt, die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen, da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle; pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS-RPC, RIP, NBT, eben alles, was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.'' (Anm.: Broadcast-Pakete werden generell nicht geroutet und überschreiten somit nie ein Netzwerksegment, weshalb diese Regel unnötig erscheint, Anmerkung zur Anmerkung: Es geht hierbei nicht um die Unterbindung dieses Traffics, sondern darum die Firewall zu entlasten, wenn das Broadcastpaket gleich am Anfang des Regelwerks verworfen wird, muss die Firewall nicht für jedes dieser Pakete das ganze Regelwerk abarbeiten, das verringert die Systemlast deutlich.)&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten  sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen, steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten, was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
'''Administrations-Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP-Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP-Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren. (Trifft nur für Netzwerk zu - bei Administration über Tastatur, Serial oder ähnlichen Methoden kann man auch zwischendurch mal ein nicht funktionales Regelwerk haben ohne sich auszuschließen.)&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP-Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür, dass die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann, welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch, dass die Firewall nicht reagiert, weiß der Angreifer schonmal, dass höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk, d.h. alles was nicht erlaubt ist, ist verboten. Ein solches Vorgehen wird häufig für Firewalls eingesetzt welche ein Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Security|zurück zur Security]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Loginchecker&amp;diff=24689</id>
		<title>Loginchecker</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Loginchecker&amp;diff=24689"/>
		<updated>2008-03-28T23:53:42Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: Die Seite wurde neu angelegt: Das folgende kleine Script ermittelt wie lange ein Benutzer am heutigen Tag angemeldet war. Es überprüft dabei die vergangen Logins sowie die aktuelle Uptime für ein...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das folgende kleine Script ermittelt wie lange ein Benutzer am heutigen Tag angemeldet war. Es überprüft dabei die vergangen Logins sowie die aktuelle Uptime für einen bestimmten&lt;br /&gt;
Benutzer. Das Script erwartet als Parameter zuerst den zu prüfenden Benutzernamen, dann die Loginkonsole. Bei einem System ist das üblicherweise tty7. Um zu testen wie lange der Benutzer&lt;br /&gt;
&amp;quot;nbkr&amp;quot; heute angemeldet war, gibt man einfach ein:&lt;br /&gt;
&lt;br /&gt;
  ./loginchecker.sh nbkr tty7&lt;br /&gt;
&lt;br /&gt;
Das Script gibt dann die Loginzeit in Minuten aus.&lt;br /&gt;
Hier das Script:&lt;br /&gt;
&lt;br /&gt;
  #! /bin/bash&lt;br /&gt;
&lt;br /&gt;
  #Setting some variables&lt;br /&gt;
  MYUSER=$1&lt;br /&gt;
  TTY=$2&lt;br /&gt;
&lt;br /&gt;
  ######################################## DO NOT CHANGE ANYTHING BELOW ##################################################################&lt;br /&gt;
  # Getting the login values of the user of this month&lt;br /&gt;
  OVERALLTIME=0&lt;br /&gt;
  for i in `last | grep -v still | grep ^$MYUSER | grep $TTY | sed 's/  //g' | grep &amp;quot;\`LANG=en_US date '+%b %d'\`&amp;quot; | cut -d ' ' -f 7 | sed 's/.*(//g' | grep -v - | sed 's/)//g'`; do &lt;br /&gt;
  &lt;br /&gt;
    #Getting the minutes and transforming them to decimal values&lt;br /&gt;
    MINUTES=${i#???}&lt;br /&gt;
    MINUTES=`echo $MINUTES | sed 's/^0//g' `&lt;br /&gt;
 &lt;br /&gt;
    #Getting the hours and transforming the to decimal values&lt;br /&gt;
    TMP=${i#??}&lt;br /&gt;
    HOURS=${i%$TMP}&lt;br /&gt;
    HOURS=`echo $HOURS | sed 's/^0//g' `&lt;br /&gt;
&lt;br /&gt;
    let &amp;quot;TMPTIME=$HOURS*60 + $MINUTES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    let &amp;quot;OVERALLTIME=$OVERALLTIME + $TMPTIME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # Calculating the current uptime&lt;br /&gt;
  UPTIME=`last | grep still | grep ^$MYUSER | grep $TTY | sed 's/  //g' | cut -d ' ' -f 7 | sed 's/.*(//g' | grep -v - | sed 's/)//g'`&lt;br /&gt;
&lt;br /&gt;
  UMINUTES=${UPTIME#???}&lt;br /&gt;
  UMINUTES=`echo $UMINUTES | sed 's/^0//g' `&lt;br /&gt;
  TMP=${UPTIME#??}&lt;br /&gt;
  UHOURS=${UPTIME%$TMP}&lt;br /&gt;
  UHOURS=`echo $UHOURS | sed 's/^0//g' `&lt;br /&gt;
&lt;br /&gt;
  let &amp;quot;UPHOURS=` date +%H` - $UHOURS&amp;quot; &lt;br /&gt;
&lt;br /&gt;
  # Now we have to check if uphours is negative.&lt;br /&gt;
  # This happens when a user logs in before midnight and is still&lt;br /&gt;
  # online after midnight. If so we have to add the (negative) value&lt;br /&gt;
  # to 24 * 60 to get the correct time.&lt;br /&gt;
  if [[ $UPHOURS -lt 0 ]]; then&lt;br /&gt;
    let &amp;quot;UPHOURS=24 * 60 + $UPHOURS&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  TMP=`date +%M`&lt;br /&gt;
  TMP2=`echo $TMP | sed 's/^0//g'`&lt;br /&gt;
  let &amp;quot;UPMINUTES=$UMINUTES - $TMP2&amp;quot;&lt;br /&gt;
  let &amp;quot;TODAYTIME=$UPHOURS*60 - $UPMINUTES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  echo $(($OVERALLTIME + $TODAYTIME));&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konsole&amp;diff=24688</id>
		<title>Konsole</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konsole&amp;diff=24688"/>
		<updated>2008-03-28T23:50:50Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Linux-Club Wikibook ==&lt;br /&gt;
&lt;br /&gt;
* [[Shell]] - Linux-Club Wikibook zur Shell. Hier lernt man den Umgang mit der Shell und erfährt viele Hintergründe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
* [[KDE Konsole]] - Bookmarks missbrauchen/Wie man 1001 Befehle sich sinnvoll als Bookmark-Liste anlegen kann. Diese Konsole läuft auch unter Gnome.&lt;br /&gt;
* [[ETerm]] - Transparente Konsole &lt;br /&gt;
* [[ATerm]] - Transparente Konsole&lt;br /&gt;
* [[ Software Installieren/Deinstallieren mit rpm ]] - Wie installiere oder entferne ich Software mit dem RedHat/Fedora/SuSE-Paketmanager '''rpm'''?&lt;br /&gt;
* [[ Software Installieren/Deinstallieren mit dpkg ]] - Wie installiere oder entferne ich Software mit dem Debian-Paketmanager '''dpkg'''?&lt;br /&gt;
* [[ Software Installieren/Deinstallieren mit rug ]] - Wie Installiere oder entferne ich Software mit '''rug''', dem Kommandozeilen-Frontend des ZENworks Daemon?&lt;br /&gt;
* [[Zypper]] - Wie Installiere oder entferne ich Software mit '''zypper''', dem Kommandozeilen-Frontend von YaST (Paketmanager)?&lt;br /&gt;
* [[ Software aus dem Quelltext Installieren/Deinstallieren ]]- Wie installiere ich Software aus dem '''Quelltext'''? Wie entferne ich selbst kompilierte Software wieder?&lt;br /&gt;
* [[automatische Vervollstaendigung in bash erweitern]]&lt;br /&gt;
* [[FAQ Linux/Unix Konsolen Befehle]]&lt;br /&gt;
* [[Systemueberwachung mit sysstat]]&lt;br /&gt;
* [[Ausgaben waehrend des Logins anpassen]]&lt;br /&gt;
* [[: Kopie der root Partition]]&lt;br /&gt;
* [[Imageerstellung mit dd und ddrescue]] - Festplattenimageerstellung und simple Datensicherung mit dd&lt;br /&gt;
* [[Virtuelles (CD) Laufwerk unter Linux]] - Noch ein Weg &amp;quot;virtuelle CD/DVD Laufwerke&amp;quot; zu erstellen und zu nutzen&lt;br /&gt;
* [[Linux mit hdparm beschleunigen]]&lt;br /&gt;
* [[root - Passwort vergessen]]&lt;br /&gt;
* [[Farbe in der Konsole]]&lt;br /&gt;
* [[Rechte auf Dateien und Ordner getrennt vergeben]]&lt;br /&gt;
* [[CheckInstall]]&lt;br /&gt;
* [[Fehlermeldung]]&lt;br /&gt;
* [[loginchecker]] - Ein Script um zu überprüfen wie lange ein Benutzer heute angemeldet war.&lt;br /&gt;
&lt;br /&gt;
==Shells==&lt;br /&gt;
* [[Shells - Allgemeines|Allgemeines zu Shells]]&lt;br /&gt;
* [[Bash]]&lt;br /&gt;
* [[Bashprogrammierung]]&lt;br /&gt;
* [[ssh innerhalb einer while-Schleife]]&lt;br /&gt;
* [[Csh]]&lt;br /&gt;
* [[Csh-Programmierung]]&lt;br /&gt;
* [[Ksh]]&lt;br /&gt;
* [[Ksh-Programmierung|Die Programmierung der Ksh]]&lt;br /&gt;
* [[Shell]]&lt;br /&gt;
&lt;br /&gt;
==Unixwerkzeuge==&lt;br /&gt;
* [[Awk]]&lt;br /&gt;
* [[emacs]]&lt;br /&gt;
* [[Grep]]&lt;br /&gt;
* [[Make]]&lt;br /&gt;
* [[Reguläre Ausdrücke]]&lt;br /&gt;
* [[Sed]]&lt;br /&gt;
* [[Vi]]&lt;br /&gt;
&lt;br /&gt;
== Suse Linux mit OS X ==&lt;br /&gt;
&lt;br /&gt;
* [[Von Suse Linux per Konsole auf OS X]]&lt;br /&gt;
* [[Unsichtbare Dateien auf einer USBplatte löschen]]&lt;br /&gt;
&lt;br /&gt;
== Scripte ==&lt;br /&gt;
&lt;br /&gt;
* [[ Shellscripte]] - kleinere Shellscripte für die Konsolennutzung&lt;br /&gt;
* [[Perlscripte]] - kleinere Perlscripte u.a. für die Konsole&lt;br /&gt;
* [[Benutzerverwaltung per Script]]&lt;br /&gt;
&lt;br /&gt;
== Konsolen &amp;quot;Erweiterungen&amp;quot; ==&lt;br /&gt;
* [[quadkonsole]] - mehrere Konsolen in einem Fenster&lt;br /&gt;
* [[screen]] - &amp;quot;Terminal Multiplexer&amp;quot;, das Tool schlechthin, vor allem für ssh Nutzer&lt;br /&gt;
* [[yakuake]] - &amp;quot;Terminal Emulator&amp;quot;, Konsole auf Tastendruck zum schnellen Öffnen und Schließen&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.bin-bash.de/index.php /bin/bash - Treffpunkt für Linux-Shelluser -] Gute Seite für den Konsolen-Einstieg &lt;br /&gt;
* [http://www.bash-hackers.org/ Bash-Hackers] - Einsteigsseite für ein Bash Programmierer Wiki und Bash Programmierer Forum&lt;br /&gt;
[[Category:Konsole]]&lt;br /&gt;
[[Kategorie:Übersicht]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Jetzt müsste hier der größte Teil der Links wieder funktionieren--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Webseiten_beschleunigen_mit_mod_cache&amp;diff=24420</id>
		<title>Webseiten beschleunigen mit mod cache</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Webseiten_beschleunigen_mit_mod_cache&amp;diff=24420"/>
		<updated>2008-02-25T08:51:31Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: Die Seite wurde neu angelegt: Der Apache lässt sich bekanntermaßen durch viele Module erweitern. Eines davon ist &amp;quot;mod_cache&amp;quot;. Damit lassen sich dynamisch generiete Inhalte, wie sie z.B. Content Ma...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Apache lässt sich bekanntermaßen durch viele Module erweitern. Eines davon ist &amp;quot;mod_cache&amp;quot;. Damit lassen sich dynamisch generiete Inhalte, wie sie z.B. Content Management Systeme generieren, zwischenspeichern. Dies sorgt für eine deutliche Verzögerung der Auslieferungszeiten. Im nachfolgenden Artikel zeigen wir Ihnen wie man dem Apache das Caching beibringt.&lt;br /&gt;
&lt;br /&gt;
Seit Apacheversion 2.2.x gilt mod_cache offiziell als stabil und seine Verwendung im produktiven Umfeld wird empfohlen. Die meisten Linuxdistributionen liefern mod_cache schon seit einiger Zeit mit. Die Installation wird in diesem Artikel anhand von Ubuntu Linux 7.10 erklärt. Prinzipiell ist die Anleitung aber auch auf andere Distributionen anwendbar.&lt;br /&gt;
&lt;br /&gt;
Zwar liefert Ubuntu 7.10 mod_cache zusammen mit dem Apache 2.2 bereits mit, allerdings ist es zunächst noch deaktiviert. Zur Aktivierung erstellt man einfach passende Symlinks im Verzeichnis /etc/apache2/mods-enabled/.&lt;br /&gt;
sudo ln -s /etc/apache2/mods-available/cache.load /etc/apache2/mods-enabled&lt;br /&gt;
sudo ln -s /etc/apache2/mods-available/disk_cache.* /etc/apache2/mods-enabled&lt;br /&gt;
&lt;br /&gt;
Startet man den Apache nun mittels sudo /etc/init.d/apache2 restart, verfügt der Apache über Cachingfähigkeiten.&lt;br /&gt;
&lt;br /&gt;
Jetzt muss man noch konfigurieren was der Apache cachen soll und wohin die Daten gespeichert werden soll.&lt;br /&gt;
&lt;br /&gt;
Hierzu sucht man sich den passenden &amp;lt;Virtualhost&amp;gt; Abschnitt der Apacheconfiguration heraus und fügt folgends hinzu:&lt;br /&gt;
  CacheEnable disk /&lt;br /&gt;
  CacheRoot /var/cache/apache2/vhostX/&lt;br /&gt;
&lt;br /&gt;
CacheRoot gibt dabei an wohin der Apache die gecachten Daten speichern soll. Diese Verzeichniss muss natürlich für den Apache beschreibbar sein. Damit der Apache die Festplatte des Servers nicht mit Daten überfrachtet sollte man dafür sorgen das der Cache regelmäßig zurückgestutzt wird. Hierfür kommt das Programm htcacheclean zum Einsatz. Diese kann man z.B. über einen Cronjob regelmäßig ausführen lassen. Es reduziert die Größe des Caches auf den angegeben Wert. Folgender Aufruf würde z.B. den Cache unter /var/cache/apache2/vhostX/ auf 100 MB geschränken.&lt;br /&gt;
  htcacheclean -p /var/cache/apche2/vhostX/ -l 100M&lt;br /&gt;
&lt;br /&gt;
Nach einem erneuten Neuladen des Apache fängt dieser Automatisch an die Daten zu cachen. Allerdings wird er bisher nur reine HTML Seiten und Grafiken cachen. Das bringt keinen wirklichen Performancegewinn. PHP Seiten wirden bisher noch nicht gecacht, da der Apache nicht ermitteln kann wann eine entsprechende Seite zuletzt bearbeitet wurde.&lt;br /&gt;
&lt;br /&gt;
Diese Information geht nämlich nach dem Durchlauf der PHP Datei durch den PHP Compiler / Interpreter verloren. Um trotzdem ein Caching zu erreichen muss man diese Information manuell ausgeben. Dies ist der Punkt an dem es knifflig wird. Zwar ist es recht einfach einen &amp;quot;Last Modified&amp;quot; Header per PHP zu senden (siehe weiter im Artikel), allerdings ist es gar nicht so einfach zu ermitteln wann eine PHP Seite sich geändert hat.&lt;br /&gt;
&lt;br /&gt;
Bei einer PHP Seite die hauptsächlich statischen Content enthält und nur Teile des Layout, wie z.B. das Menü, per include nachlädt ist das noch recht einfach. Man nimmt einfach das Änderungsdatum der Datei. In PHP kann man das mit fileatime ermitteln.&lt;br /&gt;
&lt;br /&gt;
Bei einer PHP Seite die Daten aus einer Datenbank lädt, wie z.B. das Script das für das Anzeigen dieses Artikels verantwortlich ist, wird das schon nicht mehr so einfach. Der Content ändert sich zwar mit jedem neuen Datensatz in der Datenbank, die eigentliche Datei aber nicht. In diesem Fall ist es angebracht z.B. das Datum des Artikels als Änderungsdatum zu nehmen.&lt;br /&gt;
&lt;br /&gt;
Hat man schlussendlich herausgefunden, wie man das Änderungsdatum definiert kann man es nun dem Apache mitteilen:&lt;br /&gt;
  &amp;lt;?php&lt;br /&gt;
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_mod) . ' GMT');&lt;br /&gt;
  ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei ist $last_mod das Änderungsdatum im Unixtimestamp-Format.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus ist es natürlich auch noch sinnvoll dem Apache mitzuteilen wie alt seine Kopie der Seite maximal sein darf bevor er eine aktuelle Version anfordern muss. Dies funktioniert über den Max-Age Header&lt;br /&gt;
  &amp;lt;?php header('Cache-Control: public,max-age=' . (3600 * 168)); ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Angabe (3600 * 168) bedeutet in diesem Fall eine maximales Alter von einer Woche.&lt;br /&gt;
&lt;br /&gt;
Sobald dies in den PHP Dateien enthalten ist, cacht der Apache auch PHP Dateien. Je nachdem wie komplex eine PHP Datei ist, kann man mit dieser Methode die Auslieferungszeit um ca. 30% erhöhen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quelle ==&lt;br /&gt;
* http://www.pgk-dienstleistungen.de/de/blog/e/Webseiten__beschleunigen__mit__mod_cache&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=LAMP&amp;diff=24419</id>
		<title>LAMP</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=LAMP&amp;diff=24419"/>
		<updated>2008-02-25T08:49:13Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Allgemein */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemein ==&lt;br /&gt;
&lt;br /&gt;
* [[Apache]]&lt;br /&gt;
* [[Apache mit LDAP]] - Einrichtung einer Authentifizierung von Benutzern am Apache über eine zentrale Benutzerverwaltung mit LDAP &lt;br /&gt;
* [[XAMPP]]&lt;br /&gt;
* [[iCalendar mit WebDAV]] - Den Sunbird/Lightning-Kalender auf mehreren Rechnern nutzen&lt;br /&gt;
* [[Virtual Host mit Yast konfigurieren]]&lt;br /&gt;
* [[Das Apache-Modul mod_rewrite]] - Hier gibt es etliche Links zu dem Thema - Ist allerdings sehr Joomlalastig, da es auch [[Joomla/Links]] eingebunden ist.&lt;br /&gt;
* [[Webseiten beschleunigen mit mod_cache]]&lt;br /&gt;
&lt;br /&gt;
== Musterkonfigurationen ==&lt;br /&gt;
&lt;br /&gt;
* [[Apache Musterkonfigurationen]]&lt;br /&gt;
* [[VirtualHosts Musterkonfigurationen]]&lt;br /&gt;
* [[Errordocument Musterkonfigurationen]]&lt;br /&gt;
* [[htaccess SEO URL Musterkonfigurationen]]&lt;br /&gt;
Auf Joomla bezogen, da es in [[Joomla/Links]]  integriert ist.&lt;br /&gt;
* [[htaccess Zugangsregelung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:LAMP]][[Kategorie:Übersicht]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16561</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16561"/>
		<updated>2007-05-22T17:48:45Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls im Allgemeinen. Es geht nicht um die Konfiguration einer speziellen Firewall. Anleitungen und Artikel darüber finden sich, am Ende der Seite, in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet, die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen, deren Verbindungen kontrolliert werden sollen. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet _meistens_ im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO/OSI Modells]. Eine Firewall, die keinerlei Verbindungen blockiert verhält sich somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
Neben diesen Layer-4 Firewalls kann eine Firewall auch im Layer 2, also bereits im Data Link Layer aktiv sein. Eine solche Firewall filtert dann nicht mehr an Hand von IP Adressen, sondern an Hand von MAC Adressen. Solche Bridgefirewalls werden in aller Regel für die Kontrolle des eigenen internen LANs eingesetzt. Im Außeneinsatz, also zur Trennung zwischen eigenem LAN und Internet machen solche Firewalls keinen Sinn, da MAC Adressen bereits nach dem ersten Router verloren gehen und so ein feinkörnige Trennung der Zugriffe nicht mehr möglich wäre.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente, gibt es auch noch Firewalls, die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem man einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert man dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes, beeinflussen. Eine Applicationlayerfirewall kann also erkennen ob das, was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken, in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen, müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurde (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung expliziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird, wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall, die Statefullinspection beherrscht, handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat, würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen, können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindungen anhand ihrem Zustand zu zulassen oder zu verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen, welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Software zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen, um die Dienste, welche die Firewall erlauben soll, abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine darstellen.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen, dass die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB, eben alles was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten, was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür, dass die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann, welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch, dass die Firewall nicht reagiert, weiß der Angreifer schonmal, dass höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Security|zurück zur Security]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16560</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16560"/>
		<updated>2007-05-22T17:33:51Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten also keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheidet sich stark von den bisher eingesetzten Routingmöglichkeiten, bei welchen ein Router nur an Hand des Zieles, eines Datenpaketes entscheidet, an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtigt und dann entscheidet was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welches zuverlässig, aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden, ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden, ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamisches Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgend sowohl die Begriffe Router und Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist dies für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen: Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden, ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traf der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei eine klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert dieses Konzept nun folgendermaßen: Statt einer Routingtabelle gibt es gleich Mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann, was der Next Hop für ein bestimmtes Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen, in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen, wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutrifft, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zum nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;nummerischen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
==== Wie man Regeln und Routen anlegt ====&lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Regelliste ist logischerweise nur die halbe Miete, denn damit kann man zwar sagen welche Routingtabelle genutzt werden soll, allerdings nützt einem dies gar nichts, wenn die ganzen Routingtabellen leer sind. Diese muss man auch noch erstellen und füllen. Dies funktioniert auch mit &amp;quot;ip&amp;quot;. Folgendermaßen fügt man eine Route einer Tabelle zu:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Das a.b.c.d soll das Ziel darstellen, welches man in der Realität natürlich durch eine echte IP Adresse ersetzen muss. &amp;quot;via 192.168.1.1&amp;quot; stellt natürlich den Next Hop da und dev ra0 bezeichnet die Netzwerkkarte. Mit &amp;quot;table 2&amp;quot; bestimmt man das die Route der Tabelle 2 hinzugefügt werden soll.&lt;br /&gt;
&lt;br /&gt;
Nun kann man sich die Routingtabelle auch ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip route list table 2&lt;br /&gt;
   a.b.c.d via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Übrigens sollte man sich beim Anlegen einer Route vertippt haben sollen, kann man die Route natürlich auch wieder löschen. So würde man die erste Route löschen:&lt;br /&gt;
&lt;br /&gt;
  ip route del a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Auch ein ändern einer bestehenden Regel wäre möglich:&lt;br /&gt;
&lt;br /&gt;
  ip route change a.b.c.d table 2 via 192.168.1.1 dev ra0 via 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
Damit wäre nicht 192.168.1.1 der Next Hop sondern 192.168.1.2. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Konfiguration - Unterschiedliches Routing für verschiedene Dienste ====&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man, dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Balast darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0 (tun0 ist das VPN Interface).&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports anhand unterschiedlicher Routingtabellen geroutet. Das war es was _im Prinzip_ wir erreichen wollten. Einige Hinweise noch: Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die Routingtabellen 2 und 3 anlegen bzw. füllen. Dies geht so:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
  ip route add a.b.c.d table 3 via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile fügt der Tabelle 2 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d an 192.168.1.1 über das Interface ra0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Die zweite Zeile fügt der Tabelle 3 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d. an 10.0.0.10 über das Interface tun0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Das war es was erreicht werden soll. Dank iptables und ip werden Pakete mit dem gleichen Ziel, aber unterschiedlichen Protokollen auch unterschiedlich geroutet. SMTP wird über die sichere VPN Verbindung geschickt, HTTPS über das normale Internet. Das alles ohne das die Clients im Netzwerk davon etwas mitbekommen.&lt;br /&gt;
&lt;br /&gt;
== Abschlussbemerkung ==&lt;br /&gt;
&lt;br /&gt;
Ich hoffe die Grundlagen von Policy Based Routing mit Linux konnte ich in diesem Artikel erläutern. Natürlich sind nicht alle Möglichkeiten von PBR ausgeschöpft. Allein ip und iptables bieten schier unendlich viele Möglichkeiten, deren komplette Auflistung den Rahmen dieses Artikels bei weitem sprengen würden. Falls noch Fragen zum Thema offen sind stehe ich gerne für Antworten bereit. Meine Kontaktdaten finden sich auf meiner Homepage: http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:Netzwerkgrundlagen]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16535</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16535"/>
		<updated>2007-05-22T09:30:51Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamisches Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
==== Wie man Regeln und Routen anlegt ====&lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Regelliste ist logischerweise nur die halbe Miete, denn damit kann man zwar sagen welche Routingtabelle genutzt werden soll, allerdings nützt einem dies gar nichts wenn die ganzen Routingtabellen leer sind. Diese muss man auch noch erstellen und füllen. Dies funktioniert auch mit &amp;quot;ip&amp;quot;. Folgendermaßen fügt man eine Route einer Tabelle zu.&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Das a.b.c.d soll das Ziel darstellen, welches man in der Realität natürlich durch eine echte IP Adresse ersetzen muss. &amp;quot;via 192.168.1.1&amp;quot; stellt natürlich den Next Hop da und dev ra0 bezeichnet die Netzwerkkarte. Mit &amp;quot;table 2&amp;quot; bestimmt man das die Route der Tabelle 2 hinzugefügt werden soll.&lt;br /&gt;
&lt;br /&gt;
Nun kann man sich die Routingtabelle auch ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip route list table 2&lt;br /&gt;
   a.b.c.d via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Übrigens sollte man sich beim Anlegen einer Router vertippt haben sollen kann man die Route natürlich auch wieder löschen. So würde man die erste Route löschen:&lt;br /&gt;
&lt;br /&gt;
  ip route del a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Auch ein ändern einer bestehenden Regel wäre möglich:&lt;br /&gt;
&lt;br /&gt;
  ip route change a.b.c.d table 2 via 192.168.1.1 dev ra0 via 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
Damit wäre nicht 192.168.1.1 der Next Hop sondern 192.168.1.2. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Konfiguration - Unterschiedliches Routing für verschiedene Dienste ====&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Balast darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0 (tun0 ist das VPN Interface).&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports anhand unterschiedlicher Routingtabellen geroutet. Das war es was _im Prinzip_ wir erreichen wollten. Einige Hinweise noch: Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die Routingtabellen 2 und 3 anlegen bzw. füllen. Dies geht so:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
  ip route add a.b.c.d table 3 via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile fügt der Tabelle 2 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d an 192.168.1.1 über das Interface ra0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Die zweite Zeile fügt der Tabelle 3 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d. an 10.0.0.10 über das Interface tun0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Das war es war erreicht werden soll. Dank iptables und ip werden Pakete mit dem gleichen Ziel, aber unterschiedlichen Protokollen auch unterschiedlich geroutet. SMTP wird über die sichere VPN Verbindung geschickt, HTTPS über das normale Internet. Das alles ohne das die Clients im Netzwerk davon etwas mitbekommen.&lt;br /&gt;
&lt;br /&gt;
== Abschlussbemerkung ==&lt;br /&gt;
&lt;br /&gt;
Ich hoffe die Grundlagen von Policy Based Routing mit Linux konnte ich in diesem Artikel erläutern. Natürlich sind nicht alle Möglichkeiten von PBR ausgeschöpft. Allein ip und iptables bieten schier unendlich viele Möglichkeiten, deren komplette Auflistung den Rahmen dieses Artikels bei weitem sprengen würden. Falls noch Fragen zum Thema offen sind stehe ich gerne für Antworten bereit. Meine Kontaktdaten finden sich auf meiner Homepage: http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:Netzwerkgrundlagen]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16534</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16534"/>
		<updated>2007-05-22T09:30:30Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer speziellen Firewall. Anleitungen und Artikel darüber finden sich, am Ende der Seite, in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet, die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden sollen. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet _meistens_ im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO/OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält sich somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
Neben diesen Layer-4 Firewalls kann eine Firewall auch im Layer 2, also bereits im Data Link Layer aktiv sein. Eine solche Firewall filtert dann nicht mehr an Hand von IP Adressen, sondern an Hand von MAC Adressen. Solche Bridgefirewalls werden in aller Regel für die Kontrolle des eigenen internen LANs eingesetzt. Im Außeneinsatz, also zur Trennung zwischen eigenem LAN und Internet machen solche Firewalls keinen Sinn, da MAC Adressen bereits nach dem ersten Router verloren gehen und so ein feinkörnige Trennung der Zugriffe nicht mehr möglich wäre.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente, gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes, beeinflussen. Eine Applicationlayerfirewall kann also erkennen ob das, was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken, in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen, müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB, eben alles was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Security|zurück zur Security]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16532</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16532"/>
		<updated>2007-05-22T05:57:50Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamisches Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
==== Wie man Regeln und Routen anlegt ====&lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Regelliste ist logischerweise nur die halbe Miete, denn damit kann man zwar sagen welche Routingtabelle genutzt werden soll, allerdings nützt einem dies gar nichts wenn die ganzen Routingtabellen leer sind. Diese muss man auch noch erstellen und füllen. Dies funktioniert auch mit &amp;quot;ip&amp;quot;. Folgendermaßen fügt man eine Route einer Tabelle zu.&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Das a.b.c.d soll das Ziel darstellen, welches man in der Realität natürlich durch eine echte IP Adresse ersetzen muss. &amp;quot;via 192.168.1.1&amp;quot; stellt natürlich den Next Hop da und dev ra0 bezeichnet die Netzwerkkarte. Mit &amp;quot;table 2&amp;quot; bestimmt man das die Route der Tabelle 2 hinzugefügt werden soll.&lt;br /&gt;
&lt;br /&gt;
Nun kann man sich die Routingtabelle auch ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip route list table 2&lt;br /&gt;
   a.b.c.d via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Übrigens sollte man sich beim Anlegen einer Router vertippt haben sollen kann man die Route natürlich auch wieder löschen. So würde man die erste Route löschen:&lt;br /&gt;
&lt;br /&gt;
  ip route del a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Auch ein ändern einer bestehenden Regel wäre möglich:&lt;br /&gt;
&lt;br /&gt;
  ip route change a.b.c.d table 2 via 192.168.1.1 dev ra0 via 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
Damit wäre nicht 192.168.1.1 der Next Hop sondern 192.168.1.2. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Konfiguration - Unterschiedliches Routing für verschiedene Dienste ====&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Balast darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0 (tun0 ist das VPN Interface).&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports anhand unterschiedlicher Routingtabellen geroutet. Das war es was _im Prinzip_ wir erreichen wollten. Einige Hinweise noch: Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die Routingtabellen 2 und 3 anlegen bzw. füllen. Dies geht so:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
  ip route add a.b.c.d table 3 via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile fügt der Tabelle 2 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d an 192.168.1.1 über das Interface ra0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Die zweite Zeile fügt der Tabelle 3 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d. an 10.0.0.10 über das Interface tun0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Das war es war erreicht werden soll. Dank iptables und ip werden Pakete mit dem gleichen Ziel, aber unterschiedlichen Protokollen auch unterschiedlich geroutet. SMTP wird über die sichere VPN Verbindung geschickt, HTTPS über das normale Internet. Das alles ohne das die Clients im Netzwerk davon etwas mitbekommen.&lt;br /&gt;
&lt;br /&gt;
== Abschlussbemerkung ==&lt;br /&gt;
&lt;br /&gt;
Ich hoffe die Grundlagen von Policy Based Routing mit Linux konnte ich in diesem Artikel erläutern. Natürlich sind nicht alle Möglichkeiten von PBR ausgeschöpft. Allein ip und iptables bieten schier unendlich viele Möglichkeiten, deren komplette Auflistung den Rahmen dieses Artikels bei weitem sprengen würden. Falls noch Fragen zum Thema offen sind stehe ich gerne für Antworten bereit. Meine Kontaktdaten finden sich auf meiner Homepage: http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:Netzwerkgrundlagen]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Policy_Based_Routing&amp;diff=16531</id>
		<title>Diskussion:Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Policy_Based_Routing&amp;diff=16531"/>
		<updated>2007-05-22T05:55:56Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es wäre sinnvoll den Artikel nach &amp;quot;Policy Based Routing&amp;quot; zu verschieben, da mit Linux im Linux Wiki wohl überflüssig ist. --[[Benutzer:Yehudi|Yehudi]] 19:40, 20. Mai 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Andereseits macht das &amp;quot;mit Linux&amp;quot; deutlich dass es auch um die Konfiguration von PBR unter Linux geht und es sich nicht nur um einen allgemeinen Artikel zum Thema PBR handelt. Findest Du nicht?&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Nbkr|Nbkr]] 07:55, 22. Mai 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Nbkr&amp;diff=16530</id>
		<title>Benutzer:Nbkr</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Nbkr&amp;diff=16530"/>
		<updated>2007-05-22T05:54:37Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Wikilinks für mich */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wer ich bin? ==&lt;br /&gt;
http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Wikilinks für mich ==&lt;br /&gt;
&lt;br /&gt;
* [[Firewall]]&lt;br /&gt;
* [[Policy Based Routing mit Linux]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Firewall&amp;diff=16529</id>
		<title>Diskussion:Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Firewall&amp;diff=16529"/>
		<updated>2007-05-22T05:54:07Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hallo nbkr,&lt;br /&gt;
&lt;br /&gt;
schön, dass Du beim Wettbewerb teilnimmst. füge doch bitte unten am Fuß noch die Kategorie ein:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;----&lt;br /&gt;
&lt;br /&gt;
[[Security|zurück zur Security]]&lt;br /&gt;
[[Category:Security]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ich wünsche Dir noch viel Erfolg.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Yehudi|Yehudi]] 18:18, 16. Mai 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Danke! Die Links sind drin.&lt;br /&gt;
--[[Benutzer:Nbkr|Nbkr]] 07:54, 22. Mai 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Firewall&amp;diff=16528</id>
		<title>Diskussion:Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Firewall&amp;diff=16528"/>
		<updated>2007-05-22T05:53:42Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hallo nbkr,&lt;br /&gt;
&lt;br /&gt;
schön, dass Du beim Wettbewerb teilnimmst. füge doch bitte unten am Fuß noch die Kategorie ein:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;----&lt;br /&gt;
&lt;br /&gt;
[[Security|zurück zur Security]]&lt;br /&gt;
[[Category:Security]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ich wünsche Dir noch viel Erfolg.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Yehudi|Yehudi]] 18:18, 16. Mai 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
Danke! Die Links sind drin.&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16527</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16527"/>
		<updated>2007-05-22T05:53:10Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer speziellen Firewall. Anleitungen und Artikel darüber finden sich, am Ende der Seite, in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet, die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden sollen. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet _meistens_ im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO/OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält sich somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
Neben diesen Layer-4 Firewalls kann eine Firewall auch im Layer 2, also bereits im Data Link Layer aktiv sein. Eine solche Firewall filtert dann nicht mehr an Hand von IP Adressen, sondern an Hand von MAC Adressen. Solche Bridgefirewalls werden in aller Regel für die Kontrolle des eigenen internen LANs eingesetzt. Im Außeneinsatz, also zur Trennung zwischen eigenem LAN und Internet machen solche Firewalls keinen Sinn, da MAC Adressen bereits nach dem ersten Router verloren gehen und so ein feinkörnige Trennung der Zugriffe nicht mehr möglich wäre.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente, gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes, beeinflussen. Eine Applicationlayerfirewall kann also erkennen ob das, was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken, in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen, müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB, eben alles was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Security|zurück zur Security]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16501</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16501"/>
		<updated>2007-05-21T12:06:25Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: Typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer speziellen Firewall. Anleitungen und Artikel darüber finden sich, am Ende der Seite, in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet, die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden sollen. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet _meistens_ im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO/OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält sich somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
Neben diesen Layer-4 Firewalls kann eine Firewall auch im Layer 2, also bereits im Data Link Layer aktiv sein. Eine solche Firewall filtert dann nicht mehr an Hand von IP Adressen, sondern an Hand von MAC Adressen. Solche Bridgefirewalls werden in aller Regel für die Kontrolle des eigenen internen LANs eingesetzt. Im Außeneinsatz, also zur Trennung zwischen eigenem LAN und Internet machen solche Firewalls keinen Sinn, da MAC Adressen bereits nach dem ersten Router verloren gehen und so ein feinkörnige Trennung der Zugriffe nicht mehr möglich wäre.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente, gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes, beeinflussen. Eine Applicationlayerfirewall kann also erkennen ob das, was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken, in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen, müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB, eben alles was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16500</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16500"/>
		<updated>2007-05-21T12:00:35Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Netzwerkfirewall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet _meistens_ im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO/OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
Neben diesen Layer-4 Firewalls kann eine Firewall auch im Layer 2, also bereits im Data Link Layer aktiv sein. Eine solche Firewall filtert dann nicht mehr an Hand von IP Adressen sondern an Hand von MAC Adressen. Solche Bridgefirewalls werden in aller Regel nicht für die Kontrolle des eigenen Internen LANs eingesetzt. Im Außeneinsatz, also zur Trennung zwischen eigenem LAN und Internet machen solche Firewalls keinen Sinn, da MAC Adressen bereits nach dem ersten Router verloren gehen und so ein feinkörnige Trennung der Zugriffe nicht mehr möglich wäre.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB, eben alles was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16499</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=16499"/>
		<updated>2007-05-21T11:50:53Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Netzwerkfirewall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO/OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB, eben alles was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16426</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16426"/>
		<updated>2007-05-20T17:30:59Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Die Praxis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamisches Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
==== Wie man Regeln und Routen anlegt ====&lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Regelliste ist logischerweise nur die halbe Miete, denn damit kann man zwar sagen welche Routingtabelle genutzt werden soll, allerdings nützt einem dies gar nichts wenn die ganzen Routingtabellen leer sind. Diese muss man auch noch erstellen und füllen. Dies funktioniert auch mit &amp;quot;ip&amp;quot;. Folgendermaßen fügt man eine Route einer Tabelle zu.&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Das a.b.c.d soll das Ziel darstellen, welches man in der Realität natürlich durch eine echte IP Adresse ersetzen muss. &amp;quot;via 192.168.1.1&amp;quot; stellt natürlich den Next Hop da und dev ra0 bezeichnet die Netzwerkkarte. Mit &amp;quot;table 2&amp;quot; bestimmt man das die Route der Tabelle 2 hinzugefügt werden soll.&lt;br /&gt;
&lt;br /&gt;
Nun kann man sich die Routingtabelle auch ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip route list table 2&lt;br /&gt;
   a.b.c.d via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Übrigens sollte man sich beim Anlegen einer Router vertippt haben sollen kann man die Route natürlich auch wieder löschen. So würde man die erste Route löschen:&lt;br /&gt;
&lt;br /&gt;
  ip route del a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Auch ein ändern einer bestehenden Regel wäre möglich:&lt;br /&gt;
&lt;br /&gt;
  ip route change a.b.c.d table 2 via 192.168.1.1 dev ra0 via 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
Damit wäre nicht 192.168.1.1 der Next Hop sondern 192.168.1.2. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Konfiguration - Unterschiedliches Routing für verschiedene Dienste ====&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Balast darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0 (tun0 ist das VPN Interface).&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports anhand unterschiedlicher Routingtabellen geroutet. Das war es was _im Prinzip_ wir erreichen wollten. Einige Hinweise noch: Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die Routingtabellen 2 und 3 anlegen bzw. füllen. Dies geht so:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
  ip route add a.b.c.d table 3 via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile fügt der Tabelle 2 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d an 192.168.1.1 über das Interface ra0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Die zweite Zeile fügt der Tabelle 3 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d. an 10.0.0.10 über das Interface tun0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Das war es war erreicht werden soll. Dank iptables und ip werden Pakete mit dem gleichen Ziel, aber unterschiedlichen Protokollen auch unterschiedlich geroutet. SMTP wird über die sichere VPN Verbindung geschickt, HTTPS über das normale Internet. Das alles ohne das die Clients im Netzwerk davon etwas mitbekommen.&lt;br /&gt;
&lt;br /&gt;
== Abschlussbemerkung ==&lt;br /&gt;
&lt;br /&gt;
Ich hoffe die Grundlagen von Policy Based Routing mit Linux konnte ich in diesem Artikel erläutern. Natürlich sind nicht alle Möglichkeiten von PBR ausgeschöpft. Allein ip und iptables bieten schier unendlich viele Möglichkeiten, deren komplette Auflistung den Rahmen dieses Artikels bei weitem sprengen würden. Falls noch Fragen zum Thema offen sind stehe ich gerne für Antworten bereit. Meine Kontaktdaten finden sich auf meiner Homepage: http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16424</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16424"/>
		<updated>2007-05-20T17:29:41Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamisches Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
==== Wie man Regeln anlegt ====&lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Regelliste ist logischerweise nur die halbe Miete, denn damit kann man zwar sagen welche Routingtabelle genutzt werden soll, allerdings nützt einem dies gar nichts wenn die ganzen Routingtabellen leer sind. Diese muss man auch noch erstellen und füllen. Dies funktioniert auch mit &amp;quot;ip&amp;quot;. Folgendermaßen fügt man eine Route einer Tabelle zu.&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Das a.b.c.d soll das Ziel darstellen, welches man in der Realität natürlich durch eine echte IP Adresse ersetzen muss. &amp;quot;via 192.168.1.1&amp;quot; stellt natürlich den Next Hop da und dev ra0 bezeichnet die Netzwerkkarte. Mit &amp;quot;table 2&amp;quot; bestimmt man das die Route der Tabelle 2 hinzugefügt werden soll.&lt;br /&gt;
&lt;br /&gt;
Nun kann man sich die Routingtabelle auch ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip route list table 2&lt;br /&gt;
   a.b.c.d via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Übrigens sollte man sich beim Anlegen einer Router vertippt haben sollen kann man die Route natürlich auch wieder löschen. So würde man die erste Route löschen:&lt;br /&gt;
&lt;br /&gt;
  ip route del a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Auch ein ändern einer bestehenden Regel wäre möglich:&lt;br /&gt;
&lt;br /&gt;
  ip route change a.b.c.d table 2 via 192.168.1.1 dev ra0 via 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
Damit wäre nicht 192.168.1.1 der Next Hop sondern 192.168.1.2. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Konfiguration 1 - Unterschiedliches Routing für verschiedene Dienste ====&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Overhead darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0.&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports anhand unterschiedlicher Routingtabellen geroutet. Das war es was _im Prinzip_ wir erreichen wollten. Einige Hinweise noch: Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die Routingtabellen 2 und 3 anlegen bzw. füllen. Dies geht so:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
  ip route add a.b.c.d table 3 via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile fügt der Tabelle 2 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d an 192.168.1.1 über das Interface ra0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Die zweite Zeile fügt der Tabelle 3 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d. an 10.0.0.10 über das Interface tun0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Das war es war erreicht werden soll. Dank iptables und ip werden Pakete mit dem gleichen Ziel, aber unterschiedlichen Protokollen auch unterschiedlich geroutet. SMTP wird über die sichere VPN Verbindung geschickt, HTTPS über das normale Internet. Das alles ohne das die Clients im Netzwerk davon etwas mitbekommen.&lt;br /&gt;
&lt;br /&gt;
== Abschlussbemerkung ==&lt;br /&gt;
&lt;br /&gt;
Ich hoffe die Grundlagen von Policy Based Routing mit Linux konnte ich in diesem Artikel erläutern. Natürlich sind nicht alle Möglichkeiten von PBR ausgeschöpft. Allein ip und iptables bieten schier unendlich viele Möglichkeiten, deren komplette Auflistung den Rahmen dieses Artikels bei weitem sprengen würden. Falls noch Fragen zum Thema offen sind stehe ich gerne für Antworten bereit. Meine Kontaktdaten finden sich auf meiner Homepage: http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16419</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16419"/>
		<updated>2007-05-20T17:26:32Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Die Praxis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamisches Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
==== Wie man Regeln anlegt ====&lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Regelliste ist logischerweise nur die halbe Miete, denn damit kann man zwar sagen welche Routingtabelle genutzt werden soll, allerdings nützt einem dies gar nichts wenn die ganzen Routingtabellen leer sind. Diese muss man auch noch erstellen und füllen. Dies funktioniert auch mit &amp;quot;ip&amp;quot;. Folgendermaßen fügt man eine Route einer Tabelle zu.&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Das a.b.c.d soll das Ziel darstellen, welches man in der Realität natürlich durch eine echte IP Adresse ersetzen muss. &amp;quot;via 192.168.1.1&amp;quot; stellt natürlich den Next Hop da und dev ra0 bezeichnet die Netzwerkkarte. Mit &amp;quot;table 2&amp;quot; bestimmt man das die Route der Tabelle 2 hinzugefügt werden soll.&lt;br /&gt;
&lt;br /&gt;
Nun kann man sich die Routingtabelle auch ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip route list table 2&lt;br /&gt;
   a.b.c.d via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Übrigens sollte man sich beim Anlegen einer Router vertippt haben sollen kann man die Route natürlich auch wieder löschen. So würde man die erste Route löschen:&lt;br /&gt;
&lt;br /&gt;
  ip route del a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Auch ein ändern einer bestehenden Regel wäre möglich:&lt;br /&gt;
&lt;br /&gt;
  ip route change a.b.c.d table 2 via 192.168.1.1 dev ra0 via 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
Damit wäre nicht 192.168.1.1 der Next Hop sondern 192.168.1.2. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Konfiguration 1 - Unterschiedliches Routing für verschiedene Dienste ====&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Overhead darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0.&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports anhand unterschiedlicher Routingtabellen geroutet. Das war es was _im Prinzip_ wir erreichen wollten. Einige Hinweise noch: Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die Routingtabellen 2 und 3 anlegen bzw. füllen. Dies geht so:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
  ip route add a.b.c.d table 3 via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Die erste Zeile fügt der Tabelle 2 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d an 192.168.1.1 über das Interface ra0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Die zweite Zeile fügt der Tabelle 3 ein Eintrag hinzu, wodurch alle Daten für das Ziel a.b.c.d. an 10.0.0.10 über das Interface tun0 geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Das war es war erreicht werden soll. Dank iptables und ip werden Pakete mit dem gleichen Ziel, aber unterschiedlichen Protokollen auch unterschiedlich geroutet. SMTP wird über die sichere VPN Verbindung geschickt, HTTPS über das normale Internet. Das alles ohne das die Clients im Netzwerk davon etwas mitbekommen.&lt;br /&gt;
&lt;br /&gt;
== Abschlussbemerkung ==&lt;br /&gt;
&lt;br /&gt;
Ich hoffe die Grundlagen von Policy Based Routing mit Linux konnte ich in diesem Artikel erläutern. Natürlich sind nicht alle Möglichkeiten von PBR ausgeschöpft. Allein ip und iptables bieten schier unendlich viele Möglichkeiten, deren komplette Auflistung den Rahmen dieses Artikels bei weitem sprengen würden. Falls noch Fragen zum Thema offen sind stehe ich gerne für Antworten bereit. Meine Kontaktdaten finden sich auf meiner Homepage: http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16407</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16407"/>
		<updated>2007-05-20T17:16:09Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamisches Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Overhead darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0.&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports anhand unterschiedlicher Routingtabellen geroutet. Das war es was _im Prinzip_ wir erreichen wollten. Einige Hinweise noch: Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
Nun kann man also Regeln setzten wie man möchte. Allerdings wurde noch mit keinem Wort erwähnt mit man nun die Routingtabellen wirklich füllt. Keine Sorge das folgt jetzt:&lt;br /&gt;
&lt;br /&gt;
Die Regelliste ist logischerweise nur die halbe Miete, denn damit kann man zwar sagen welche Routingtabelle genutzt werden soll, allerdings nützt einem dies gar nichts wenn die ganzen Routingtabellen leer sind. Diese muss man auch noch erstellen und füllen. Dies funktioniert auch mit &amp;quot;ip&amp;quot;. Bleiben wir im Beispiel mit dem fwmark, welches als letztes erwähnt wurde. Hier kommen zwei Routingtabellen zum Einsatz, Nr. 2 und Nr. 3. Bisher gibt es diese Tabellen noch gar nicht, ergo würde das Routing noch nicht wirklich funktionieren. Wir müssen die beiden Tabellen erstellen.&lt;br /&gt;
Fangen wir mit Nr. 2 an. Diese soll wie gesagt die Daten über das Internet routen. Für das Ziel a.b.c.d. ist in diesem Fall der Next Hop der Router mit der IP 192.168.1.1 welcher sich über das Interface ra0 erreichen lässt.&lt;br /&gt;
Um dieses zu realisieren muss man folgendes eingeben.&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Das via 192.168.1.1 stellt natürlich den Next Hop da und dev ra0 bezeichnet die Netzwerkkarte. &lt;br /&gt;
Nun noch die Tabelle Nr. füllen. Dies soll für das gleiche Ziel (a.b.c.d) den Next Hop 10.0.0.10 nehmen welcher sich über das Interface tun0 erreichen lässt:&lt;br /&gt;
&lt;br /&gt;
  ip route add a.b.c.d table 3 via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Nun noch schnell anzeigen lassen ob das ganze geklappt hat:&lt;br /&gt;
&lt;br /&gt;
  ip route list table 2&lt;br /&gt;
    a.b.c.d via 192.168.1.1 dev ra0 &lt;br /&gt;
&lt;br /&gt;
  ip route list table 3&lt;br /&gt;
    a.b.c.d via 10.0.0.10 dev tun0&lt;br /&gt;
&lt;br /&gt;
Prima, hat geklappt. Das Policy Based Routing für unser kleines Beispiel sollte jetzt funktionieren. Mails werden über die VPN Verbindung verschickt, https Verkehr läuft über das Internet. Das alles ohne das die Clients im Netzwerk etwas merken!&lt;br /&gt;
&lt;br /&gt;
Übrigens sollte man sich beim Anlegen einer Router vertippt haben sollen kann man die Route natürlich auch wieder löschen. So würde man die erste Route löschen:&lt;br /&gt;
&lt;br /&gt;
  ip route del a.b.c.d table 2 via 192.168.1.1 dev ra0&lt;br /&gt;
&lt;br /&gt;
Auch ein ändern einer bestehenden Regel wäre möglich:&lt;br /&gt;
&lt;br /&gt;
  ip route change a.b.c.d table 2 via 192.168.1.1 dev ra0 via 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
Damit wäre nicht 192.168.1.1 der Next Hop sondern 192.168.1.2.&lt;br /&gt;
&lt;br /&gt;
== Abschlussbemerkung ==&lt;br /&gt;
&lt;br /&gt;
Ich hoffe die Grundlagen von Policy Based Routing mit Linux konnte ich in diesem Artikel erläutern. Natürlich sind nicht alle Möglichkeiten von PBR ausgeschöpft. Allein ip und iptables bieten schier unendlich viele Möglichkeiten, deren komplette Auflistung den Rahmen dieses Artikels bei weitem sprengen würden. Falls noch Fragen zum Thema offen sind stehe ich gerne für Antworten bereit. Meine Kontaktdaten finden sich auf meiner Homepage: http://www.benjaminfleckenstein.de&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16389</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16389"/>
		<updated>2007-05-20T16:54:18Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wenn man sich nun die Liste wieder ansieht erhält man dies:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Unsere Regel steht zweimal drin. Das war eigentlich nicht beabsichtigt, ist aber kein Problem, man kann Regeln natürlich wieder löschen, und zwar so:&lt;br /&gt;
&lt;br /&gt;
  ip rule del from 192.168.1.17 prio 32765 table 17&lt;br /&gt;
&lt;br /&gt;
Nun sollte die Regelliste wieder so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  2:      from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serviceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Overhead darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0.&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports unterschiedlich geroutet. Das war es was wir erreichen wollten. Einige Hinweise noch zum Schluss. Es macht keinen Sinn die Markierung erst in der POSTROUTING-Kette zu setzen. Wie der Name schon sagt wurde die Routingentscheidung ja schon getroffen bevor die POSTROUTING-Kette durchlaufen wird. ip würde von der gesetzten Marke also längst nichts mehr mitbekommen.&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16387</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16387"/>
		<updated>2007-05-20T16:46:42Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
(Quelle siehe: Quellen am Ende der Seite, Quelle Nr. 5)&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Die Praxis ===&lt;br /&gt;
Genug der Theorie, nun ein wenig Praxis. Nachfolgend die Erklärung wie man eigene Regeln der Rulelist hinzufügt.&lt;br /&gt;
Hierzu braucht man das Programm &amp;quot;ip&amp;quot;. ip ist ein echtes Schwergewicht in Sachen IP-Konfiguration. Es bietet unzählige Möglichkeiten und eine entsprechend lange Manpage. Darüber hinaus hat ip sogar noch eine eigenbaute Hilfefunktion, die man mit &amp;quot;ip help&amp;quot; aufrufen kann. &lt;br /&gt;
&lt;br /&gt;
Nun endlich genug der Worte. Wir wollen nun eine Regel anlegen, die auf Deutsch aussagt:&lt;br /&gt;
&lt;br /&gt;
  Wenn die Quelle des Paketes gleich 192.168.1.17 ist, dann schaue in Routingtabelle 17 nach.&lt;br /&gt;
&lt;br /&gt;
Das geht so. Einfach als root folgendes eintippen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 table 17&lt;br /&gt;
&lt;br /&gt;
Anschließend kann man sich das Ergebnis, also die veränderte Rulelist so ansehen:&lt;br /&gt;
&lt;br /&gt;
  ip rule list&lt;br /&gt;
&lt;br /&gt;
oder wer es gerne kurz mag kann auch&lt;br /&gt;
&lt;br /&gt;
  ip ru ls&lt;br /&gt;
&lt;br /&gt;
verwenden. Das ganze sollte jetzt so aussehen:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local &lt;br /&gt;
  32765:  from 192.168.1.17 lookup 17 &lt;br /&gt;
  32766:  from all lookup main &lt;br /&gt;
  32767:  from all lookup default &lt;br /&gt;
&lt;br /&gt;
Wie man sehen kann wurde die Regel als erste der letzten eingefügt, also also die höchste noch frei Priorität bekommen. Man dies beeinflusse in dem man die Priorität selbst festlegt. Das geht so:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from 192.168.1.17 prio 2 table 17&lt;br /&gt;
&lt;br /&gt;
Wie gesagt kann man noch mehr als nur die Quelle als Selektionskriterum verwenden. Z.B. das [http://de.wikipedia.org/wiki/IP-Paket#TOS_.28Type_of_Service.29 TOS] Feld:&lt;br /&gt;
&lt;br /&gt;
  ip rule add from all tos 04 table 18&lt;br /&gt;
&lt;br /&gt;
Zu deutsch würde diese Regel bedeuten:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket, egal welche QuellIP, beim TOS Feld den Wert 04 hat, dann siehe in Tabelle 18 nach.&lt;br /&gt;
&lt;br /&gt;
Das ist alles schon recht nett, richtig spannend wird es aber erst, wenn man das ganze mit iptables kombiniert. Dann entfalltet PBR erst seine ganze Herrlichkeit. Netfilter/iptables ist in der Lage ein Paket abhängig von bestimmten Werten (wie z.B. den Serivceport) zu markieren. Diese Markierung kann ip wiederum erkennen und als Kritierum verwenden. Ein kleines Realweltbeispiel:&lt;br /&gt;
&lt;br /&gt;
Angenommen man hat einen Server im Internet mit der IP Adresse a.b.c.d. Diese IP Adresse erreicht man über das Internet oder über eine spearate VPN Verbindung vom eigenen PBR-fähigen Router. Nun möchte man dass die Benutzer im eigenen Netzwerk Mails über die verschlüsselte VPN Verbindung senden. Normale https Verbindungen sollen aber nicht über die VPN Verbindung laufen, da eine zusätzliche Verschlüssung hier nur unnötigen Overhead darstellt. &lt;br /&gt;
&lt;br /&gt;
Der Router hat nun also zwei Routingtabellen (Nr. 2 und Nr. 3). Nr. 2 ist die Verbindung über das Internet. D.h. der Next Hop für das Ziel a.b.c.d ist 192.168.1.1 über das Netzwerkinterface ra0. Tabelle Nr. 3 stellt die Tabelle für die VPN Verbindung dar. In dieser Tabelle ist der Next Hop für Ziel a.b.c.d die IP 10.0.0.10 über das Interface tun0.&lt;br /&gt;
&lt;br /&gt;
Da ip rule add keine Möglichkeit bietet das TCP Destination Port Feld als Kriterium auszuwählen kann man keine direkte Regel erzeugen. Statt dessen muss man mit IPtables die Pakete markieren und anhand dieser Markierung filtern. Das geht nun so. Zuerst markieren wir das Paket:&lt;br /&gt;
&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 443 -j MARK --set-mark 2&lt;br /&gt;
  iptables -A PREROUTING -t mangle -p tcp -d a.b.c.d --dport 25  -j MARK --set-mark 3&lt;br /&gt;
&lt;br /&gt;
Zu gut Deutsch:&lt;br /&gt;
&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 443, dann gebe dem Paket die Markierung 2&lt;br /&gt;
   Füge zur PREROUTING-Kette folgendes hinzu: Wenn das Ziel a.b.c.d ist und der Zielport 25, dann gebe dem Paket die Markierung 3&lt;br /&gt;
  &lt;br /&gt;
Alle https Pakete tragen nun also die Markierung 2, alle SMTP Pakete die Markierung 3.&lt;br /&gt;
&lt;br /&gt;
Nun muss man noch die entsprechende Regeln setzen:&lt;br /&gt;
&lt;br /&gt;
  ip rule add fwmark 2 table 2&lt;br /&gt;
  ip rule add fwmark 3 table 3&lt;br /&gt;
&lt;br /&gt;
Somit werden Pakete mit gleichem Ziel, aber unterschiedlichen tcp Ports unterschiedlich geroutet. Das war es was wir erreichen wollten. Einige Hinweise noch zum Schluss. Man kann die Markierung nur dem &lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;br /&gt;
# [http://www.compendium.com.ar/policy-routing.txt Policy based routing MICRO-HOWTO]&lt;br /&gt;
# [http://www.linuxfaq.de/f/cache/1266.html#tth_sEc3 Wie man mit iptables Pakete markiert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16385</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16385"/>
		<updated>2007-05-20T15:54:32Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
Das Policy Based Routing erweitert diese Konzept nun folgendermaßen. Statt einer Routingtabelle gibt es gleich mehrere. root kann sogar eigene Tabellen anlegen. Jede Tabelle hat eigene Einträge wie bei sie auch die klassiche Routingtabelle hat. Der Router hat nun also mehrere Tabellen in denen er nachschauen kann was der Next Hop für ein bestimmtest Ziel hat. Soweit, sogut, jedoch muss der Router nun noch wissen in welcher der vielen neuen Tabellen er jetzt tatsächlich nachschauen muss.&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein Rule List (= Regel Liste) ins Spiel. Innerhalb dieser Liste steht in welcher Routingtabelle der Router nachschauen soll. Als Kriterium kommen bestimmte Eigenschaften des Datenpaketes in Frage, wie Quell-IP, Type of Service, Firewall Remark oder auch das Netzwerkinterface über welches das Paket reinkam.&lt;br /&gt;
&lt;br /&gt;
Auf gut Deutsch kann in der Liste also drin stehen:&lt;br /&gt;
&lt;br /&gt;
  Wenn ein Paket von 192.168.2.17 kommt, dann siehe in Routing Tabelle 5 nach.&lt;br /&gt;
&lt;br /&gt;
Natürlich steht das nicht wirklich so drin. Eine echte Rulelist sieht so aus:&lt;br /&gt;
&lt;br /&gt;
  0:      from all lookup local&lt;br /&gt;
  2000:   from all lookup 2&lt;br /&gt;
  3000:   from all lookup 3&lt;br /&gt;
  3500:   from all tos 04 lookup 32&lt;br /&gt;
  4000:   from 192.168.0.14 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.3 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.121 lookup 4&lt;br /&gt;
  4000:   from 192.168.0.30 lookup 4&lt;br /&gt;
  32000:  from all lookup 32&lt;br /&gt;
  32766:  from all lookup main&lt;br /&gt;
  32767:  from all lookup default&lt;br /&gt;
&lt;br /&gt;
Die Zahlen vor den Anweisungen stellen die Priorität dar. Das heißt das System geht die Liste in der Reihenfolge der Zahlen durch. Wenn das Kriterum, in diesem Fall die &amp;quot;from ...&amp;quot; Anweisungen auf das Paket passen wird die Regel ausgeführt. In diesem Fall die verschieden &amp;quot;lookup&amp;quot;s. Das bedeutet wenn eine Regel greift wird in der zugehörigen Routingtabelle nachgeschaut. Findet sich in der Routingtabelle ein Eintrag der auf das Paket zutriff, wird also das Ziel des Paketes in der Tabelle erwähnt, so ist die Abarbeitung abgeschlossen. Der Router hat sich also entschieden. Findet der Router in der Tabelle keinen Routingeintrag, so geht er zur nächsten Eintrag der _Regelliste_ über und prüft diese. Dieses passiert solange bis eine Route gefunden wurde, oder die Regelliste komplett durchlaufen ist.&lt;br /&gt;
&lt;br /&gt;
Übrigens die Zahlen hinter den Lookups sind natürlich die verschiedenen Routingtabellen. Diese &amp;quot;numersichen&amp;quot; Tabellen sind von root manuell angelegt worden. Die Routing Tabellen &amp;quot;local&amp;quot;, &amp;quot;main&amp;quot; und &amp;quot;default&amp;quot; sind standardmäßig enthalten. local enthält alle Regeln die sich aus der Konfiguration der Netzwerkkarten ergeben. Dementsprechend kann diese Routingtabelle (als einzige) nicht von root verändert werden. &amp;quot;main&amp;quot; enthält die Routingtabelle wie man sie vom normalen Destinationbased-Routing kennt. Man kann sich diese Tabelle mit dem Befehl &amp;quot;route&amp;quot; ansehen. &amp;quot;default&amp;quot; wird normalerweise als letzte  ausgeführt und dient dem Aufräumen. Alles was bisher zu keinem Ergebniss geführt hat sollte hier abgehandelt werden. Standardmäßig ist diese Tabelle allerdings leer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedienungsanleitung ip ===&lt;br /&gt;
=== Ein Beispiel ===&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16370</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=16370"/>
		<updated>2007-05-20T15:29:08Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Damit PBR unter Linux funktioniert, muss der Kernel dies unterstützen. Die Kernel der größeren Distributionen sind heute standardmäßig mit den notwendigen Optionen übersetzt worden, so dass man sich nicht selbst darum kümmern muss. Wer seinen Kernel selbst kompiliert sollte darauf achten, dass CONFIG_IP_ADVANCED_ROUTER und CONFIG_IP_MULTIPLE_TABLES auf &amp;quot;y&amp;quot; gesetzt sind.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren benötigt man das Programm &amp;quot;ip&amp;quot; welches sich, je nach Distribution, im Paket &amp;quot;iproute&amp;quot; bzw. &amp;quot;iproute2&amp;quot; befindet. Dieses Programm wird heute meist automatisch bei der Installation mitgeliefert, so dass man es in den seltensten Fällt nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== Prinzip (oder: Erklär mir wie es funktioniert, ohne mir die Sourcecodekommentare zu zeigen) ===&lt;br /&gt;
Wie muss man sich das Policy Based Routing technisch vorstellen? &lt;br /&gt;
&lt;br /&gt;
Vorweg eine kurze Anmerkung. Ich verwende nachfolgende sowohl Router als Firewall gleichwertig. Zwar kann eine Firewall mehr als ein Router, allerdings ist diese mehr für das Policy Based Routing vorerst nicht von Interesse.&lt;br /&gt;
&lt;br /&gt;
Das klassische Destination-Based Routing arbeitet folgendermaßen. Ein Datenpaket erreicht den Router/Firewall und durchläuft erstmal die PreRouting-Tabelle des Firewallsystems (vergleiche: http://de.wikipedia.org/wiki/Bild:Nfk-traversal.png). Unter Umständen kann das Paket hier verändert werden. Dies erläutere ich später noch genauer. Nach der PreRouting-Tabelle steht die Routing Entscheidung an. D.h. der Router muss nun entscheiden ob und wohin das Paket weitergeleitet werden muss. Diese Entscheidung traff der Router bisher anhand einer Tabelle, der sogenannten Routing Tabelle. In dieser Tabelle stand nur drin, was der Next Hop, also der nächste Weiterleitungspunkt für ein Paket mit einem bestimmten Ziel ist. Anbei ein klassische Routingtabelle:&lt;br /&gt;
&lt;br /&gt;
  Ziel            Router          Genmask         Flags Metric Ref    Use Iface&lt;br /&gt;
  192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 ra0&lt;br /&gt;
  192.168.181.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1&lt;br /&gt;
  172.16.143.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8&lt;br /&gt;
  0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 ra0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bedienungsanleitung ip ===&lt;br /&gt;
=== Ein Beispiel ===&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;br /&gt;
# [http://gentoo-wiki.com/TIP_Dual-Homed_Gentoo_Server Gentoo Seite welchen den Kernelsupport erläutert]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15588</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15588"/>
		<updated>2007-05-15T10:41:32Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Quellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;br /&gt;
# [http://linux-net.osdl.org/index.php/Iproute2 Homepage von iproute2]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15587</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15587"/>
		<updated>2007-05-15T10:32:09Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15586</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15586"/>
		<updated>2007-05-15T10:31:55Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Was ist Policy Based Routing? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Based Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15585</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15585"/>
		<updated>2007-05-15T10:29:47Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Nachteile von PBR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
=== Nachteile von PBR ===&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15584</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15584"/>
		<updated>2007-05-15T10:29:21Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; &lt;br /&gt;
[http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
== Nachteile von PBR ==&lt;br /&gt;
Die Nachteile von PBR liegen vor allem im höhren Administrationsaufwand. Das Regelwerk für die Router muss erstellt und gepflegt werden. Dynamische Routing wird schwieriger einzubinden und auch die Fehlersuche im Netzwerk wird komplizierter, da man nicht einfach ein Traceroute absetzen kann um zu sehen welche Route die Daten nehmen würden (dies kann sich von der Route des Traceroutes nämlich unterscheiden).&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15583</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15583"/>
		<updated>2007-05-15T10:25:25Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Sie auch Quelle [2].&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; [http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15582</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15582"/>
		<updated>2007-05-15T10:24:56Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
==== Ereichen des gleichen Ziels über zwei Verbindungen ====&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
==== QoS ====&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
==== Sonstiges ====&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; [http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR. &lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15581</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15581"/>
		<updated>2007-05-15T10:23:23Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
In letzter Zeit kam leider auch das Thema &amp;quot;[http://de.wikipedia.org/wiki/Netzneutralit%C3%A4t Netzneutralität]&amp;quot; [http://www.heise.de/newsticker/meldung/69346 in den Medien] auf. Auch dies wäre ein Anwendungsfall für PBR. &lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15580</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15580"/>
		<updated>2007-05-15T10:20:49Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von [http://de.wikipedia.org/wiki/VoIP VoIP] (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15579</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15579"/>
		<updated>2007-05-15T10:20:18Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
Heute dürfte [http://de.wikipedia.org/wiki/QoS QoS] (Quality of Service) eine größere Rolle spielen. &lt;br /&gt;
&lt;br /&gt;
Angenommen ein Internetprovider hat zwei Kundengruppen: Privatkunden und Firmenkunden. Die Privatkunden zahlen nur einen geringen Preis für die Internetanbindung, wärend die Firmenkunden einen hohen Preis zahlen. Nun möchten die Firmenkunden natürlich auch einen höhere Verbindungsgeschwindigkeit garantiert bekommen als dies für die Privatkunden üblich ist. In einem solchen Umfeld könnte der der Internetprovider an Hand der Quelle eines Datenpaketes entscheiden ob dieses mit Vorgang behandelt wird oder nicht. &lt;br /&gt;
&lt;br /&gt;
Ein weiteres Szenario kennt man von VoIP (Voice over IP). Die Datenpakete eines Telefongespräches müssen zügig beim Empfänger ankommen, wenn man vermeiden will dass dieser ein Echo, oder einfach eine &amp;quot;schlechte Leitung&amp;quot; im Gespräch hört. Bandbreite steht leider nicht unbegrenzt zur Verfügung, so dass man entscheiden muss welches Datenpaket über eine bessere Leitung (weil schneller) übertragen wird und welche nicht. Auch hier kann PBR wieder helfen. Anhand des im Paket eingesetzten Protokolls kann ein Router der PBR-fähig ist entscheiden ob ein Datenpaket über ein gute Leitung geschickt werden muss, oder ob es eine weniger gute Leitung nehmen kann.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15578</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15578"/>
		<updated>2007-05-15T10:07:06Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
{{UnderConstruction}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15577</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15577"/>
		<updated>2007-05-15T10:05:15Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden. Das sonst übliche Routing auf Basis des Zieles konnte man hier nicht einsetzen, da das Ziel ja jedesmal identisch war.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15576</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15576"/>
		<updated>2007-05-15T10:03:13Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
In der Vergangenheit als das Internet noch überschaubar war, hatte man oftmals zwei Anbindungen an seine Kommunikationspartner. Eine über ein kommerzielles Netz, welche zuverlässig aber teuer war und eine Anbindung über das Internet, welche günstig aber unzuverlässig war.&lt;br /&gt;
&lt;br /&gt;
Je nachdem von wo nun Daten zum Partner geschickt wurden, wurde entweder die kommerzielle oder die öffentliche Anbindung genutzt. Man musste also an Hand der Quelle der Daten unterschieden welche Daten wie geroutet wurden.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15574</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15574"/>
		<updated>2007-05-15T09:43:42Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Quellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
# [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
# [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15573</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15573"/>
		<updated>2007-05-15T09:42:35Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [1].&lt;br /&gt;
&lt;br /&gt;
=== Vorteile von PBR (Oder: Wozu braucht man das überhaupt?) ===&lt;br /&gt;
&lt;br /&gt;
Für Weiteres siehe Quelle [2].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
[1] [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;br /&gt;
[2] [http://www.policyrouting.org/PolicyRoutingBook/ONLINE/TOC.html Policy Based Routing with Linux - Online Edition]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15572</id>
		<title>Policy Based Routing</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Policy_Based_Routing&amp;diff=15572"/>
		<updated>2007-05-15T09:37:51Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel will die Grundlagen von Policy Based Routing sowie die zugehörigen Konfigurationsmöglichkeiten unter Linux erklären. Der Artikel setzt voraus, dass der Leser grundlegendes Verständnis im Thema Routing unter Linux hat. route, nestat, Routing Table, NAT, Masquerading und ähnliches sollten als keine Fremdwörter für den Leser sein.&lt;br /&gt;
&lt;br /&gt;
== Was ist Policy Based Routing? ==&lt;br /&gt;
Unter dem Begriff &amp;quot;Policy Bassed Routing&amp;quot; versteht man die Möglichkeit Routing Entscheidungen an Hand eines vordefinierten Regelwerkes&lt;br /&gt;
zu treffen. Dies unterscheided sich stark von den bisher eingesetzten Routingmöglichkeiten bei welchen ein Router nur an Hand des Zieles eines Datenpaketes entscheided an welchen Next Hop das Paket weitergereicht wird. &lt;br /&gt;
&lt;br /&gt;
Mit PBR ist es nun möglich das ein Router auch die Quelle eines Paketes, die Größe des Paketes, bestimmte Flags, das Protokoll und noch vieles mehr berücksichtig und dann entscheided was der Next Hop für das Paket sein soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von PBR unter Linux ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
[1] [http://en.wikipedia.org/wiki/Policy_based_routing Englischer Wikipedia Eintrag zum Thema Policy Based Routing]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15438</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15438"/>
		<updated>2007-05-14T15:23:52Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Grundsätze zur Gestaltung des Regelwerkes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB, eben alles was als Broadcast geschickt wird und was das eigene Netzwerksegement nicht verlassen soll.''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15437</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15437"/>
		<updated>2007-05-14T15:22:40Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Die Firewall als Allheilmittel? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben wodurch wiederum Verbindungen zugelassen werden oder die Firewall u.U. komplett umgangen werden. Auch das muss man berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15436</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15436"/>
		<updated>2007-05-14T15:20:30Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Die Firewall als Allheilmittel? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffnet man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben welche Sicherheitslücken aufmacht.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15435</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15435"/>
		<updated>2007-05-14T15:19:57Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* SuSE-Firewall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall nur das was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffent man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben welche Sicherheitslücken aufmacht.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15434</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15434"/>
		<updated>2007-05-14T15:18:50Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Proxy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall alles was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffent man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben welche Sicherheitslücken aufmacht.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15433</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15433"/>
		<updated>2007-05-14T15:18:16Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Applicationlayerfirewalls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
Oftmals werden Applicationslayerfirewalls durch eine Kombination von Proxies und &amp;quot;normalen&amp;quot; Netzwerkfirewalls realisiert.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig. Applicationlayer Firewalls werden meist über Proxies realisiert.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall alles was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffent man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben welche Sicherheitslücken aufmacht.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15432</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15432"/>
		<updated>2007-05-14T15:17:35Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Proxy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig. Applicationlayer Firewalls werden meist über Proxies realisiert.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall alles was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffent man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben welche Sicherheitslücken aufmacht.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15431</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Firewall&amp;diff=15431"/>
		<updated>2007-05-14T15:12:29Z</updated>

		<summary type="html">&lt;p&gt;Nbkr: /* Applicationlayerfirewalls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wettbewerb}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschäftigt sich mit Firewalls allgemein. Es geht nicht um die Konfiguration einer spezielle Firewall. Anleitungen und Artikel darüber finden sich am Ende der Seite in den Quellen.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall (auch ''der Firewall'') ist eine Netzwerkkomponente, die der Netzwerksicherheit dient. Sie soll zwei oder mehr [http://de.wikipedia.org/wiki/Netzwerksegment Netzwerksegmente] kontrollierbar miteinander verbinden. Das bedeutet die einzelnen Rechner in den verschiedenen Netzwerksegmenten sollen bestimmte Verbindungen untereinander aufbauen können, jedoch nicht jede beliebige Kommunikation durchführen können.&lt;br /&gt;
&lt;br /&gt;
= Firewalltypen =&lt;br /&gt;
&lt;br /&gt;
== Netzwerkfirewall ==&lt;br /&gt;
&lt;br /&gt;
Eine Netzwerkfirewall läuft auf einem Rechner mit mindestens zwei Netzwerkkarten. Diese Netzwerkkarten sind an die Netzwerksegmente angeschlossen deren Verbindungen kontrolliert werden soll. Die Firewall ist somit Teil beider Netzwerke und hat somit auch zwei IP Adressen; jeweils eine aus dem entsprechenden Netz. Damit Daten von einem Netzwerk in das andere Netzwerk gesendet werden können muss die Firewall auch als [http://de.wikipedia.org/wiki/Router Router] dienen und das Routing innerhalb der Netzwerke richtig gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Tatsächlich kann man eine Netzwerkfirewall auch als Layer-4 Firewall bezeichnen, denn sie arbeitet ([http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke meistens]) im Layer 4 des [http://de.wikipedia.org/wiki/ISO/OSI#Schicht_4_.E2.80.93_Transportschicht ISO OSI Modells]. Eine Firewall die keinerlei Verbindungen blockiert verhält somit für alle anderen Netzwerkkomponenenten wie ein normaler Router.&lt;br /&gt;
&lt;br /&gt;
== Desktop- oder Hostfirewall ==&lt;br /&gt;
&lt;br /&gt;
Neben der Firewall als Netzwerkkomponente gibt es auch noch Firewalls die auf einem Rechner mit nur einer Netzwerkkarte laufen, also keine verschiedenen Netzwerksegemente miteinander verbinden können. Solche Firewalls werden als Host- oder auch Desktopfirewall bezeichnet. Ihre Aufgaben bestehen darin &lt;br /&gt;
&lt;br /&gt;
# den Rechner vor Angriffen von außen zu schützen, sowie &lt;br /&gt;
# zu verhindern das vom eigenen Rechner aus Verbindungen ins Netzwerk aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
Der Sinn einer Desktopfirewall ist umstritten, da man auch ohne Firewall den Rechner vor Zugriffen von außen schützen kann, in dem einfach keine Dienste wie SSH oder VNC an der physikalischen Netzwerkkarte lauschen lässt. Dadurch reagiert der eigene Rechner überhaupt nicht auf Anfragen und diese müssen somit nicht von einer Firewall geschützt werden. Auch das zweite Argument hält einer sachlichen Prüfung nicht stand: Wen man nicht möchte das bestimmte Daten ins Netzwerk gesendet werden, warum deinstalliert dann nicht einfach das Programm welches diese Daten sendet?&lt;br /&gt;
&lt;br /&gt;
== Applicationlayerfirewalls ==&lt;br /&gt;
&lt;br /&gt;
Unter dem Begriff Applicationlayerfirewall versteht man Firewalls welche den Datenverkehr nicht nur auf Basis von Quelladdresse, Zieladresse und Service, sondern auch anhand des tatsächlichen Inhalts eines Datenpaketes. Eine Applicationlayerfirewall kann also erkennen ob das was ein Rechner sendet wirklich eine Webanfrage ist, oder ob der Anfragende Rechner versucht unerlaubt Daten durch die Firewall zu schicken in dem er so tut als wäre es eine Webanfrage. So kann eine Applicationlayerfirewall z.B. Webseiten ausfiltern welche versuchen eine bekannte Browserlücke auszunutzen, oder verhindern das ein Benutzer einen Virus herunterlädt.&lt;br /&gt;
&lt;br /&gt;
= Firewalltechnologien =&lt;br /&gt;
&lt;br /&gt;
== Paketfilter ==&lt;br /&gt;
Praktisch alle gängigen Firewalls sind Paketfilterfirewalls. D.h. sie anaylsieren einzelne Datenpakete und entscheiden anhand bestimmter Kriterien ob diese Paket weitergeleitet oder vernichtet wird. &lt;br /&gt;
&lt;br /&gt;
Wenn z.B. ein Webbrowser Daten von einem Webserver abruft, so packt der Webserver die Daten in Pakete zusammen und schickt diese an den Browser. Bevor diese Pakete den Browser erreichen müssen sie durch die Firewall durch, da diese &amp;quot;im Weg&amp;quot; der Datenpakete liegt. Die Firewall nimmt das Datenpaket und extrahiert, von wo die Daten kommen (QuellIP), nach wo die Daten sollen (ZielIP), sowie welcher Port verwendet wurden (z.B. http oder ssh, also der Port und das Protokoll). Diese Daten vergleicht sie mit ihrem Regelwerk.&lt;br /&gt;
&lt;br /&gt;
Wenn es eine Regel gibt welche diese Verbindung explitziert erlaubt wird das Datenpaket weitergeleitet. Gibt es eine Regel welche diese Verbindung verbietet wird das Paket verworfen. Gibt es keine Regel handelt die Firewall nach ihrer Defaultpolicy. Dies ist im Prinzip eine Regel die angewendet wird wenn keine andere Regel zu finden ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Statefullinspection ==&lt;br /&gt;
Eine Firewall die Statefullinspection beherrscht handelt erstmal wie ein reiner Paketfilter, kann jedoch zusätzlich den Status einer Verbindung berücksichtigen. D.h. wenn Rechner A eine Verbindung zu Rechner B aufbaut, in dem er ein Datenpaket schickt, lässt die Firewall automatisch die Antwort von Rechner B zu, sofern dies vom Administrator entsprechend eingestellt wurde. &lt;br /&gt;
&lt;br /&gt;
Versucht der Rechner B allerdings Daten an Rechner A zu schicken, ohne das vorher Rechner A ein Paket geschickt hat würde die Firewall die Verbindung blockieren.&lt;br /&gt;
&lt;br /&gt;
Man kann sich das wie bei einer Schulklasse vorstellen, bei der zwischen Schülern und Lehreren noch ein Aufpasser sitzt. Dieser Aufpasser ist die Firewall. Der Aufpasser hat vom Administrator die Regel bekommen, dass Daten vom Lehrer zu den Schülern immer durchgelassen werden dürfen. Der Lehrer kann somit zu den Schülern sprechen.&lt;br /&gt;
&lt;br /&gt;
Wenn die Schüler auch Daten an den Lehrer schicken können sollen braucht der Aufpasser auch eine entsprechende Regel. Wenn der Aufpasser nun kein Statefullinspection kann, so muss der Administrator eine Regel einbauen welche den Schülern immer erlaubt Daten an den Lehrer zu schicken. Das würde bedeutet die Schüler könnten dem Lehrer ständig ins Wort fallen.&lt;br /&gt;
&lt;br /&gt;
Kann der Aufpasser aber Statefullinspection, so kann der Administrator dem Aufpasser sagen, dass dieser nur Daten von den Schülern zum Lehrer durchlassen soll, wenn der Lehrer vorher eine entsprechende Verbindung aufgebaut hat. Die Schüler könnten also nur Daten schicken wenn der Lehrer vorher eine Frage gestellt hat und auf eine Antwort warten. Wenn der Lehrer nur am erklären ist und keine Antwort möchte, würde der Aufpasser jeden Zwischenruf von den Schülern zum Lehrer verhindern.&lt;br /&gt;
&lt;br /&gt;
== Proxy ==&lt;br /&gt;
&lt;br /&gt;
Viele Firewalls haben inzwischen Proxies integriert, oder bieten zumindest Teilweise solche Fähigkeiten an. &lt;br /&gt;
&lt;br /&gt;
Proxies setzen dem Statefullinspection noch etwas oben drauf. Eine Statefullinspectionfirewall kann zwar erkennen ob ein eingehendes Datenpaket eine Antwort zu einem vorherigen Datenpaket war, jedoch nicht ob die Antwort auch Sinn macht.&lt;br /&gt;
&lt;br /&gt;
Eine Firewall mit Proxyfunktionalität kann genau das. D.h. eine ''Proxyfirewall'' &amp;quot;weiß&amp;quot; welche Antwort Sinn macht und lässt ein Datenpaket nur dann zu. Die Idee hinter einer solchen Firewall ist, zu verhindern das z.B. ein Browser eine Verbindung zu einem Webserver aufmacht und dieser im eine mit einem Trojaner gespickte Seite zurückliefert.&lt;br /&gt;
&lt;br /&gt;
Um im Beispiel des Aufpassers zu bleiben: Bisher konnte der Lehrer z.B. die Frage stellen: &amp;quot;Was ist die Hauptstadt von Deutschland&amp;quot; und ein Schüler konnte antworten &amp;quot;Der Lehrer ist doof&amp;quot; und den Lehrer somit trauig machen und ihn an seinen Fähigkeiten zweifeln lassen, so dass er irgendwann eine Neurose bekommt und krank wird. Ein Aufpasser mit Proxyfähigkeiten könnte dies verhindern und nur Antworten wie &amp;quot;Karlsruhe&amp;quot;, &amp;quot;Frankfurt&amp;quot;, oder eben auch &amp;quot;Berlin&amp;quot; durchlassen. Damit ist der Lehrer geschützt, allerdings leuchtet es ein, dass der Aufpasser hierfür Ahnung von Geograhpie haben muss.&lt;br /&gt;
&lt;br /&gt;
Entsprechendes gilt auch für echte Firewalls. Sie müssen &amp;quot;wissen&amp;quot; was eine gültige Antwort darstellt, was relativ aufwendig ist und dementsprechend nicht immer zuverlässig.&lt;br /&gt;
&lt;br /&gt;
== Antispoofing ==&lt;br /&gt;
Unter Antispoofing versteht man die Fähigkeit einer Firewall Pakete aufgrund ihrer physikalischen Herkunft zu kontrollieren. D.h. die Firewall würde eine Verbindung kontrollieren wenn sie nicht über die &amp;quot;richtige&amp;quot; Netzwerkkarte reinkommt. Die Idee dahinter ist zu verhindern das ein Angreifer seine QuellIP fälscht und somit Daten über die Firewall schicken zu können.&lt;br /&gt;
&lt;br /&gt;
Um wieder das Beispiel der Schulklasse zu nötigen: Stellen wir uns vor der Lehrer hat eine Frage gestellt auf die er eine Note vergeben will. Derjenige welcher die richtige Antwort gibt bekommt eine 1. Der Schüler Ben weiß die Antwort nicht. Die Schülerin Nicole mag den Schüler Ben aber sehr und möchte ihm deshalb eine gute Note verschaffen. Dafür verstellt sie ihre Stimme und gibt die richtige Antwort.&lt;br /&gt;
&lt;br /&gt;
Der Aufpasser beherrscht aber Antispoofing und weiß das der Schüler Ben vorne rechts in der Klasse sieht. Die Anwort kam aber von hinten links (da sitzt Nicole). Deshalb verwirft er die Antwort und die Note konnte nicht gefälscht werden. (Aber keine Sorge: Nicole und Bens Geschichte hatte ein glückliches Ende mit einer Hochzeit in Weiß und einem berauschenden Fest.)&lt;br /&gt;
&lt;br /&gt;
== Hochverfügbarkeit (Statefullfailover) ==&lt;br /&gt;
Unter Statefullfailover versteht man die Fähigkeit zwei Firewalls zu koppeln so dass keine Verbindung&lt;br /&gt;
unterbrochen wird, auch wenn eine der beiden Firewalls ausfällt. Die Firewall wird also hochverfügbar.&lt;br /&gt;
&lt;br /&gt;
Um wieder im Beispiel zu bleiben: Man stelle sich vor der Aufpasser in der Klasse hat einen drigenden Arztermin und muss weg (wer möchte kann sich auch vorstellen das der Aufpasser einen Herzinfarkt hat und tot umfällt, aber das war dem Autor ein wenig zu blutig, deshalb der Arzttermin). Da der Aufpasser nicht mehr da ist und alle Verbindung&lt;br /&gt;
von Lehrer zu Schüler über ihn laufen können Lehrer und Schüler nicht mehr miteinander sprechen.&lt;br /&gt;
&lt;br /&gt;
Deshalb hat der Administrator einen zweiten Aufpasser in die Klasse gesetzt. Sobald der erste ausfällt übernimmt der zweite und es kann weiter gehen. Somit hätte man ein Failover realisiert, allerdings noch kein Statefullfailover. Im Moment schreibt sich nämlich nur der aktive Aufpasser die Fragen des Lehrers auf. Somit kann nur er erkennen ob ein Datenpakt von einem Schüler eine Antwort darstellt. Fällt er aus weiß der zweite Aufpasser nicht welche Fragen schon gestellt wurden da er sich die Fragen nicht mitgeschrieben hat. Der Lehrer müsste also alle Fragen neu stellen damit die Antworten durch kommen.&lt;br /&gt;
&lt;br /&gt;
Ein Statefullfailover-Aufpasser (oder -Firewall) schreibt sich also die Fragen mit auch wenn er gerade nicht aktiv ist. Fällt der aktive Aufpasser/Firewall aus, braucht der Lehrer die Fragen nicht nochmal neu stellen. Die Verbindungen werden also nicht unterbrochen.&lt;br /&gt;
&lt;br /&gt;
= Open Source Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Echte Firewallsysteme ==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend einige Open Source Firewalls. Eine solche Liste kann natürlich nicht vollständig sein, deshalb wurden nur einige herausragende Vertreter aufgeführt.&lt;br /&gt;
&lt;br /&gt;
=== netfilter/iptables ===&lt;br /&gt;
&lt;br /&gt;
Aktuelle Linuxkernel haben eine Firewall mit eingebaut. Diese nennt sich &amp;quot;Netfilter&amp;quot; und kann über den Befehl &amp;quot;iptables&amp;quot; konfiguriert werden. Oftmals wird auch einfach von iptables gesprochen wenn man von Netfilter spricht.&lt;br /&gt;
Ein älteres Frontend für Netfilter war ipchains. Dieses sollte man heute allerdings nicht mehr einsetzen, da iptables ipchains vollkommen ersetzt.&lt;br /&gt;
&lt;br /&gt;
netfilter beherrscht das Statefullinspection, kann also Verbindung anhand ihrem Zustand zulassen oder verbieten. Darüber hinaus setzt man netfilter auch zur Manipulation von Datenpaketen wie z.B [http://de.wikipedia.org/wiki/Network_Address_Translation NAT] ein.&lt;br /&gt;
&lt;br /&gt;
Es wird auch schon an Hochverfügbarkeit, also an Statefullfailover-Funktionalität gearbeitet. Das entsprechende Modul,  welches hierfür benötigt wird nennt sich ct_sync (siehe Ende der Seite). Es ist allerdings noch nicht standardmäßig in den Linuxkernel integriert.&lt;br /&gt;
&lt;br /&gt;
=== TuxGuardian ===&lt;br /&gt;
&lt;br /&gt;
Für Linux gibt es auch eine Desktopfirewall namens [http://tuxguardian.sourceforge.net/ TuxGuardian]. TuxGuardian ermöglicht es für jedes Programm individuell zu bestimmen ob es ins Internet darf oder nicht. Hierfür öffnet sich ein kleines Fenster welches den Benutzer fragt ob er/sie den Zugriff zulassen möchte oder nicht. Alternativ kann man auch über eine Konfigurationsdatei bestimmen welches Programm Verbindungen öffnen darf und welches nicht.&lt;br /&gt;
&lt;br /&gt;
Tuxguardian ist bisher nicht Teil der gängigen Distributionen wie Ubuntu oder OpenSuse, wodurch man es manuell nachinstallieren muss.&lt;br /&gt;
&lt;br /&gt;
=== pf ===&lt;br /&gt;
&lt;br /&gt;
pf steht für Paket Filter und ist der Name der Firewallsoftware von OpenBSD. pf beherrscht Statefullinspection und kann mit Hilfe von pf_sync sogar Hochverfügbar gemacht werden (Ein Howto hierzu findet sich am Ende der Seite).&lt;br /&gt;
&lt;br /&gt;
=== wipfw ===&lt;br /&gt;
[http://wipfw.sourceforge.net/ wipfw] ist eine Portierung der FreeBSD Firewall ipfw auf Windows. Sie bietet zwar nicht alle Funktionen wie das Original ipfw, die wichtigsten Funktionen sind jedoch bereits integriert. Damit wäre es also theoretisch Möglich MS Windows als echte Netzwerkfirewall einzusetzen.&lt;br /&gt;
&lt;br /&gt;
== Administrationsoberflächen ==&lt;br /&gt;
&lt;br /&gt;
=== SuSE-Firewall ===&lt;br /&gt;
Die SuSE-Firewall ist keine neue Firewall, sondern einfach nur ein Oberfläche für iptables. Somit kann die SuSE Firewall alles was auch netfilter kann. Die Administration dieser &amp;quot;Firewall&amp;quot; lässt sich über YaST erledigen. Zur Fehlersuche kann man sich die Datei /etc/sysconfig/SuSEfirewall2 in einem Texteditor ansehen. Hierin speichert YaST die Firewalleinstellungen in Form eines Shellscriptes.&lt;br /&gt;
&lt;br /&gt;
=== Firewall Builder ===&lt;br /&gt;
&lt;br /&gt;
Neben Distributionsabhängigen Werkzeugen zur Firewallkonfiguration gibt es auch unabhängige Softeware zur Konfiguration von Netfilter wie z.B. [http://www.fwbuilder.org/ Firewall Builder]. Der Firewall Builder ist eine GUI in welcher man sich das Regelwerk für eine Firewall zusammenklicken kann. Man kann Regelwerke für iptables, ipfilter, OpenBSD pf und sogar (mit einem kostenpflichtigen Zusatzmodul) für Cisco PIX Firewalls erstellen.&lt;br /&gt;
&lt;br /&gt;
=== Easy Firewall Generator for IPTables ===&lt;br /&gt;
&lt;br /&gt;
Der [http://www.hideaway.net/iptables/ Easy Firewall Generator for IPTables] ist ein Webseite über die man sich ein Shellscript für iptables erstellen lassen kann. Man folgt einfach den Fragen auf der Seite und kopiert am Ende die Ausgabe in eine Datei. Diese lässt man über ein [[Runlevel_scripte_-_Scripts_selber_erstellen]] bei jedem Start ausführen.&lt;br /&gt;
&lt;br /&gt;
= Wichtige Sicherheitshinweise zu Firewalls =&lt;br /&gt;
&lt;br /&gt;
== Die Firewall als Allheilmittel? ==&lt;br /&gt;
&lt;br /&gt;
Eine Firewall alleine macht noch kein sichers Netzwerk. Gerade wenn man Verbindungen zulässt öffent man ja die Firewall und stetzt die dahinterliegenden Systeme potentiellen Angriffen aus. Man muss also noch zusätzliche Sicherheitsmaßen ergreifen um die Dienste welche die Firewall erlauben soll abzusichern.  Eine Firewall kann somit nur Teil eines Sicherheitskonzeptes sein, nicht jedoch das Konzept alleine.&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss man sicherstellen das die Firewall &amp;quot;im Weg&amp;quot; steht. D.h. es darf keine Verbindungsmöglichkeiten um die Firewall herum geben (Bypass). Das wäre wie wenn man eine Vordertür mit Sicherheitsschlössern, Fingerabdrucksensor und Stahlpanzerung hat, die Rückseite des Hauses aber ein Loch in der Mauer hat.&lt;br /&gt;
&lt;br /&gt;
Auch kann man eine Firewall relativ leicht durchtunneln wenn man ein System innen und außen unter Kontrolle hat. PC im eigenen Netzwerk mit einem Trojaner machen also selbst die beste Firewall u.U. löchrig.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann auch die Firewall selbst einen Bug haben welche Sicherheitslücken aufmacht.&lt;br /&gt;
&lt;br /&gt;
== Grundsätze zur Gestaltung des Regelwerkes ==&lt;br /&gt;
&lt;br /&gt;
Wie man eine Firewall und deren Regelwerk aufbaut hängt natürlich von den Anforderungen ab. Allerdings lassen sich einige ganz nützlich Grundregeln festhalten, welche nachfolgend aufgeführt werden. Die Regeln sind nicht für eine spezifische Firewallsoftware, sondern können im Prinzip für alle Firewalls gelten. &lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird davon ausgegangen das die Firewall die erste Regel benutzt die sie findet. Wird also ein Paket von einer Regel ganz vorne zugelassen und von einer Regel ganz hinten verworfen, so würde die hier verwendete Beispiel Firewall das Paket zulassen da die entsprechende Regel zuerst im Regelwerk gefunden wurde. Dies ist die normale Verhaltensweise von netfilter und der meisten anderen Firewalls (wenn auch nicht alle pf wendet z.B. die letzte gefunde Regel an).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Broadcast Regel'''&lt;br /&gt;
* Position im Regelwerk: Ganz vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Broadcast IP Adresse der Netzwerksegmente&lt;br /&gt;
* Service: ''unterschiedlich, meist MS RPC, RIP, SMB''&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Nein&lt;br /&gt;
&lt;br /&gt;
Die Broadcastregel filtert unnötiges Rauschen im Netzwerk. Viele Dienste wie SMB schicken regelmäßig Daten mit Statusinformationen an die Broadcastadresse des Netzwerkes. Diese Daten müssen sind in aller Regel nur für das jeweilige Netzwerksegment eines Rechners notwendig und müssen nicht in andere Netzwerke weitergeleitet werden.&lt;br /&gt;
&lt;br /&gt;
Da solche Pakete relativ häufig auftauchen steht die Regel ganz vorne im Regelwerk. Dadurch muss die Firewall nicht das ganze Regelwerk abarbeiten was die Last der Maschine verringert. Aus dem gleichen Grund wird ein Greifen dieser Regel auch nicht ins Log geschrieben. Es würde das Log nur unnötig vollschreiben und die Suche nach interessanten Daten erschweren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Administrations Regel'''&lt;br /&gt;
* Position im Regelwerk: Vor der Stealth Rule&lt;br /&gt;
* Quelle: IP Adresse des Administrator PCs&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: ssh (bzw. was zur Administration der Firewall benötigt wird)&lt;br /&gt;
* Aktion: Zulassen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die Administrationsregel erlaubt den Zugriff auf die Firewall durch den Administrator. Diese Regel muss schon beim ersten Aktivieren des Regelwerkes vorhanden sein. Sonst sägt man sich den eigenen Ast ab und kann nach Aktivierung der Firewall diese nicht mehr kontrollieren.&lt;br /&gt;
&lt;br /&gt;
'''Stealth Regel'''&lt;br /&gt;
* Position im Regelwerk: Vorne&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: IP Adresse der Firewall&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Die sogenannte Stealthregel sorgt dafür das die Firewall auf keinerlei Anfragen, welche direkt an sie gerichtet wurde, reagiert. Sie taucht also in traceroutes oder ähnlichem nicht mehr auf und ist dadurch quasi unsichtbar. Der Vorteil ist, dass ein Angreifer nicht mehr ohne weiteres erkennen kann welche Firewallsoftware eingesetzt wurde. Dadurch wird es schwieriger evtl. vorhandene Lücken und Bugs in der Firewallsoftware auszunutzen. Allerdings ist auch dies kein Allheilmittel. Dadurch das die Firewall nicht reagiert weiß der Angreifer schonmal das höchstwahrscheinlich eine Firewall eingesetzt wird. Keine Antwort ist somit auch eine Antwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' DROP Regel'''&lt;br /&gt;
* Position im Regelwerk: Letzte Regel&lt;br /&gt;
* Quelle: Alle&lt;br /&gt;
* Ziel: Alle&lt;br /&gt;
* Service: Alle&lt;br /&gt;
* Aktion: Paket verwerfen&lt;br /&gt;
* Ins Log schreiben? Ja&lt;br /&gt;
&lt;br /&gt;
Dies ist die letzte Regel im Regelwerk. Jedes Paket für das keine andere Regel gefunden wurde wird verworfen. Diese Regel realisiert dadurch eine &amp;quot;Deny All&amp;quot; Regelwerk. D.h. alles was nicht erlaubt ist, ist verboten. Ein solches vorgehen wird häufig für Firewalls eingesetzt welche eine Firmennetzwerk mit dem Internet verbinden.&lt;br /&gt;
&lt;br /&gt;
= Quellen &amp;amp; Weiterführendes =&lt;br /&gt;
&lt;br /&gt;
* [http://iptables-tutorial.frozentux.net/iptables-tutorial.html Sehr gute Einführung in iptables]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2004/12/zugbruecke Eine Firewall als Netzwerkbrücke]&lt;br /&gt;
* [http://www.benjaminfleckenstein.de/de/anleitungen/pfcluster/index.html Firewallcluster mit OpenBSD, pf und pf_sync]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Firewall Deutscher Wikipediaartikel zum Thema Firewall]&lt;br /&gt;
* [http://gnumonks.org/~laforge/weblog/linux/netfilter/ct_sync/index.html Statefull Failover für netfilter (ct_sync)]&lt;br /&gt;
* [http://tuxguardian.sourceforge.net/documentation.php Dokumentation von TuxGuadian]&lt;/div&gt;</summary>
		<author><name>Nbkr</name></author>
		
	</entry>
</feed>