Wie Firewalls den Rechner schützen

Aus EasyLinux 03/2011

Wie Firewalls den Rechner schützen

© Artsem Martysiuk, 123RF

Brandmauern

Eine massive Brandschutzwand soll Feuer vom Gebäude und seinen Bewohnern fernhalten. Nach einem ganz ähnlichen Prinzip blockt im Computer eine Firewall Gefahren aus dem Internet ab. Wie ein Blick auf ihre Arbeitsweise zeigt, ist sie jedoch alles andere als ein Allheilmittel.

Ihr Computer ist extrem attraktiv und begehrt – insbesondere bei Kriminellen. Sie klopfen systematisch bei allen an das Internet angeschlossenen Computern an und versuchen, ihnen auf verschiedenen Wegen Viren, Trojaner und andere Schadprogramme unterzujubeln. Diese verwandeln den PC dann wahlweise in eine Versandstation für Werbe-E-Mails oder schreiben alle eingetippten Passwörter und Kreditkartennummern mit.

Geschlossene Gesellschaft

Abhilfe gegen solche Angriffe von außen verspricht eine Firewall. Im abstrakten Sinn ist die Firewall ein Konzept, um Netze voneinander zu trennen (etwa Intranet und Internet) und mit Hilfe von Programmen ungewollte und schädigende Netzwerkverbindungen zu verhindern. In der üblichen Wahrnehmung bestehen Firewalls hingegen meist aus einem oder mehreren Programmen, die eingehende und ausgehende Netzwerkverbindungen überwachen und ungebetene Anfragen aus dem Internet abweisen (Abbildung 1).

Abbildung 1: Eine Firewall blockt Anfragen und Kontaktversuche aus dem Internet ab, die Verbindungen des eigenen PCs lässt sie hingegen passieren.

Abbildung 1: Eine Firewall blockt Anfragen und Kontaktversuche aus dem Internet ab, die Verbindungen des eigenen PCs lässt sie hingegen passieren.

Im privaten Bereich kommen dabei meist zwei Typen von Firewalls zum Einsatz. Sofern die Firewall auf dem eigenen Computer läuft, spricht man von einer Desktop- oder Personal-Firewall (Abbildung 2). Starten Sie auf dem gleichen PC aber (versehentlich) ein Schadprogramm, kann dieses die Firewall teilweise lahmlegen oder ganz abschalten. Folglich ist es eine gute Idee, die Firewall auf einen eigens für sie abgestellten Computer auszulagern (Abbildung 3). Eine solche externe Firewall werkelt in vielen Wohnungen bereits still und heimlich in Form eines DSL-Routers, wie etwa der beliebten FritzBox. Die gesamte Kommunikation mit dem Internet läuft dabei zwangsweise über die externe Firewall, die wiederum ein Auge auf alle durchsausenden Daten wirft und so alle angeschlossenen PCs im Haushalt vor Einbruchsversuchen bewahrt.

Abbildung 2: Eine Personal-Firewall läuft direkt auf dem eigenen Computer.

Abbildung 2: Eine Personal-Firewall läuft direkt auf dem eigenen Computer.

Abbildung 3: Dank einer externen Firewall sind die PCs nicht direkt mit dem Internet verbunden.

Abbildung 3: Dank einer externen Firewall sind die PCs nicht direkt mit dem Internet verbunden.

Geschützt ist hierbei allerdings immer nur das komplette Heimnetzwerk gegenüber dem Internet. Hat sich beispielsweise der PC eines Bewohners mit einem Virus infiziert, könnte dieser auch theoretisch die Computer der übrigen Haushaltsmitglieder anstecken. Das würde wiederum nur eine Personal-Firewall auf jedem einzelnen PC verhindern.

Gesichtskontrolle

Linux verfügt bereits über eine eingebaute Firewall. Sie hört derzeit noch auf den Namen Netfilter/Iptables und besteht im Kern aus mehreren Komponenten, die alle zusammen die Firewall bilden. Häufig ist nur von Iptables die Rede, wenn die Linux-Firewall zu Sprache kommt – dabei handelt es sich lediglich um eine von mehreren – wenn auch wichtigen – Komponenten.

Die zugrunde liegende Arbeitsweise von Netfilter/Iptables ist so simpel wie genial: Wenn ein Computer mit einem anderen Informationen austauschen möchte, verpackt er die Daten in kleine Pakete, die sich wesentlich einfacher und schneller zustellen lassen. Das gleiche Prinzip haben Sie sehr wahrscheinlich auch bei Ihrem letzten Umzug angewendet. Wie ein echtes Postpaket tragen auch die Datenpakete einen Absender, eine Empfangsadresse und noch ein paar weitere Informationen, die für den Transport notwendig sind. Eine Firewall kann sich diese Paketaufkleber ansehen und anhand von vorgegebenen Regeln dann entweder durchlassen (englisch accept), auf den Müll werfen (drop) oder zurückschicken (reject). Das funktioniert übrigens in beide Versandrichtungen. So kann man nicht nur Anfragen aus dem Internet abblocken, sondern mit passenden Regeln auch umgekehrt ganz gezielt den Zugriff auf bestimmte Internetseiten oder Dienste sperren. Heiße Kandidaten dafür sind z. B. alle Dienste, die Passwörter im Klartext übertragen. Eine solche Sperrung verhindert auch ganz nebenbei, dass irgendwelche (fehlerhaften) Anwendungen heimlich nach Hause telefonieren. Zu Netfilter gehören dabei unter anderem ein Paketfilter, eine Adressübersetzung und eine Verbindungsverfolgung. Das Netfilter-Projekt [1] bietet noch weitere Komponenten an.

Für gewöhnlich vergleicht die Firewall das Adressetikett auf dem hereinkommenden Paket solange mit jeder ihr bekannten Regel, bis irgendeine zutrifft. Bei sehr vielen Regeln dauert dies schon einmal eine Weile und verlangsamt so als unangenehmer Nebeneffekt den Netzwerkverkehr. Ein gutes Regelwerk (englisch Rulebase) erfordert daher viel Gehirnschmalz. Um der Firewall die Regeln einzuimpfen, kommt das bereits erwähnte Kommandozeilen-Werkzeug iptables zum Einsatz, das allerdings nur recht kryptische Befehle akzeptiert. Unter OpenSuse gibt es das einfacher zu bedienende Modul Firewall in der Systemverwaltung YaST. Unter Kubuntu können Sie die Kommandozeilenlösung ufw verwenden [2], eine stark vereinfachte Variante von Iptables.

Ein Webserver sendet immer nur dann eine Internetseite an den heimischen Rechner, wenn dieser die Seite explizit anfordert. Trudelt plötzlich unerwartet ein als Internetseite deklariertes Paket ins Haus, kann etwas nicht stimmen. Um diesen Fall aufzudecken, reicht es jedoch nicht mehr aus, nur stur auf das Adressetikett zu schauen. Die Firewall muss sich zusätzlich merken, wer vorher welche Anfragen wohin geschickt hat. Diese Fähigkeit bezeichnet man als Stateful Packet Filtering. Auch die in Linux eingebaute Firewall besitzt ein kleines Gedächtnis, dessen Wissen sich im Rahmen der Iptables-Regeln ausnutzen lässt.

Aus oder an? Oder doch aus?

Die in Linux eingebaute Firewall ist unter Ubuntu und Kubuntu im Auslieferungszustand abgeschaltet. Aber keine Panik: Canonical hat alle in seiner Distribution enthaltenen Programme konsequent so voreingestellt, dass sie von außen kommende Datenpakete schlichtweg ignorieren. Unter OpenSuse ist die Firewall hingegen standardmäßig aktiv und weist dort alle an der Netzwerkkarte ankommenden Daten ab.

In Foren und in der Literatur wird immer wieder eifrig und heftig darüber diskutiert, welcher der beiden Wege sinnvoller ist. Eine standardmäßig aktivierte Personal-Firewall kann durch ihre strikte Blockadehaltung den Benutzer verwirren, weil Anwendungen nicht so funktionieren, wie sie sollen. Konfiguriert man das System so konsequent wie im Fall von Ubuntu, ist eine Personal-Firewall zudem nicht notwendig. Installiert man sie doch, wäre das in etwa so, als würde man vor einem Haus mit verrammelten Türen noch einen Wachschutz postieren. Andererseits kann eine Anwendung theoretisch schwerwiegende Fehler enthalten und dadurch dann doch schadhafte Pakete aus dem Internet annehmen.

Wenn Sie jetzt verwirrt sind, vertrauen Sie am besten den Voreinstellungen Ihrer Distribution. Weitere Pro- und Kontra-Argumente finden Sie z. B. in der Beschreibung von Ubuntus Uncomplicated Firewall [3].

Ein Angreifer könnte seinen Computer so einrichten, dass dessen IP-Adresse aus dem heimatlichen Netzwerk zu stammen scheint. Die Firewall würde in diesem Fall alle Aktionen des Fremden erlauben. Ein solches, absichtliches Fälschen einer IP-Adresse bezeichnet man als IP-Spoofing. Als Abwehrmaßnahme weist man die Firewall mit Hilfe entsprechender Regeln an, ausschließlich Kommunikationsversuche von Computern mit ganz bestimmten IP-Adressen anzunehmen. Moderne DSL-Router und Firewalls können dabei zusätzlich oder alternativ die weltweit eindeutige Seriennummer der Netzwerkhardware (die so genannte MAC-Adresse) heranziehen. Diese lässt sich allerdings leicht fälschen, bietet also keine starke Sicherheit.

Striptease

Die Linux-Firewall schaut sich die Pakete nur von außen an, nicht jedoch in sie hinein. Ein gut verschnürtes Softwarebömbchen würde sie folglich nicht erkennen. Es gibt allerdings auch Programme, die auf das Postgeheimnis pfeifen und den Inhalt der Pakete inspizieren. Solche Proxys (auch Application Level Gateway oder Filter genannt) schalten sich als eigenständige Kommunikationspartner meist zwischen die Firewall und das interne Netzwerk. Sie sind häufig auf ganz bestimmte Paketinhalte spezialisiert. Ein HTTP-Proxy klopft z. B. Internetseiten auf mitgeschickte Viren ab, filtert anrüchige Inhalte aus (Stichwort: Kindersicherung) und speichert die Seiten oft auch noch für einen schnellen, wiederholten Zugriff zwischen (Caching). Die Einrichtung eines solchen Filterprogramms ist je nach Dienst unterschiedlich kompliziert. Für die Analyse von E-Mails muss man in der Regel einen kompletten Mail Transfer Agent (MTA, auch Mail-Relay genannt) einrichten, der die E-Mails entgegennimmt, filtert und schließlich im lokalen Postfach ablegt.

Anwender müssen zudem häufig ihre Programme so einrichten, dass sie den Netzwerkverkehr bzw. ihre Daten an den Proxy weiterreichen. Im überschaubaren Heimnetz ist es oft einfacher und weniger fehleranfällig, die im E-Mail-Programm enthaltenen Funktionen zur Spamerkennung zu nutzen. Zudem dauern solche Inspektionen deutlich länger, schließlich muss der Proxy die Pakete sammeln, öffnen, den Inhalt zusammenbauen, prüfen, wieder in Pakete verpacken und weiterleiten. Deshalb lohnt es sich, zunächst einen Paketfilter einzusetzen und nur alle von ihm als gut befundenen Pakete noch einmal via Proxy zu röntgen. Ein nach diesem Prinzip arbeitendes Programmduo bezeichnet man auch als Screened Gateway. Enthält die Firewall direkt die Funktionen eines Proxys, spricht man auch von einer Proxy- oder Application Level Firewall (kurz ALF). Untersucht ein Proxy die durchfließenden Datenpakete gezielt nach auffälligen Merkmalen, die auf einen Angriff eines Kriminellen hindeuten, hat man ein Intrusion Detection System (IDS). Solche Softwaresysteme gehen jedoch bereits über die eigentlichen Aufgaben einer Firewall hinaus.

Blinder Fleck

Eine Firewall kann noch mehr, als nur einzelne Pakete auszusortieren. Sofern man sie auf einem separaten Computer direkt hinter dem Internetanschluss betreibt (Abbildung 3), macht sie auf Wunsch alle Computer des heimischen Netzwerkes unsichtbar. Das Zauberwort hierzu heißt Adressübersetzung, englisch Network Adress Translation (NAT).

Damit ein Computer überhaupt Pakete von anderen empfangen kann, benötigt er eine Postadresse. Diese besteht aus einer eindeutigen Nummer, der IP-Adresse. Verschickt nun ein Computer aus dem heimischen Netzwerk ein Datenpaket, nimmt es die NAT-Komponente der Firewall entgegen und klebt einfach ihre eigene IP-Adresse als Absender drauf. Der wahre Absender bekommt von diesem Vorgang überhaupt nichts mit. Der Empfänger im Internet schickt seine Antwort dann wieder an die Firewall zurück. Diese etikettiert das Paket heimlich wieder um und übergibt es schließlich an den tatsächlichen Kommunikationspartner. Ein Computer im Internet sieht also immer nur den PC mit der Firewall, alle Computer im heimischen Netzwerk dahinter bleiben für ihn unsichtbar. Dieses Verfahren legt auch eine (versehentlich) auf dem eigenen PC installierte Schadsoftware lahm, die auf eine Verbindungsaufnahme von außen wartet. Dank NAT und einem Paketfilter kann sie darauf lange warten. Dummerweise rechnen damit mittlerweile auch kriminelle Entwickler und lassen ihre Schadprogramme den ersten Schritt ins Internet gehen, womit die Firewall wiederum von einer legitimen Kommunikation ausgehen muss.

Das NAT-Verfahren dient eigentlich einem ganz anderen Zweck: Es ist vor allem dann notwendig, wenn Ihnen Ihr Internetprovider nur eine IP-Adresse zuteilt, aber mehrere Computer im Haushalt ins Internet wollen. Der DSL-Router übernimmt dann die vom Provider spendierte IP-Adresse und weist allen anderen PCs selbst gewählte Adressen zu, die nur im lokalen Netzwerk funktionieren. Durch dieses Verfahren wollte man ursprünglich einen sparsamen und effizienteren Umgang mit den limitierten IP-Adressen erzwingen. Da aber immer mehr Geräte und Nutzer ins Internet drängen, ehen inzwischen trotzdem die Adressen aus. Daher hat man sich dazu entschlossen, die bisher 32-Bit langen Hausnummern in der nächsten Zeit durch 128-Bit lange Monster zu ersetzen. Das genügt, um jedem Computer, Kühlschrank, Radiowecker und allen übrigen Geräten des Universums eine eigene Adresse zuzuordnen. Der neue Standard namens IPv6 (Internet Protocol, Version 6) kennt daher auch kein NAT mehr, folglich kann man auf diesem Weg seine Computer nicht mehr so einfach verstecken.

Umleitung

Eine externe Firewall schottet die hinter ihm liegenden Computer mittels Paketfilterung ab. Möchte man selbst Internetseiten bereitstellen, einen Game-Server betreiben oder andere Dienste anbieten, muss man mit passenden Ausnahmeregeln die entsprechenden Anfragen und Kommunikationsversuche aus dem Internet durchlassen. Bildlich bohrt man dabei kleine Löcher in die Brandmauer.

Wenn man zusätzlich noch NAT verwendet, ist das allerdings erst die halbe Miete. In diesem Fall sehen die Computer aus dem Internet nur den PC mit der Firewall, nicht aber die dahinterliegenden Computer im heimischen Netzwerk. Für dieses Problem gibt es zwei Lösungsansätze – der erste erfordert wieder etwas technisches Hintergrundwissen.

In größeren Unternehmen erhält jede Abteilung, teilweise sogar jeder Mitarbeiter, eine eigene Durchwahl. Kunden hängen diese Nummer an die Telefonnummer des Unternehmens an und erreichen so direkt die gewünschte Abteilung. Auf eine ganz ähnliche Weise stellt ein Computer Dienste im Internet bereit. Auch dort erhält jeder Dienst eine eigene Durchwahl zugewiesen, die man hier jedoch als Port bezeichnet. So ist z. B. ein Webserver der Internetseiten ausliefert, in der Regel unter der Durchwahl – Pardon – dem Port 80 oder 8080 erreichbar, während ein Mailserver unter Port 25 E-Mails zum Versand entgegennimmt. Möchte eine Anwendung einen Dienst nutzen, muss sie auch immer die entsprechende Portnummer angeben. Der Rechner, der den Dienst anbietet, stellt die eingehende Anfrage dann direkt an das passende Programm durch.

Der vorgeschalteten Firewall muss man nun mitteilen, an welchen Ports auf welchem Computer Dienste warten. Die Firewall lauscht dann stellvertretend an diesen Ports auf Anfragen aus dem Internet und leitet sie automatisch an den passenden Computer im heimischen Netz weiter (Abbildung 4). Diese Arbeitsweise bezeichnet man als Portweiterleitung oder englisch Port Forwarding. Das Verfahren funktioniert ähnlich wie das Durchstellen beim Telefon: In einem Unternehmen erreicht man zunächst unter der Durchwahl einen Mitarbeiter, der einen dann eventuell an eine Zweigstelle mit einer vollkommen anderen Telefonnummer durchstellt. Die Portweiterleitung hat allerdings den Nachteil, dass Datenpakete aus dem Internet in das heimische Netzwerk gelangen. Abbildung 5 zeigt das Interface der FritzBox, über das Besitzer eines solchen DSL-Routers bequem Port-Weiterleitungen einrichten können.

Abbildung 4: Bei einer Portweiterleitung nimmt die externe Firewall stellvertretend die Anfragen aus dem Internet entgegen und leitet sie an den passenden Server weiter.

Abbildung 4: Bei einer Portweiterleitung nimmt die externe Firewall stellvertretend die Anfragen aus dem Internet entgegen und leitet sie an den passenden Server weiter.

Abbildung 5: In der FritzBox können Sie Port-Weiterleitungen einrichten und damit von außen den Zugriff auf bestimmte lokal laufende Dienste, etwa einen privaten Webserver oder einen SSH-Server, freigeben.

Abbildung 5: In der FritzBox können Sie Port-Weiterleitungen einrichten und damit von außen den Zugriff auf bestimmte lokal laufende Dienste, etwa einen privaten Webserver oder einen SSH-Server, freigeben.

Ausgesperrt

Beim zweiten Lösungsansatz verbindet man den Server direkt mit dem Internetprovider – erst dahinter folgt die Firewall (Abbildung 6). Der Server ist damit direkt aus dem Internet erreichbar. Das übrige Netzwerk ist aber weiterhin geschützt – selbst dann, wenn ein Krimineller den Server in seine Gewalt bringt. Durch das Umstöpseln des Servers entsteht jetzt neben dem sicheren, lokalen Netzwerk und dem Internet ein neuer, ungeschützter Bereich. Ihn bezeichnet man häufig als demilitarisierte Zone, kurz DMZ. Den Begriff hat man etwas unpassend aus dem Militärjargon übernommen. Dort steht er für einen Landstreifen, in dem eine Waffenruhe gilt und in dem sich keine militärischen Einheiten aufhalten dürfen.

Abbildung 6: In einer demilitarisierten Zone gibt es zwischen Firewall und Internet ein weiteres Netzwerk.

Abbildung 6: In einer demilitarisierten Zone gibt es zwischen Firewall und Internet ein weiteres Netzwerk.

Damit der Server in der DMZ nicht schutzlos herumsteht, richtet man gewöhnlich eine zweite Firewall ein, die Anfragen für die Dienste in der DMZ durchlässt – allerdings wirklich nur für diese. Mittlerweile gibt es Geräte, die beide Firewalls in einem Gerät zusammenfassen und die folglich über mindestens drei Netzwerkanschlüsse verfügen. Im Falle einer DMZ muss man penibel darauf achten, dass die dortigen PCs und ihre Programme nicht die Firewall vor dem privaten Netz umgehen – etwa, indem man eine zweite Netzwerkstrippe zieht oder alle im gleichen WLAN-Netz funken.

Denk mal

Zu einer funktionierenden Firewall gehört immer auch der Mensch. Wer auf zwielichtigen Seiten nach Downloads aktueller Kinofilme fahndet, per E-Mail zugestellte Angebote für Medikamente aus fremden Ländern öffnet und vor allem fragwürdige Anwendungen aus unbekannten Quellen startet, darf sich nicht wundern, wenn sich das System plötzlich merkwürdig verhält. Fahrlässig handelt auch, wer die externe Brandmauer für ein Computerspiel vorübergehend deaktiviert.

Auch bei der Auswahl der Regeln ist Köpfchen gefragt. So könnte man die Firewall anweisen, generell alle Pakete einfach durchzulassen. Unerwünschte Ereignisse blockiert man dann sukzessive mit entsprechenden Regeln. Dieses Vorgehen ist jedoch extrem gefährlich: Vergisst man auch nur eine (außergewöhnliche) Situation, bleibt ein Einfallstor sperrangelweit offen. Ähnliches gilt für eine Firewall, die mit besonders vielen Regeln aufwartet. Sie beeindruckt zwar den Laien, durch die Regelschlacht übersieht man jedoch schnell ein Schlupfloch oder wundert sich, warum Netzwerkpakete nicht durchkommen. Es empfiehlt sich deshalb immer, genau den umgekehrten Weg zu gehen: Standardmäßig alles verbieten und dann mit gezielten Regeln bestimmte Aktionen erlauben.

Selbst die beste Firewall nützt nichts, wenn man seine Systeme nicht über die Aktualisierungsfunktion auf dem letzten Stand hält. Klaffen in Betriebssystemen und in Anwendungen wie Firefox oder Adobe Flash seit Monaten bekannte Sicherheitslöcher, gelangen Kriminelle über sie bequem an der sichersten Firewall vorbei. Betreibt man ein ungesichertes oder ungenügend geschütztes drahtloses Netzwerk (WLAN), braucht sich ein Krimineller nur auf der Straße stehend mit diesem Netzwerk zu verbinden und hat sich so hinter die Firewall und in das private Netzwerk geschmuggelt. Einfach zu erratende Passwörter wie 12345 oder der Mädchenname der Mutter tun schließlich ihr übriges.

Fazit

Eine Firewall ist kein Allheilmittel, sondern nur ein Baustein in einem umfassenden Sicherheitskonzept. In diesem Beitrag haben wir zudem nur einen kleinen Einblick in die Arbeitsweisen einer Firewall gegeben. Wer selbst Filterregeln formulieren möchte, muss noch tiefer in die teilweise komplexe Funktionsweise abtauchen. Dort trifft man auf viele weitere kryptische Fachbegriffe, auf die z. B. der Wikipedia-Eintrag zum Thema “Firewall” [4] einen kleinen Vorgeschmack gibt.

Glücklicherweise sind die Linux-Distributionen Ubuntu und OpenSuse in ihrem Auslieferungszustand vorbildlich eingestellt. Nachregulieren muss man dort nur in Spezialfällen. Wer zusätzlich noch eine externe Firewall, z. B. in einem DSL-Router verwendet und unbekannte Webseiten nur vorsichtig nutzt, sollte zumindest von den üblichen Angriffswellen aus dem Internet verschont bleiben.

Glossar

IP-Adresse

Die “Telefonnummer” eines Computers in einem Netzwerk. Damit sie einfacher zu lesen ist, teilt man sie in vier einzelne Zahlenblöcke auf, wie etwa 80.237.227.187.

Server

Als Server bezeichnet man sowohl einen Computer, der einen Dienst im Internet anbietet, als auch ein darauf laufendes Programm, das diese Dienstleistung dann tatsächlich bereitstellt. Ein Dateiserver wäre zum Beispiel ein Rechner, der im Netzwerk Daten speichert, ein FTP-Server nimmt diese Daten dann konkret in Empfang.

Port

Die “Durchwahl” für ein Serverprogramm. Man notiert sie für gewöhnlich von einem Doppelpunkt getrennt hinter der IP-Adresse, wie etwa 80.237.227.187:80.

Infos

[1] Netfilter-Projekt: http://www.netfilter.org/

[2] Ubuntuusers Wiki-Artikel “Personal Firewalls”: http://wiki.ubuntuusers.de/Personal_Firewalls

[3] Ubuntu Uncomplicated Firewall: https://help.ubuntu.com/community/UFW

[4] Wikipedia-Eintrag zu Firewalls: http://de.wikipedia.org/wiki/Firewall

EasyLinux 03/2011 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben