logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
      Anzeige

Erschienen in LinuxUser 01/2007

Personal Firewall mit Firestarter

Brandmelder


Mit dem grafischen Iptables-Frontend Firestarter konfigurieren Sie mit wenigen Mausklicks eine funktionierende Desktop-Firewall.   Marcus Nasarek

README
Unter Gnome bietet Firestarter eine übersichtliche und komfortable Oberfläche für das Einrichten und Betreiben einer Personal Firewall.

Inzwischen gibt es eine große Zahl grafischer Oberflächen für die Verwaltung der Firewall. Die Bedienung der Frontends ist nicht immer unbedingt leichter, als Iptables direkt zu skripten: Zumindest für den Eigenbedarf stellen die ausgewachsenen Firewallkonsolen ein echte Herausforderung dar. Will man sich nur auf den eigenen PC konzentrieren und vielleicht noch ein kleines Heimnetz schützen, genügt Firestarter, die "All-In-One"-Firewall für Gnome [1].

Firestarter einrichten

Die meisten Distributionen bringen Firestarter bereits im Lieferumfang mit, richten das Werkzeug jedoch nicht standardmäßig ein. Dem helfen Sie über den jeweiligen Paketmanager schnell ab. Alternativ holen Sie sich von der Firestarter-Homepage [1] oder der Heft-CD den Quellcode der aktuellen Version 1.0.3. Nach dem Entpacken des Source-Tarballs in ein beliebiges Verzeichnis übersetzen Sie das Programm als Root mit der Befehlsfolge:

./configure --sysconfdir=/etc && make && make install

Der erste Aufruf von Firestarter verlangt Root-Rechte und führt mit einem Assistenten durch die Einrichtung der Firewall. Nach der Begrüßung sind zunächst Fragen zur Netzwerkkonfiguration zu beantworten. Der Assistent unterstützt den Anwender dabei mit ausführlichen Hilfetexten.

Inbetriebnahme

Um das Netzwerkgerät für die Internetanbindung einzustellen, stellt Firestarter die automatisch erkannten Netzwerkschnittstelle(n) zur Auswahl. Bei PCs mit einer Modemverbindung ist das meist ppp0. Dazu bietet der Assistent zwei Optionen: Die eine startet die Firewall nur dann, wenn der Benutzer eine Verbindung über das Modem aufbaut. Das hat den Vorteil, dass man den Netzwerkverkehr abhängig davon einschränken kann, ob eine Internetverbindung besteht oder nicht. Ist der PC mit Hilfe eines Routers angebunden, der die Einwahl selbst vornimmt, läuft die Internetverbindung meist über die Netzwerkkarte eth0. Hier ist die erste Option obsolet.

Die zweite Option weist die Firewall darauf hin, dass Vergabe der eigenen IP-Adresse bei jeder Einwahl per DHCP erfolgt und die Adresse sich demzufolge ändert. Die Regeln, die sich auf die eigene IP-Adresse beziehen, muss Firestarter dementsprechend anpassen.

Sollen außer dem ans Internet angeschlossenen Rechner noch weitere PCs aus dem Heimnetzwerk die Verbindung nutzen dürfen, muss man die Internet-Verbindungsteilung (NAT) aktivieren. In diesem Zusammenhang gilt es eine zweite Netzwerkkarte für das interne Netzwerk zu wählen. Für PCs mit einer Modemverbindung heißt die Internetschnittstelle üblicherweise ppp0 und die innere Schnittstelle meist eth0. Bei einer Anbindung via Router kommen dagegen die Interfaces eth0 und eth1 zum Zug. Soll die Firewall auch die IP-Adressen der PCs im Heimnetz verwalten, lässt sich hier ein DHCP-Server für das interne Netz aktivieren. Mit diesen Grundeinstellungen kann Firestarter bereits aktiv werden (Abbildung ((1))).

((1)) Der Assistent wurde erfolgreich beendet, Firestarter kann nun aktiviert werden.


NAT: Network Address Translation. Eine Technik, die mehreren internen privaten IP-Adressen eine Internetadresse zuordnet. NAT kommt oft zum Einsatz, wenn nur eine Internetadresse zur Verfügung steht und sich mehrere Computer eines privaten Netzes den Zugang teilen.

Die Statusseite

Nach Abschluss der Grundkonfiguration ist Firestarter bereits aktiv. Nach dem Start erscheint seine Statusseite. Wie in Abbildung ((2)) zu sehen, listet diese die aktiven Netzwerkgeräte und alle aktiven Verbindungen auf. In der Abbildung kann man sehen, dass auf dem lokalen Port 127.0.0.1 der Dienst IPP aktiv ist − also der CUPS-Druckertreiber, der die Druckdienste auch für lokale Druckaufträge über einen Netzwerkdienst entgegen nimmt. Weiterhin führt Firestarter zwei HTTP-Verbindungen auf, die der Browser Firefox nutzt.

((2)) Die Statusseite von Firestarter zeigt Informationen zum Zustand der Firewall sowie die aktiven Verbindungen.

Auf der Symbolleiste der Statusseite finden sich zwei "Panik"-Schalter: Firewall sperren blockiert sofort den gesamten Netzverkehr. Hat man den Verdacht, dass gerade Daten abhanden kommen oder ein Angriff erfolgreich im Gange ist, unterbricht man über diesen Schalter abrupt alle aktiven Kanäle. Der Button Firewall stoppen löscht alle Regeln und öffnet den gesamten Netzverkehr; ein erneute Klick lädt die Regeln wieder und aktiviert die Firewall.

Neben dem Reiter Status bietet die Oberfläche noch die beiden Tabs Ereignisse und Richtlinie. Unter Richtlinie legen Sie die Regeln für ein- und ausgehende Verbindungen fest. Die Richtlinie für ausgehenden Verkehr kennt die beiden Einstellungen Freizügige Voreinstellung; Blacklist Verkehr und Einschränkende Voreinstellung; Whitelist Verkehr.

Blacklist

Die Voreinstellung von Firestarter nach der Installation ist zunächst "freizügig". Das bedeutet, dass:

Unerwünschten Verkehr muss man bei dieser Voreinstellung explizit verbieten. Das ist zwar benutzerfreundlich, da zunächst alles funktioniert und man sich nicht um jede Anwendung im Detail kümmern muss. Doch obwohl nun jede Verbindungsaufnahme von außen blockiert wird, bleiben genügend Möglichkeiten für geschwätzige Dienste auf dem PC, Daten nach außen zu tragen. Um diese Offenherzigkeit zu zügeln, sollte man die Strategie wechseln und eine Whitelist pflegen, auf der man die erwünschten Verbindungen einträgt und erlaubt.

Whitelist

Die Strategie, nur erwünschte Verbindungen explizit zu erlauben, macht naturgemäß mehr Aufwand. Dafür verringert sich die Angriffsfläche enorm. Im Falle einer restriktiven Policy gilt es, alle benötigten Dienste und Kommunikationspartner bei der Firewall anzumelden.

Normalerweise stellt man die Policy von Iptables mit der Option -P ein. Firestarter geht jedoch einen eigenen Weg und bildet einen entsprechenden Regelsatz, der den Bedürfnissen eines Normalverbrauchers eher entgegenkommt: Auch unter der restriktiven "Whitelist"-Einstellung bleiben alle "lebensnotwendigen" Verbindungen weiter offen. Dazu zählen alle Dienste auf dem lokalen Host 127.0.0.1, wie der Druckerdienst oder der X-Window-Server. Auch die bereits laufenden Verbindungen werden beim Umschalten nicht sofort gekappt.

Bei der Erstellung eines Basissatzes an Regeln hilft Ihnen die Tabelle "Wichtige TCP- und UDP-Ports". Geben Sie die dort aufgeführten Ports frei, so können Sie im Internet surfen, Mails versenden und empfangen, Dateien per FTP übertragen und die Uhrzeit mit Hilfe des Network Time Protocols (NTP) mit einem Zeitserver im Internet abgleichen.

Für die Einrichtung der Regeln rufen Sie in Firestarter den Reiter Richtlinien auf. Die Auswahlbox für die Richtung des Netzverkehrs stellen Sie auf Richtlinie für ausgehenden Verkehr und aktivieren die Option Einschränkende Voreinstellung; Whitelist Verkehr. Im untersten Eingabefeld (Erlaube Dienst) fügen Sie nun über einen Klick mit der rechten Maustaste eine Regel für ausgehende Dienste hinzu.

Es erscheint ein Dialogfenster, wie in Abbildung ((3)) dargestellt. Dort geben Sie den Dienst direkt mit seiner Portnummer an oder wählen ihn über seinen Namen aus der entsprechenden Auswahlliste. Den Dienst POP3S für den sicheren Mailversand finden Sie in der Auswahlliste aber nicht. Erst bei Eingabe der entsprechenden Portnummer 995 erscheint er im Namensfeld.

((3)) Die hier definierte Regel ermöglicht den sicheren E-Mail-Empfang via POP3S.
Wichtige TCP- und UDP-Ports
PortErläuterungProtokoll
80Browsen mit HTTPTCP
443Browsen verschlüsselt mit HTTPSTCP
25Mails versenden mit SMTPTCP
110Mails abrufen mit POP3TCP
995Mails verschlüsselt mit POP3S abrufenTCP
53Namensauflösung (DNS)TCP, UDP
20,21Dateitransfer mit FTP und FTP-DATATCP
123Zeitdienst NTPTCP, UDP
22Secure Shell SSHTCP
68Dynamische IP-Adresszuordnung (DHCP)TCP, UDP

Im gleichen Dialogfeld geben Sie auch die erlaubte Quelle der Verbindung an. Für den PC, auf dem die Firewall läuft, ist das der Firewall-Rechner. Bei Bedarf geben Sie hier stattdessen ein bestimmtes Netzwerk, grundsätzlich jeden Rechner (Jeder) oder alle LAN Clients an. Als LAN Clients gelten alle Rechner im lokalen Netzwerk, die sich über den entsprechenden Netzwerkadapter erreichen lassen. Das dazugehörige Interface definieren Sie bei Bedarf über den Menüpunkt Bearbeiten | Einstellungen | Firewall | Netzwerkeinstellungen.

Abbildung ((4)) zeigt einen kleinen Regelsatz für die Firewall. Der Eintrag 192.168.50.21 im Feld Verbindungen zulassen zu Rechner erlaubt die uneingeschränkte Kommunikation mit der angegebenen IP-Adresse. Verbindungsaufnahmen von diesem Rechner zum lokalen PC blockiert die Firewall allerdings.

((4)) Hier sehen Sie eine typische Grundkonfiguration für den ausgehenden Datenverkehr.

Eingehender Verkehr

Die Richtlinien für eingehenden Verkehr erreichen Sie ebenfalls auf dem Reiter Richtlinien über die Auswahlbox für die Richtung des Netzverkehrs (Bearbeiten der). In den beiden Eingabefeldern unterhalb davon geben Sie neue Regeln ein, indem Sie das entsprechende Dialogfeld über einen Rechtsklick mit der Maus aufrufen.

((5)) Den Zugriff von außen auf den abgesicherten Rechner regeln Sie über die Richtlinie für eingehenden Verkehr.

Im oberen der beiden Fenster räumen Sie je nach Bedarf einzelnen Rechnern oder ganzen Netzwerken unbeschränkten Zugriff auf alle Dienste der lokalen Maschine ein. Dazu identifizieren Sie den zugreifenden Rechner entweder über seine IP-Adresse oder den Hostnamen. Um das komplette lokale Netz anzugeben, ersetzen das letzte Byte der IP-Adresse Ihres Rechner durch "0", im Beispiel aus den Abbildungen also 192.168.50.0.

Sicherer ist es jedoch, den Zugriff auf die Dienste explizit zu regeln. Das erledigen Sie über das untere der zwei Eingabefelder. Bei einem Rechtsklick mit der Maus erscheint eine Dialogbox, die fast genauso aussieht, wie die aus Abbildung ((3)). Es fehlt lediglich in der Auswahlliste der möglichen Quellen der eigene Rechner − was bei eingehendem Verkehr ja durchaus Sinn macht.

Auch hier wählen Sie über den Namen oder die Portnummer den zu gestattenden Dienst. Als mögliche Quellen für Anfragen kommen bei bei ausgehendem Verkehr grundsätzlich alle Rechner (Jeder), das lokale Netz (LAN Clients) oder einzelne Rechner beziehungsweise Netzwerke in Frage.

Am sichersten fahren Sie hier, wenn Sie nur einzelnen Rechnern Zugriff auf genau definierte Dienste gestatten. Ein typischer Fall: Sie wollen bei Bedarf von einem anderen Rechner im lokalen Netz aus per Secure Shell auf den per Firewall abgesicherten PC zugreifen. Eine entsprechende Konfiguration zeigt Abbildung ((6)).

((6)) Diese Regel erlaubt dem Rechner mit der IP-Adresse 192.168.50.21 die Verbindungsaufnahme via SSH.

Ereignisse

Firestarter zeichnet alle blockierten Verbindungen in einer Ereignisliste auf. Sie protokolliert die Uhrzeit, die Richtung der Verbindungsaufnahme, den Port, die Ursprungsadresse, den Protokolltyp und − falls bekannt − den angesprochenen Dienst. Abbildung ((5)) zeigt einige aufgezeichnete Ereignisse.

Das Ereignisprotokoll verwendet verschiedene Farben, um besondere Ereignisse zu markieren. Schwarz zeigt es die Verbindungsversuche, die Firestarter als minder bedrohlich einordnet. Rot markiert es Verbindungsversuche zu Diensten, die eigentlich nicht allgemein zugänglich sein sollten. Diese Einträge sollte man auf jeden Fall im Auge behalten. Ein Eintrag in Grau kennzeichnet als harmlos eingestufte Verbindungsversuche, wie zum Beispiel Broadcasts an alle lokalen Netzteilnehmer.

((7)) Das Ereignisprotokoll führt Details zu allen blockierten Verbindungsversuchen auf.

Mit der rechten Maustaste kann man ein Ereignis direkt bearbeiten. Auf diese Weise legitimieren Sie Verbindungsaufnahmen (Erlauben von Verbindungen von Quelle) oder geben Dienste auf dem Firewallrechner nachträglich frei (Eingehenden Dienst erlauben für Quelle oder Eingehenden Dienst für jeden erlauben). Auch lässt sich die Protokollierung für Ereignisse zu bestimmten Absendern (Deaktivieren der Ereignisse von Quelle) oder Diensten (Deaktivieren der Ereignisse an Port) unterbinden.

In der Ereignisliste in Abbildung ((5)) taucht immer wieder die gleiche Meldung auf: Offensichtlich versucht der Firewallrechner seine Uhr per NTP abzugleichen und eine Verbindung zum Zeitserver aufzubauen, wird aber von der Firewall daran gehindert. Soll der Zeitabgleich per NTP tatsächlich stattfinden, lässt sich eine solche Regel nicht über einen Klick mit der rechten Maustaste anlegen: Auf diese Weise können Sie nur Regeln für eingehende Verbindungen erzeugt werden.

Sie richten trotzdem sehr schnell eine neue Richtlinie für den NTP-Dienst ein. Dazu navigieren Sie zur Bearbeitung der Richtlinien, wählen die Richtlinie für ausgehenden Verkehr und fügen per Rechtsklick im Bereich für die erlaubten Dienste eine neue Regel ein. Sie gestatten den Dienst NTP auf Port 123 von der Quelle Firewall-Rechner und fügen eventuell einen Kommentar der Art Internet-Zeitdienst ein. Nach einem Mausklick auf Richtlinien anwenden in der Symbolleiste ist die neue Richtlinie sofort aktiv.

Tipps für Fortgeschrittene

Auf Basis der Grundkonfiguration fügen Sie je nach Bedarf weitere Regeln hinzu. Kennen Sie dazu notwendige Portnummern nicht, probieren Sie den Dienst einfach aus und beobachten das Ereignisprotokoll. Den so identifizierten Dienst trägt man dann im Regelwerk ein.

Nimmt ein DSL-Router die Einwahl ins Internet vor, findet auf diesem Gerät eine Adressumsetzung zwischen dem externen und internen Netz statt. Eine beliebige Verbindungsaufnahme aus dem Internet kommt dann gar nicht mehr bis zum PC, da dieser eine interne private Adresse hat. In dieser Konstellation können Sie sich ganz auf die Regeln zum Verbindungsaufbau nach draußen konzentrieren.

Die Regeln der Firewall bleiben auch nach dem Beenden von Firestarter erhalten. Ob sie nach einem Neustart des PCs wieder geladen werden, hängt von der Installation ab. Die meisten Distributionen richten bei der Installation von Firestarter ein Startskript für den Bootvorgang ein. Ziehen Sie eine manuelle Installation aus den Quellen vor, entnehmen Sie das entsprechende Vorgehen dem (englischsprachigen) Handbuch [2].

Später können Sie in der Konfiguration von Firestarter den Start respektive Neustart der Firewall mit bestimmten Ereignissen verbinden: So legen Sie fest, ob die Firewall mit dem Programmstart von Firestarter neu geladen werden soll, wenn eine Modemverbindung hergestellt wurde oder der PC per DHCP eine neue IP-Adresse erhalten hat.

Das schon in der Grundkonfiguration recht umfangreiche Firewallskript legt Firestarter im Verzeichnis /etc/firestarter ab. Dort liegen alle Dateien, die Firestarter als Schnittstelle zu Iptables benötigt. Da es sich bei den Dateien um Shellskripte handeln, eignen sie sich bestens als Studienobjekt für den an der Funktionsweise von Firestarter interessierten Anwender. Spezielle benutzerspezifische Regeln kann man zum Beispiel in den Dateien user-post und user-pre ablegen − die erforderliche Syntax beschreibt das Handbuch.

Fazit

Mit Iptables lassen sich flexible und mächtige Firewallsysteme aufbauen, jedoch erfordert die manuelle Konfiguration viel Fleiß und Zeit [3]. Wer eine Personal Firewall einsetzen möchte, dem nimmt Firestarter einen großen Teil dieser Arbeit ab. Der Komfort hat jedoch seinen Preis in der Genauigkeit, mit der man Firewallregeln erstellen kann. So erstellt Firestarter für jeden Port zwei gleichlautende Regeln − eine für TCP, eine für UDP. Es wäre wünschenswert, beim Erstellen von Regeln selbst definieren zu können, ob beide Protokolle gleich zu behandeln sind oder unterschiedliche Regeln erfordern. Trotz dieses kleinen Schönheitsfehlers bietet Firestarter einen guten Einstieg in das Thema Firewall und deckt alles ab, was man diesbezüglich auf einem Home-PC benötigt. (jlu)

Infos
[1] Firestarter: http://www.fs-security.com
[2] Firestarter-Handbuch (englisch): http://www.fs-security.com/docs/
[3] Linux-Firewall konfigurieren: Wolfgang Barth, "Das Firewall-Buch", 3. Auflage, Millin Verlag 2004, ISBN 3-89990-128-2

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Seite drucken | Feedback zu dieser Seite | Datenschutz | © 2019 COMPUTEC MEDIA GmbH

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [EasyLinux] [Linux-Community]