Schichtenmodell

 

Die Firewall-Anwendung ist mehrschichtig realisiert. Für Erweiterungen und Änderungen wurde darauf geachtet, daß die Schichten unabhängig voneinander sind. Je nach Sicherheitsanforderungen der einzelnen Netzwerksegmente gegeneinander können diese nur mit Paketfilterregeln gekoppelt werden oder auch mit (transparenten) Proxies voreinander abgegrenzt werden. Immer ist die Paketfilterschicht vorhanden, die weiteren Schichten können je nach Sicherheitsanforderungen teilweise oder ganz fehlen. Alle Schichten werden beispielsweise beim Web-Zugriff auf das Internet benutzt: der transparente Proxy leitet die Anfrage auf den Firewall um, der innere Proxy (der cachende Apache-Web-Server) führt den Zugriff (Internet oder cache) aus, der transparente Proxy unterwirft das ankommende Dokument einem Virenscan und leitet das Dokument an den eigentlichen Klienten weiter. Mehrere gleichberechtigte Segmente (siehe Beispiel 1) werden ausschließlich mit der Paketfilterschicht gekoppelt.

 

Beispiel 1 :

Der Firewall hat drei Netzwerksegmente. Segment A ist ein LAN-Ethernet-Segment, Segment B ist ein LAN-Token-Ring-Segment, Segment C ist die ISDN-Wählverbindung ins Internet. Man wird die Segmente so verbinden, daß Segment A und B durch einfache Paketfilterregeln mit allen Rechten verbunden sind, während Segment C sowohl von Segment A als auch B nur mit genau definierten Zugriffsrechten erreichbar ist.

Es soll nun eine gemeinsame Sicherheitspolicy für die Segmente A und B gegenüber Segment C festgelegt werden, denn genaugenommen sind die Segmente A und B nur wegen des unterschiedlichen Mediums voneinander getrennt. Der Firewall soll also zwischen A und B wie ein Router funktionieren, hingegen zu C die volle Firewallfunktionalität haben. Einfache Paketfilterregeln (die man in iptables.pre unterbringt) regeln die Zugriffe zwischen A und B ("Erlaube alle Pakete, die von A nach B und umgekehrt sollen"). Zwischen A|B und C wird der Datenverkehr mit "transparenten Proxies" geregelt. Dadurch ist es nicht mehr nötig, in den Browsern einen Proxy einzustellen, sondern dies geschieht automatisch im Firewall. Alle Pakete, die ins Internet gerichtet sind, werden am Firewall abgefangen und auf lokale Firewall-Prozesse ("Proxies") geleitet, die die eigentliche Verbindung herstellen. Gegenüber dem Browser verhält sich der Firewall transparent, d.h., der Browser ist sich über den Firewall als "man-in-the-middle" nicht im Klaren. Gegenüber dem Zielrechner verhält sich der Firewall, genauer der Proxy-Prozess, wie der eigentliche Klient. Alle Verbindungen ins Internet scheinen somit von einem einzigen Rechner, nämlich dem Firewall, herzurühren.

Beispiel 2:

Erneut hat der Firewall drei Netzwerksegmente. Die Situation ist gegenüber dem ersten Beispiel nur leicht verändert. Wir haben kein gleichberechtigtes Segment B, sondern dies ist nun eine Kundenzone. Hier sind z.B. Spezialrechner untergebracht, die autonome Verbindungen zu Kunden oder Lieferanten (Modem, ISDN-Karte, usf.) herstellen können und von diesen direkt benutzt oder gewartet werden. Wären diese Rechner im Segment A untergebracht, hätte jeder Kunde/Lieferant mit einem derartigen Rechner Zugang zum gesamten LAN. Siedelt man diese Rechner jedoch in einem separaten Segment an, können die Netzwerkdienste (z.B. Datenbankzugriffe über normierte Schnittstellen), die im Segment A von Rechner aus dem Segment B benötigt werden, zwischen den Segmenten freigeschaltet werden. Einer gegenseitigen Störung von Rechnern im Segment B kann man durch Aufteilung auf mehrere Segmente begegnen. Eine Verbindung zum Internet (C) hat dann i.d.R. nur das Segment A.

Wie man bereits an diesen beiden Beispielen leicht sieht, ist eine klare Segmentierung des Netzwerks die Grundvoraussetzung für eine sichere Netzwerkumgebung. Ein Firewall mit vielen Netzwerkschnittstellen kann diese Segmentierung viel besser untertützen als ein Firewall mit einer festgelegten, kleinen Anzahl von Schnittstellen.