Nächste Seite: Exemplarischer Aufbau einer DMZ-Firewall
Aufwärts: Crashkurs Firewallaufbau unter Linux
Vorherige Seite: Gestaltung einer Firewall mit
  Inhalt
Unterabschnitte
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:
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.
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.
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.
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.
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.
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.
Bild 7..3: Reservierte Adressen im Internet
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.
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 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.
Bild 7..4: Bastion Host Firewall
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.
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.
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