next up previous contents
Nächste Seite: Exemplarischer Aufbau einer DMZ-Firewall Aufwärts: Crashkurs Firewallaufbau unter Linux Vorherige Seite: Gestaltung einer Firewall mit   Inhalt

Unterabschnitte

Die Firewall als Router ins Internet

Heute sind lokale Netze etwas selbstverständliches geworden, sowohl die Kosten für solche Netze haben sich dramatisch nach unten bewegt, als auch das Wissen, das nötig ist, um Computer zu vernetzen ist allgemein gestiegen.


Aus dieser Verbreitung von lokalen Netzen folgert sehr schnell der Wunsch, daß ein lokales Netz einen Anschluß ans Internet findet, ohne daß jeder Rechner über ein Modem oder eine ISDN-Verbindung verfügen muß. Es existieren einige Lösungsansätze für dieses Problem, die zunächst einmal kurz dargestellt werden sollen:

Router oder Proxy

Die Begriffe Router und Proxy werden gerne und oft falsch oder zumindestens unscharf benutzt. Dabei handelt es sich in beiden Fällen um technische Lösungen für das Problem der Anbindung eines lokalen Netzes an das Internet. Der Lösungsansatz findet jedoch an völlig verschiedenen Stellen statt.

Die Proxy-Technik

Proxies wurden schon relativ früh eingesetzt, als Betreiber von einzelnen Netzen oder Internet-Provider gemerkt hatten, daß manche Web-Seiten sehr häufig aufgerufen wurden. Das führte zu der Idee, daß eine lokale Zwischenspeicherung dieser häufig aufgerufenen Webseiten den Datenverkehr im Internet bzw. in der Anbindung zum Internet erheblich reduzieren könnte. Denn anstatt eine Seite pro Tag x mal über diese Internetanbindung zu transportieren, wurde sie nur noch einmal geholt, lokal zwischengespeichert und - falls jemand die Adresse dieser Seite aufrief - von diesem lokalen Zwischenspeicher heraus ausgeliefert.


Das heißt, ein Proxy-Server ist eine Art Webserver, der einen lokalen Zwischenspeicher für Webseiten bereithält und eingehende Anfragen an das Internet entgegennimmt. Sollte die gewünschte Seite schon lokal abgespeichert sein, so liefert er die gespeicherte Seite zurück, ist sie noch nicht gespeichert, so holt er sich die Seite aus dem Internet, speichert sie lokal zwischen und liefert sie dann erst an den entsprechenden Client aus.


\includegraphics{proxy.eps}


Bild 7..1: Die Proxy-Technik


Das hat nun den Nebeneffekt, daß ein Proxy, der eine Internetanbindung hat, den Rechnern im lokalen Netz auch einen Zugriff, zumindestens für WWW-Seiten erlauben kann, ohne daß die Rechner des lokalen Netzes selbst Zugang zum Internet haben. Sie erhalten alle Webseiten ja eben von diesem Proxy. Der Nachteil dieses Verfahrens liegt auf der Hand, ein Proxy arbeitet auf der Anwendungsschicht des TCP/IP Modells und bietet nur Funktionalität für ein (oder ein paar) Protokoll(e). Moderne Proxy-Systeme gibt es etwa für WWW und FTP. Direkter Internet-Zugang ist damit für die Rechner im Netz nicht möglich.


Was auf den ersten Blick wie ein Nachteil aussieht, kann aber auch genauso gewünscht sein. So ist es vorstellbar, daß ein Netzbetreiber eines lokalen Netzes gar nicht will, daß jeder Rechner im LAN bedingungslosen Zugriff ins Internet bekommt. Die notwendigen Dienste, wie Mail, WWW und FTP können über Proxies zur Verfügung gestellt werden, andere Dienste, wie etwa Netzspiele über das Internet sind so nicht möglich.

Die Router-Technik

Im Gegensatz zum Proxy arbeitet ein Router (oft auch Gateway genannt) auf der Verbindungsschicht des TCP/IP Modells. Das heißt, er gibt Pakete, die er erhält und die nicht für ihn bestimmt sind, von einem Netzwerk-Interface zu einem anderen weiter. Dabei existieren keine Einschränkungen hinsichtlich irgendwelcher Protokolle, denn Protokolle kennt der Router ja gar nicht, für ihn sind alle Pakete nur IP-Pakete, egal was sie weiter enthalten.


\includegraphics{router.eps}


Bild 7..2: Die Router-Technik


Die Arbeit eines Routers im lokalen Netz, der zwei Netze miteinander verbindet, ist einfach zu verstehen. Denn der Router kann ja klar sagen, welche IP-Adresse zu welchem Netz gehört und welches Netz an welcher Schnittstelle hängt. Was aus diesem Satz schon klar wird - und was ein großer Unterschied zum Proxy ist - ist die Tatsache, daß der Router tatsächlich IP-Pakete weiterleitet. Das ist in einem lokalen Netz weiter kein Problem, wir werden aber gleich sehen, daß es im Zusammenhang mit dem Internet sehr wohl zum Problem werden kann.


Im weiteren Verlauf interessiert uns natürlich die Router-Technik im Zusammenhang mit der Firewall. Dabei ist es uns natürlich unbenommen, auch Proxy-Server einzurichten, die Funktionalität der Firewall als Verbindung vom lokalen Netz ins Internet basiert aber auf der Weitergabe von IP-Paketen, also auf dem Routing.

Das Problem der reservierten Adressen

In der guten alten Zeit des Internets, als IP-Adressen noch nicht knapp waren und die Rechner, die ans Netz wollten das über eine Standleitung getan haben, war das Routing im Netz ein Kinderspiel. War doch damals die Situation die, daß jeder ans Internet angeschlossene Rechner eine feste, einmalige und von überall erreichbare IP-Adresse hatte. Ein Router hatte also nur noch die Aufgabe, ein Paket an die entsprechend richtige Schnittstelle auszuliefern und schon war alles erledigt.


Die Firewall eines Linux Rechners hat ja neben den beiden Regelketten input und output noch die chain forward. Diese Regelkette ist speziell für das Routing gedacht, das oft auch mit dem Begriff IP-forwarding bezeichet wird. Die Zusammenhänge der drei Ketten sind aus dem Bild auf Seite [*] zu entnehmen. Mit Hilfe dieser Regelkette ist es also auch noch möglich, zu entscheiden, welche Pakete geroutet werden sollen.


Heute jedoch haben wir eine Knappheit an IP-Adressen und die lokalen Netze laufen in der Regel mit den sogenannten reservierten Adressen. Diese reservierten Adressen sind im Internet nicht routbar. Das heißt, daß selbst wenn einer unserer Rechner ans Internet angeschlossen ist und dieser eine Rechner auch eine echte IP-Adresse7.1 hat, und noch dazu als Router konfiguriert ist, eine Verbindung ans Internet für die anderen Rechner nicht so ohne weiteres möglich wäre. Die Rechner im lokalen Netz haben ja IP-Adressen, die im Internet nicht gültig sind. Selbst wenn ein IP-Paket mit einer solchen ungültigen Adresse jemals einen Internet-Server erreichen würde, so wäre dieser Rechner nicht in der Lage eine Antwort zurückzuschicken, denn es existieren keine Routen zu reservierten Adressen - wohin sollten die auch zeigen? Es gibt wahrscheinlich hunderte von lokalen Netzen auf der Welt, die diese Adressen benutzen.


\includegraphics{adr1.eps}


Bild 7..3: Reservierte Adressen im Internet


Masquerading als Problemlösung

Der Linux-Kernel bietet eine Lösungsmöglichkeit für die Verwendung reservierter Adressen im Internet an, das sogenannte Masquerading. Dabei arbeitet der Router, also der Rechner, der sowohl am lokalen Netz, als auch am Internet hängt, als Masquerading Server. Dieser Rechner hat ja eine echte, im Internet routfähige Adresse. Er nimmt jetzt aus dem lokalen Netz Pakete entgegen und verändert sie dergestalt, daß im Feld der Sender IP-Adresse jetzt nicht mehr die reservierte Adresse des wahren Absenders steht, sondern die echte Adresse des Masquerading-Servers. Gleichzeitig merkt sich der Masquerading Server die Original-Adresse in einer Kernel-Tabelle. Bekommt jetzt der Masquerading Server die Antwort aus dem Internet, so überprüft er anhand dieser Tabellen, für wen diese Antwort war, tauscht die entsprechenden Adresen der Pakete wieder um und gibt das so veränderte Antwortpaket wieder an den Rechner im lokalen Netz, der die Anfrage losgeschickt hatte.


Aus der Sicht des Internet-Servers existiert also gar kein lokales Netz, er kommuniziert ausschließlich mit dem Masquerading Server. Die Adressen des lokalen Netzes sind maskiert. Das hat natürlich den schon erwähnten Vorteil, daß Angriffe aus dem Internet sowieso nur auf den Router stattfinden können, niemals direkt gegen einen Rechner im lokalen Netz. Denn dieses Netz ist nicht adressierbar!


Auf der Ebene von ipchains wird das Masquerading genauso behandelt, als wäre es eine Policy. Diese Policy ist aber logischerweise nur für die forward-chain gültig. Das angegebene Netzwerkinterface (-i bezieht sich immer auf das externe Interface, auf dem die realen Adressen maskiert sein sollen. So wird etwa durch den Befehl

  ipchains -A forward -i $EXTERNAL_INTERFACE -s 192.168.100.0/24 -j MASQ
das Masquerading für das Netz 192.168.100.0 aktiviert. Das obige Beispiel erlaubt grundsätzlich alle Arten von Datenverkehr, natürlich könnten wir auch alle Regeltechniken, wie etwa Ports oder Protokolle hier benutzen, es handelt sich ja tatsächlich um eine Policy...


Die drei Regelketten input, forward und output werden in dieser Reihenfolge nacheinander abgearbeitet. Das bedeutet, daß nur diejenigen Pakete, die durch die input-chain durchkamen, and die forward-chain weitergegeben werden. Und nur diejenigen Pakete, die durch diese Kette kommen werden an die output-chain weitergereicht. Erst, wenn das Paket auch durch diese Kette durch ist, ohne ausgesondert worden zu sein, gelangt es tatsächlich ins Internet. Für aus dem Internet ankommende Pakete gilt dann wieder das entsprechende.

Verschiedene Modelle von routenden Firewalls

Eine Firewall, die nicht nur sich selbst schützt, wie die aus dem letzten Kapitel, sondern auch gleichzeitig als Router fungiert, wird als dual homed host bezeichnet, also ein Host, der in zwei Netzen zuhause ist. Mit dieser Technik ist es möglich, verschiedene Sicherheitsstufen zu realisieren, je nach Anforderung des zu schützenden Netzes. Im Folgenden werden die beiden wichtigsten Modelle dargestellt, die Bastion-Host-Firewall und die Demilitarisierte Zone (DMZ).

Die Bastion-Host-Firewall

Die einfachste - aber auch unsicherste - Form einer routenden Firewall ist die Bastion-Host-Firewall. Sie besteht grundsätzlich aus einem Rechner, der als dual homed host zwischen dem zu schützenden Netz auf der einen Seite und dem unsicheren Netz (Internet) auf der anderen Seite plaziert ist. Dieser Rechner routet Pakete von einem Netz ins andere - ob mit Masquerading oder ohne7.2. Jedes Paket, das durch diesen Rechner geroutet werden soll, muß die drei Regelketten der Firewall durchlaufen.


Der Begriff Bastion stammt aus dem Militärischen, er kann aber auch wirklich so verstanden werden. Eine Bastion ist eine Verteidigungseinrichtung, wenn sie fällt, dann gibt es keinen Schutz mehr. Diese Analogie kann ungebremst ins Computernet übernommen werden. Wenn die Bastion-Host-Firewall geknackt werden würde, dann läge das gesamte Netz schutzlos da, der Angreifer, der die Firewall überwunden hätte, kan im LAN tun und lassen, was er will.


Trotzdem ist dieses Modell für die meisten kleinen Netze völlig ausreichend, wenn das zu schützende Netz nicht in großem Maß selbst Dienste im Internet anbieten soll. In der Regel ist das aber ja auch gar nicht möglich, denn normalerweise würden wir in diesem Modell sowieso mit reservierten Adressen im lokalen Netz arbeiten - damit haben wir uns der Möglichkeit beraubt, selbst Dienste anzubieten.


\includegraphics{bastion.eps}


Bild 7..4: Bastion Host Firewall


Die Demilitarisierte Zone (DMZ)

Erheblich sicherer für große Netze ist das Modell der demilitarisierten Zone, manchmal auch Perimeter Netzwerk genannt. Dieses Modell trennt das zu schützende Netz und das öffentlich zugängige Netz nochmal auf und arbeitet folgerichtig mit zwei Firewall-Rechnern.


Das lokale Netz, das die eigentlichen Arbeitsplätze verbindet, ist weiterhin das zu schützende Netz. Zwischen diesem lokalen Netz und der bösen großen weiten Welt des Internet liegt jetzt aber noch ein Netz, die demilitarisierte Zone. Wir haben zwei Firewall-Rechner, einmal der Bastion-Host, der das Internet mit der DMZ verbindet, und zum zweiten die sogenannte Choke-Firewall. Sie verbindet das zu schützende Netz mit der DMZ. Innerhalb der DMZ stehen jetzt die Rechner, die von außerhalb zugänglich sein sollen. Also etwa der Webserver des Unternehmens, der FTP-Server oder ähnliches. Die Rechner der DMZ müssen dabei aber tatsächlich echte, routfähige IP-Adressen besitzen, damit dieses Modell funktioniert.


\includegraphics{dmz.eps}


Bild 7..5: DMZ Firewall


Diese Form der Firewall ist natürlich deutlich schwieriger zu verwirklichen, dafür aber auch wesentlich sicherer. Es existiert kein einziger Knackpunkt mehr, an dem alleine alle Sicherheit hängt. Der Ausfall bzw. die Eroberung eines Elements alleine führt noch nicht zur Unsicherheit des zu schützenden Netzes. Im nächsten Kapitel werden wir detailiert eine solche Firewall7.3aufbauen.


next up previous contents
Nächste Seite: Exemplarischer Aufbau einer DMZ-Firewall Aufwärts: Crashkurs Firewallaufbau unter Linux Vorherige Seite: Gestaltung einer Firewall mit   Inhalt
root 2001-08-07