Firewall Grundlagen


Wir wollen diese Fragen versuchen zu beantworten um eine Grundlage für die späteren Ausführungen zu schaffen :

  1. Was ist eine Firewall ?
  2. Was sind Pakete ?
  3. Was sind Router ?
  4. Was ist der generic direkt service ?
  5. Was ist ein Bastionhost ?
  6. Was ist der generic proxy service ?
  7. Was kostet eine Firewall ?

1. Was ist eine Firewall ?

Wenn ein lokales Netz ( LAN ) an das Internet angeschlossen wird, setzt man es der Gefahr aus, das Zweite von außen auf das LAN Zugriff erhalten, der nicht erwünscht ist. Um diesen möglichen Zugriff abzuwehren, installiert man eine Firewall. Dies ist eine Architektur aus Hardware- und Software-Komponenten, die zwischen das Internet und das Intranet gelagert wird. Die Firewall sichert das LAN indem es den Zugang kontrolliert. Auf diese Weise können Angriffe, also unerlaubte Zugriffe, abgewehrt werden. Wie diese Angriffe aussehen, wird später noch näher spezifiziert. Abhängig von der gewählten Architektur besteht eine Firewall aus mehreren Komponenten. In diesem Tutorial beschränken wir uns auf zwei relativ einfache Konfigurationen: die Screening Router Architektur und die Screened Subnet Architektur. Während bei der Screening Router Architektur das LAN durch Vermittlungsrechner (Screening Router oder kürzer Router) gesichert wird, kombiniert die Screened Subnet Architektur vor- und nachgeschaltete Router mit der Screened Host Architektur, bei der ein Rechner mit spezieller Sicherungssoftware installiert wird. Durch das Hintereinanderschalten von unabhängigen Komponenten, die unterschiedliche Filterstrategien realisieren, wird ein erheblich höheres Sicherheitsniveau geschaffen. Ein Nachteil bei dieser Architektur besteht in den fehlenden Protokollierungsmöglichkeiten der Router. Dadurch fehlen wichtige Protokollinformationen, die beim Erkennen und Zurückverfolgen von Angriffen helfen würden. Außerdem spielt beim Aufbau einer Firewall immer auch der Kostenfaktor eine gewisse Rolle. Man muß hierbei den Sicherheitszuwachs und die steigenden Kosten gegeneinander abwägen. Wenn die Aufgabe darin besteht ein kleines Netz mit relativ unwichtigen Daten zu sichern, so wird man bemüht sein eine Firewall zu installieren, die bei geringen Kosten eine Mindestsicherheit bietet. Der Sicherheitsaspekt steht nicht so sehr im Vordergrund wie bei einem internen Netz auf dem z.B. Firmengeheimnisse gespeichert sind. Welche Komponenten sich in welcher Form auf den Kostenfaktor auswirken, wird im Abschnitt über den Bastionhost näher erläutert.

Firewalls stellen sicherlich ein gutes und wirksames Mittel zum Schutz des eigenen Netzes vor Eindringlingen dar. Es soll hier aber nicht der Eindruck erweckt werden, daß Firewalls eine Komplettlösung für den gesamten Bereich der Sicherheitsprobleme im Internet bieten. Jeder Schutzmechanismus, selbst

die scheinbar undurchdringlichste Firewall, kann mit ausreichend Risikobereitschaft und Einsatz durchbrochen werden. Die Kunst besteht darin, das Risiko und die Kosten für den potentiellen Angreifer derart zu erhöhen, daß ein Versuch nicht mehr attraktiv erscheint. Die Firewall darf nur Teil des Plans sein. Es ist ebenso wichtig, eine klar definierte Sicherheitspolitik zu verfolgen. So ist es von entscheidender Bedeutung immer mit der aktuellsten Software zu arbeiten. Auf diese Weise wird möglichen Angreifern, die sich ansonsten länger mit einer speziellen Software beschäftigen können, um mehr Sicherheitslücken aufzudecken, die Angriffsgrundlage entzogen. Außerdem gehört zu einer konkreten Sicherheitspolitik auch eine entsprechende Schulung der Benutzer. Sie müssen z.B. darauf hingewiesen werden, daß es möglich ist, daß wenn sie aufgefordert werden, irgendeine äußere Datei aufzurufen, sie gleichzeitig ein Programm starten, daß einem Angreifer eine Hintertür zum Netz öffnet. Zudem sollten sie darauf aufmerksam gemacht werden keine Konfigurationsänderungen vorzunehmen oder in harmlosen Gesprächen, auch wenn es im privaten Rahmen ist, keine Internas zu verraten.

Doch auch die beste Schulung wird den Menschen nicht vor Fehlern bewahren und deswegen gilt der Benutzer als die Gefahrenquelle Nummer 1 für ein lokales Netz.

zurück

2. Was sind Pakete ?

Die Daten werden in einzelne Pakete gesplittet, die u.a. die Empfängeradresse, die sogenannte IP-Zieladresse, im Datagramm mitführen. Die IP-Adresse setzt sich aus der Netzwerknummer des angeschlossenen Netzwerkes und der Hostnummer für den entsprechenden Rechner innerhalb des Netzes zusammen. Dann werden die Datenpäckchen im Internet von Rechner zu Rechner weiter vermittelt und beim Empfänger wieder zusammengesetzt. Dieses Verfahren nennt man Transmission Control Protocol (TCP). Das Transmission Control Protocol stellt einen zuverlässigen Datenübertragungsservice zwischen zwei Netzwerkrechnern dar. Im TCP-Protokoll werden alle zu übertragenden Datensegmente mit einer Sequence Number versehen, um Pakete, die aufgrund unterschiedlicher Übertragungswege vertauscht wurden, wieder in die richtige Reihenfolge zu bringen und um verlorengegangene Pakete erneut anfordern zu können. Das TCP-Protokoll ist ein verbindungsorientiertes, zustandsstabiles Datenübertragungsprotokoll, d.h. zwei Netzwerkanwendungsprogramme bauen eine Verbindung auf und übertragen darüber ihre Daten. Erst wenn die beiden Programme keinen Kontakt mehr wünschen, wird die Verbindung wieder aufgegeben. Bevor mit der eigentlichen Datenübertragung begonnen werden kann, wird ein sogennanntes 3-Weg Handshake ausgeführt. Im ersten Datensegment schickt der Rechner, der die Verbindung aufbauen will, die erste Sequence Number und setzt das Synchronize Sequence Number (SYN) Bit. Der die Verbindung annehmende Rechner antwortet mit einem Datensegment, das seine erste Sequence Number beinhaltet und in dem zusätzlich zum SYN-Bit das Acknowledgment (ACK) Bit gesetzt ist. Der initierende Rechner sendet nun ein Datensegment, in dem nur mehr das ACK-Bit gesetzt ist, um den Erhalt des zweiten Datensegmentes zu bestätigen.

Eine Aufgabe des TCP-Protokolls besteht in der Überprüfung fehlerhaft übertragener Daten durch die Berechnung der Prüfsumme und der daraus folgenden Anforderung einer erneuten Übermittlung eines fehlerhaften Datenpakets. Durch dieses TCP/IP-Protokoll entfallen komplizierte Verbindungsauf- und abbauprozeduren, aber die Datenpakete werden durch die langen Datagramme auch deutlich größer. Folgende Header- und Metainformationen, sind zu jedem Paket im Datagramm gespeichert:

- IP-Ziel und Quelladresse

- IP-Optionen

- Protokollart (z.B. TCP, UDP (User Datagramm Protocol) oder ICMP (Internet Control Message Protocol))

- ICMP-Nachrichtentyp

- Bei TCP-Paketen Angaben über den Verbindungsaufbau (ACK-Bit)

Metainformationen sind solche Daten, die zwar nicht in den Datenpaketen stehen aber dem Router trotzdem bekannt sind. Dies wäre z.B. die Schnittstelle, über die ein Paket eintrifft oder weitergeleitet wird. Obwohl Pakete die Quelladresse im Datagramm haben, enthält sie keine Informationen darüber, von wem die Daten kommen. Dies erschwert die Suche nach eventuellen Angreifern.

zurück

3. Was ist ein Router bzw. Screening Router?

Unter einem Screening Router, den wir im weiteren einfach nur Router nennen wollen, versteht man einen Rechner, der zwei Netzwerke mittels Paketfilterung "sicher" verbindet. Er stellt die billigste aber auch die unsicherste Firewallarchitektur dar. Billig, weil ein Router bei jeder Netzwerkanbindung schon vorhanden ist und weil auf jedem Router Berechtigungs- und Verweigerungslisten zur Paketfilterung installiert werden können. Unsicher, weil Paketfilterung allein keine nennenswerte Hürde für einen Angreifer darstellt. IP-Spoofing ist z.B. eine Angriffsmethode, gegen die ein Screening Router keinen Schutz bietet. Auch bietet ein Router keine Möglichkeit der Protokollierung des IP- Verkehrs. Das macht es sehr schwierig einen Angriff zu erkennen oder gar zurückzuverfolgen.

Ein Router sollte ein möglichst einfaches Aufstellen von Paketfilterungsregeln ermöglichen. Als weitere Vorgabe sollte eine komfortable Benutzungsoberfläche vorhanden sein, mit der man die Regeln bearbeiten kann.

Es sollte möglich sein, verschiedene Regelsätze für verschiedene Schnittstellen aufstellen zu können und die so aufgestellten Regeln müssen in der Reihenfolge abgearbeitet werden, wie sie aufgestellt wurden.

Paketfilterungsbeispiel:

Die Pakete die eine der unteren Regeln entsprechen sollen nicht erlaubt werden.:

Syntax:( stark vereinfacht dargestellt )
QA Quelladresse , ZA Zieladresse , QP Quellport , ZP Zielport
( * = alle Zahlen , nZahl = nur diese Zahl, kZahl = alle kleineren Zahlen , gZahl = alle gößeren Zahlen )

Regel 1: QA *.*.* ,     ZA *.*.* ,        QP g1023 , ZP n21
Regel 2: QA *.*.g99 , ZA *.*.* ,       QP * ,          ZP k510
Regel 3: QA *.*.* ,     ZA n123.*.* , QP * ,          ZP k1024

Wir haben in diesem Fall darauf verzichtet Sie selbst die Regeln aufstellen zu lassen, da die Formulierung der Regeln ein näheres Studium der Paketfilterung voraussetzen würde und wir hier nur einige Grundlagen für die spätere Anwendung vermitteln wollen.

Testen Sie jetzt die oberen Regeln, in dem Sie Pakete definieren und sie von der Paketfilterung prüfen lassen.
Versuchen Sie ein Paket zufinden, welches von allen drei Regeln abgefangen wird.

IP-Quelladresse
IP-Zieladresse
Quellport
Zielport

3.1 Paketfilterung

Paketfilterung ist ein Netzwerk-Sicherheitsmechanismus, der überprüft, welche Pakete an ein Netz und aus einem Netz weitergereicht werden dürfen und wohin sie weitergeleitet werden. Dazu werden die Quell- und Zieladressen in den Datenpaketen verwendet. Man kann auch mittels Paketfilterung Pakete bestimmter Protokolle zulassen oder blockieren. Allerdings kann man nicht innerhalb eines Protokolls Verbindungen von bestimmten Benutzern zulassen oder blockieren, da Pakete keine Informationen darüber enthalten, von welchem Benutzer sie kommen. Der wesentliche Vorteil von Paketfilterung ist, daß man von einer einzigen Stelle aus detaillierte Schutzmaßnahmen ergreifen kann, die im ganzen Netzwerk wirksam sind. Gewisse Schutzmechanismen können ausschließlich durch Router mit Paketfilterung bereitgestellt werden und dies auch nur, wenn sie an bestimmten Stellen im Netzwerk eingesetzt werden. Ein Router an der Grenze zwischen dem LAN und dem Internet kann zum Beispiel alle Pakete aus dem Internet zurückweisen, wenn als Quelladresse im Paket eine interne Adresse angegeben ist. Dies deutet auf einen Adressbetrug hin. Ein wesentlicher Vorteil von Paketfilterung ist, daß sie kein Anwenderwissen und keine Mitarbeit von Benutzern erfordert, da keine Anpassung der Software erforderlich ist. Außerdem ist Paketfilterung in vielen Hard- und Software-Routern enthalten, so daß dafür nichts dazugekauft werden muß.

Paketfilterung hat allerdings auch einige Nachteile. Einer davon ist, daß Paketfilterungsregeln oft schwer formulierbar und einmal ausformuliert, auch schwer zu testen sind. Da Pakete zwar angeben, zu welchem Port sie gehören, nicht aber zu welcher Anwendung, muß man, wenn man Einschränkungen in bezug auf höhere Protokolle als IP festlegt, dazu Portnummer verwenden. Dabei kann man nur hoffen, daß nichts anderes über den Port läuft, den sie einem bestimmten Protokoll zugewiesen haben. Eindringlinge können diese Art von Kontrolle jedoch leicht hintergehen. Es gibt allerdings auch einige wenige Paketfilterungssysteme, die Pakete anhand der Anwendungsprotokolle filtern.

Folgende Grundsätze muß eine Paketfilterung außerdem noch erfüllen. Eine Paketfilterung:

-muß zwischen eingehenden und abgehenden Paketen unterscheiden

-muß nach Absender, Zieladresse, Pakettyp (TCP oder UDP), Quellport und Zielport ablaufen

-muß unterscheiden ob das ACK-Bit gesetzt ist oder nicht

zurück

4. Was ist der generic direct service ?

Die einfachste und zugleich unsicherste Form der Sicherung eines LAN ist der generic direct service. Die Datenpakete werden mittels Paketfilterung im äußeren und inneren Router auf deren Zugangsberechtigung überprüft. Aufgrund dieser Filterung erhalten nur die Pakete Zugang zum Intranet, die in den Routern als "sicher" erkannt worden sind. Der Client wird demnach direkt mit dem Anwendungs-Server verbunden und ist nur mittels Paketfilterung geschützt. Wenn man das LAN direkt mit dem Internet verbindet, ist es vollkommen ausreichend, die Filterungsregeln auf nur einem Router zu installieren, da sie in den meisten Fällen sowieso identisch sind. Dies würde dann eine zusätzliche Kostenersparnis bedeuten, die in kleinen Netzwerken mit hauptsächlich, für Außenstehende, irrelevanten Daten besonders erstrebenswert ist.

zurück

5. Was ist ein Bastionhost ?

Der Bastionhost fungiert als die zentrale Vermittlungsstelle zwischen dem Internet und dem LAN. Auf ihm wird spezielle Software, sogenannte Proxy Server, installiert, die die Verbindungen aufnehmen und an die jeweiligen Original Server weiterleiten. Wenn man proxying unterstützt, d.h. wenn man also Proxy Server für die unterschiedlichen Dienste bereitstellt, so erhält man auf dem Bastionhost einen Engpaß, an dem man Verbindungen besser kontrollieren kann. Wenn man sich aus Sicherheitsgründen für ein Bastionhost entschieden hat, so ist die Konfiguration der einzelnen Proxy Server auf dem Host, eine der wichtigsten Aufgaben beim Erstellen einer Firewall.

Da ein Bastionhost am ehesten einem Angriff aus dem Internet ausgesetzt ist, muß er so einfach wie möglich aufgebaut sein. Je einfacher der Aufbau strukturiert ist, desto einfacher ist er auch zu schützen. Nur die absolut notwendigen Dienste sollten auf dem Bastionhost laufen, da durch Software- oder Konfigurationsprobleme dieser Dienste Sicherheitslücken entstehen könnten. Auf dem Bastionhost sind also nur solche Dienste einzusetzen, die man entweder im Internet anbieten möchte und/oder die für den Zugang zum Internet notwendig sind. Von diesen Diensten können diejenigen, die als sicher eingestuft werden können, über Paketfilterung realisiert werden. Da jeder auf dem Bastionhost angebotene Dienst zu Sicherheitsproblemen führen kann, sollten nicht benötigte Dienste unbedingt deaktiviert werden. Eine weitere Sicherheitsmaßnahme ist das Sperren der Benutzerports des Bastionhosts. Also Ports mit einer Nummer größer als 1023. Somit kann man von vornherein einen erfolgreichen Angriff auf die Benutzerports ausschließen. Diese Maßnahme wird auch in dem zu diesem Tutorial gehörigen Experimentiermodul vorausgesetzt.

Nachdem man den Bastionhost in einem sicheren Raum aufgestellt hat, zu dem kein Unbefugter Zutritt hat, kann man ihn in Betrieb nehmen. Während des Betriebs des Bastionhosts ist es wichtig, das System genau zu überwachen. Um ungewöhnliche Begebenheiten zu entdecken, ist es notwendig zu wissen, wie viele Prozesse normalerweise laufen, wieviel CPU Zeit diese Prozesse etwa beanspruchen und mit welcher Belastung zu verschiedenen Tageszeiten zu rechnen ist. Abweichungen von diesen Durchschnittswerten sollten genau untersucht werden.

Obwohl jeder Bastionhost anders aufgebaut ist, gibt es einige nützliche Tools, die die Überwachung des Hosts teilweise automatisieren können. Mehrere Versuche, mit der gleichen Kennung einzuloggen wäre z.B. ein Ereignis, bei denen solche Tools eine Warnung geben könnten.

Abstürze und erneutes Booten sollten auf dem Bastionhost nur selten vorkommen. Ein gut konfiguriertes Bastionhost ist eigentlich ein stabiles System, daß oft wochen- und monatelang ohne Probleme läuft. Falls es aber doch abstürzen sollte, sollte man sich an die Ursachen machen und herausfinden, ob ein harmloses Problem oder ein Angriff dahintersteckt. Um sicherzugehen, sollte man den Bastionhost so konfigurieren, daß es nach einem Absturz nicht mehr bootet.

5.1 Proxy Server

Ein Proxy Server ist ein Programm, das stellvertretend für interne Clients mit externen Servern kommuniziert (proxy (engl.) - Stellvertreter, Vollmacht). Proxy Clients unterhalten sich mit Proxy Servern, die bestätigte Client-Anfragen an die eigentlichen Server weiterleiten und die Antworten zurück an die Clients übermitteln.

Proxy Systeme bieten Internet-Zugang zu einem einzigen oder einigen wenigen Rechnern, erwecken dabei jedoch den Anschein, Zugriff auf alle Rechner im Netz zu gewähren. Die Rechner mit Zugriffsmöglichkeiten dienen als Stellvertreter für die Maschinen ohne Zugang, für die sie die gewünschten Aufgaben erledigen. Der Server läuft normalerweise auf einem Dual-Homed Host oder Bastionhost, sieht sich die Anfragen von Clients an und entscheidet, welche an den echten Server weiterzureichen und welche zu ignorieren sind. Dabei ist für den Benutzer des Clients nicht zu unterscheiden, ob er mit dem echten Server oder mit dem Proxy Server kommuniziert. Der Server glaubt dabei, mit Benutzer zu kommunizieren, die auf dem Proxy Server arbeiten. Eine Erhöhung der Sicherheit würde für den Fall eintreten, daß Proxy Server in Kombination mit einem Verfahren eingesetzt werden, das keine IP Verbindungen zwischen dem Client und dem echten Server zuläßt. Ein Überwachungsrouter etwa, der keine Pakete routet, wäre dazu geeignet.

Dem größten Vorteil der Proxies, nämlich die Transparenz für die Benutzer, stehen einige Nachteile gegenüber. Erstens erfordern Proxies u.U. für jeden Dienst einen eigenen Server. Die Installation und Konfiguration all dieser Server kann sehr umständlich werden. Zweitens müssen für den Einsatz von Proxies gewöhnlich Clients angepaßt und/oder geändert werden. Drittens schützen Proxies nicht vor Schwächen im Protokoll (z.B. X11). Und insbesondere kann nicht jeder Dienst mit Proxy Server abgesichert werden.

Um mit Proxy Servern arbeiten zu können, benötigt man auf der Serverseite spezielle Proxysoftware.

Für die Realisierung der Clientseite gibt es zwei Ansätze:

Angepaßte Client-Software:

Bei diesem Ansatz muß die Software wissen, wie sie bei einer Benutzeranfrage den Proxy Server anstelle des eigentlichen Servers anspricht. Außerdem muß sie dem Proxy Server mitteilen, zu welchem echten Server eine Verbindung hergestellt werden soll.

Modifizierte Verfahren für Benutzer:

Bei dieser Methode kommuniziert der Benutzer anhand von Standard Client Software nicht direkt mit dem eigentlichen Server, sondern mit dem Proxy Server, den er anweist, eine Verbindung zum echten Server herzustellen.

Viele Proxy Server können mehr, als nur Anfragen weiterzureichen. Sie können Daten im Cache behalten, so daß Anfragen nach denselben Daten nicht jedesmal ins Internet gesendet werden müssen. Diese Daten werden dann direkt aus dem Cache-Speicher bereitgestellt. Solche Server werden intelligente Proxies genannt.

zurück

6. Was ist der generic proxy service ?

Beim generic proxy service wird zwischen dem LAN und dem Internet ein Unternetz aufgebaut, das sogenannte Perimeter Netz. An dieses Subnet wird ein weiterer Rechner angeschlossen, der Bastionhost. Auf dem Bastionhost werden Proxy-Server installiert, so daß dieser als zentraler Kontaktpunkt zwischen LAN und Internet fungieren kann. Der Client verbindet sich mit dem Proxy-Server, welcher dann Kontakt mit den eigentlichen Servern im Internet aufnimmt. Infolgedessen kommt es zu keiner direkten Verbindung zwischen LAN und Internet ( das Bastionhost enthält zumeist auch zwei Netzwerkkarten ). Dies hat den Vorteil, wenn ein Angriff stattfindet, wird "nur" der Bastionhost getroffen. Auf diesem Rechner sollten logischerweise keine für Angreifer interessanten Daten liegen . Diese Firewall bietet einen ausreichenden Schutz vor direkten Angriffen auf Userports. Als Proxy-Server können z.B. die TIS FWTK proxy Server verwendet werden. Das Perimeter Netz, bzw. das Versteckte Netz, wie es vielfach in der deutschen Literatur auch bezeichnet wird, wird zudem über einen externen Router gegen das Internet abgeschirmt und über einen internen Router gegen das LAN. Während die Konfiguration des internen Routers zur Aufgabe des lokalen Netzwerkadministrators zählt, werden externe Router häufig von externer Seite angeboten z.B. einem Internet- Provider, so daß der Einfluß des Standorts auf das Regelwerk des externen Routers ohnehin sehr begrenzt ist.

zurück

7. Was kostet eine Firewall ?

Der Kostenfaktor einer Firewall setzt sich zusammen aus der Anzahl der Router, dem Bastionhost und der darauf installierten Software. Hinzu kommen dann noch Kosten zur Schulung der Benutzer und die permanente Aktualisierung der Software.

Der Systemverwalter muß genau zwischen den Kosten und dem Nutzen einer Firewall abwägen. Die Einrichtung eines generic proxy service ist sehr kostenintensiv, bietet aber dafür auch den größten Schutz für das innere Netz. Für private Anwender wäre dieser Aufwand viel zu hoch. Auch wäre es unlogisch einen Rechner mit einem hohen Kostenaufwand zu schützen auf dem sich keine wichtigen Daten befinden.

zurück

 


Hauptseite Firewall FTP-Dienst Angriffsarten Expermod Links