AA_flammen_sxc48772_2645.jpg

© sxc.hu

Feurige Künste

Iptables-GUIs im Vergleich

01.03.2006
Mit dem richtigen Werkzeug ist das Einrichten einer Desktop-Firewall keine Kunst. Wo die distributionseigenen Tools schwächeln, helfen clevere Alternativen weiter.

Mit dem Gespann Netfilter/Iptables [1] bringt der Linux-Kernel bereit out of the box eine mächtige Firewall-Architektur mit. Für das Abfagen und Manipulieren von Netzwerkpaketen zeichnet Netfilter verantwortlich, das Dienstprogramm Iptables erlaubt dessen Konfiguration. Dazu verwendet es allerdings eine recht komplizierte Syntax, zudem erfolgt die Einrichtung der Firewall-Parameter auf der Kommandozeile oder via Skript.

So gilt das direkte Konfigurieren einer Firewall zu Recht als typische Domäne von Netzwerk- und Systemadministratoren: Welcher normale Anwender möchte sich schon gerne in die komplizierte Iptables-Syntax einarbeiten – von dem Erwerb des dazu notwendigen Wissens über Protokolle, Adressen und Ports einmal ganz abgesehen? Diesem Umstand tragen grafische Frontends Rechnung, welche die Arbeit mit Iptables vereinfachen und den Anwender davon entheben, sich profundes Grundlagenwissen zu Paketen und Protokollen anzueignen.

Dieser Artikel klopft ab, inwieweit vier bekannte Distributionen (Suse 10.0, Mandriva 2006, Fedora Core 4 und Ubuntu 5.10) von Haus aus ihre Anwender absichern und welche grafischen Werkzeuge zur Firewall-Konfiguration bereitstellen.

Suse 10.0

Die Suse-Distribution aktiviert die Firewall bei der Installation automatisch, wie Abbildung 1 zeigt. Nach der Einrichtung konfigurieren Sie die Firewall mittels Yast2 unter Sicherheit und BenutzerFirewall. In Abbildung 2 sehen Sie die entsprechende Maske.

Abbildung 1: In diesem Bildschirm entscheiden Sie über die automatische Aktivierung der Suse-Firewall.
Abbildung 2: Die Konfigurationsoberfläche der Suse-Firewall wirkt aufgeräumt und übersichtlich.

Die Oberfläche wirkt aufgeräumt und übersichtlich, einige Besonderheiten sind aber zu beachten. So findet sich unter Schnittstellen das Device any. Es bildet quasi einen Sammeltopf für alle Netzwerkschnittstellen, die nicht einer Zone zugeordnet sind. Daher behandelt die Konfiguration das Device als externe und damit besonders gefährdete Schnittstelle.

Falls der PC nur über eine einzelne Netzwerkschnittstelle verfügt, deaktiviert die Suse Firewall das Masquerading. Das macht Sinn, da das dahinter stehende NAT nur auf einem Router in Frage kommt, der ohnehin zwei Interfaces benötigt.

Die IPsec-Unterstützung ist ebenfalls standardmäßig deaktiviert, was meist keine Probleme bereitet: Sie wird nur für den Betrieb in einem VPN benötigt. Die Einstellungen unter Protokollierungs-Level fallen in der Voreinstellung moderat aus: Die Firewall schneidet nur kritische Pakete mit. Allerdings fließen sonderbarerweise standardmäßig auch nicht akzeptierte Broadcast-Pakete in der internen Zone und der DMZ mit ins Protokoll ein. Gerade in Windows-Umgebungen führt diese Einstellung dazu, dass sich die Log-Files stark aufblähen.

Das Generieren eigener Firewall-Regeln hinterlässt zwiespältige Gefühle. Zwar lassen sich Standard-Dienste bequem über ihren Namen aus einer Drop-Down-Box auswählen und freischalten. Komplizierteres – etwa Freigaben für Bittorrent – erfordern hingegen die explizite Angabe der entsprechenden Portnummer(n).

Da wundert es dann doch, dass Suse seinem Firewall-Frontend keinen Hilfe-Button spendiert hat. Die gesuchte Anleitung findet sich nach einigem Suchen in der SuSE-Hilfe, bedauerlicherweise allerdings nur in englischer Sprache. Wer sich mit Firewall-Begriffen bereits auskennt, hat mit der Dokumentation kein Problem – allen anderen bringt die Hilfe-Funktion nicht wirklich weiter.

Mandriva 2006

Mandriva bietet bereits bei der Installation gleich zwei Dialoge zur Konfiguration der Firewall an. Zunächst konfigurieren Sie hier die generelle Sicherheitsstufe des Rechners. Als Voreinstellung gibt die Distribution hier Hoch vor (Abbildung 3), was für Privatanwender völlig ausreicht.

Abbildung 3: Mandriva erläutert das Einstellen der generellen Sicherheitsstufe gut nachvollziehbar.

Kurz vor Ende der Installation im Schritt Zusammenfassung haben Sie Gelegenheit, die Firewall vor dem ersten Systemstart genauer einzustellen. Dies tut jedoch nur dann Not, wenn Sie Dienste im Internet anbieten wollen. Anderenfalls genügen die von der Distribution getroffenen Vorgaben völlig.

Auch nach der Installation des Rechners erreichen Sie die Firewall-Settings jederzeit über das K-Menü unter dem Punkt SystemEinstellungenDen Computer konfigurierenSicherheit. Alternativ geben Sie in einer Shell drakfirewall ein, um den entsprechenden Wizard zu starten.

Dieser besticht durch seine Einfachheit und Übersichtlichkeit (Abbildung 4). Sie können Dienste für den Zugriff aus dem Internet freigeben, die Internetschnittstelle definieren und die Interaktive Firewall aktivieren. Letztere warnt Sie, wenn ein Angreifer versucht in Ihren Rechner einzudringen oder die Firewall einen Portscan registriert. Um gezielt einzelne Ports freizugeben, klicken Sie auf der ersten Seite des Wizards auf den Schalter Fortgeschritten.

Abbildung 4: Der Firewall-Wizard von Mandriva lässt sich intuitiv bedienen.

Mandriva hat dem Firewall-Frontend auch eine ausführliche deutschsprachige Hilfe im HTML-Format spendiert, die Sie über die Menüleiste erreichen. Einziger Schwachpunkt des Werkzeugs: Es ist nicht in der Lage, NAT einzurichten – dies müssen Sie bei Bedarf händisch per Kommandozeile oder Skript erledigen.

Fedora Core 4

Auch der Red-Hat-Spross Fedora Core lässt die Konfiguration der Firewall bereits während der Installation zu (Abbildung 5). Wer nun denkt, dass nach deren Abschluss eine feinere Einstellung der Firewall möglich ist, sieht sich nach einem Klick auf System | Systemeinstellungen | Sicherheitsstufe mit dem mager bestückten Fenster aus Abbildung 6 konfrontiert.

Abbildung 5: Fedora Core 4 konfiguriert die Firewall bereits während der Installation.
Abbildung 6: Die Firewall-Konfiguration von Fedora stellt nur wenige Möglichkeiten bereit.

In der Voreinstellung lässt Fedora – wie bei Suse und Mandriva – keinen Verbindungsaufbau von außen zu. Eine Ausnahme stellen hier lediglich VPN-Verbindungen und und der Druckerdienst CUPS dar. Interessant ist der Abschnitt Sichere Geräte: Setzen Sie hier bei einer Schnittstelle einen Haken, betrachtet Fedora das an diese Schnittstelle angeschlossene Netz als ungefährlich und erlaubt daher grundsätzlich alle ein- und ausgehenden Verbindungen.

Eine Adressumsetzung realisiert Fedora Core 4 als Masquerading und erlaubt es nur für sichere Geräte. Da aber Masquerading im privaten Bereich fast ausschließlich für Internetverbindungen genutzt wird und niemand im Ernst die Internetschnittstelle als sicher einstufen kann, erschließt sich der Sinn dieser Vorgehensweise nicht.

Ubuntu Linux 5.10

Mit Ubuntu Linux findet sich auch ein Debian-Derivat mit Gnome-Desktop im Testfeld. Während der üblichen Debian-Installation bietet Ubuntu keinerlei Möglichkeit zum Einrichten der Firewall. Erstaunlicherweise ändert sich das auch nach der Systemeinrichtung nicht: Die Firewall bleibt vollkommen unkonfiguriert, der Rechner somit völlig offen.

Tatsächlich installiert die Distribution auch kein Tool, um die Firewall einzurichten. Auch unter den unterstützten Paketen findet sich keinerlei GUI-Werkzeug zum Konfigurieren des Paketfilters. Erst nach Aktivieren des Universe-Repository (von Ubuntu nicht unterstützt) liefert eine Suche nach firewall Ergebnisse.

Besitzer eines hinreichend sicher konfigurierten Internet-Routers mögen mit diesem Zustand leben können. Wer hingegen ein DSL-Modem oder vergleichbares verwendet, sieht sich den Gefahren des Internets schutzlos ausgesetzt.

Eigenbau

Die Ergebnisse von Ubuntu lassen die Frage aufkommen, wie dieser Missstand zu entdecken ist und wie man sich in einem solchen Fall selber absichern kann. Aufdecken lässt sich das Problem einfach via sudo iptables -nL . Sieht die Ausgabe so aus, wie in Listing 1 zu sehen, dann ist keine Firewall aktiv.

Listing 1

$ sudo iptables -nL
Passwort:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Das Shell-Script in Listing 2 konfiguriert einen Grundschutz für Ihren PC. Es geht davon aus, dass es sich bei dem PC um einen Einzelplatzrechner handelt und kein LAN vorhanden ist. Es ermöglicht die normale Nutzung des Internet, klammert dabei allerdings Dienste wie etwa Bittorrent aus. Eine Kontaktaufnahme aus dem Internet heraus auf Ihren Rechner ist nicht möglich.

Die Kommentare im Script verdeutlichen dessen Logik. Interessant sind insbesondere die beiden Iptables-Regeln in den Zeilen 52 und 56. Die Loopback-Regel in INPUT (Zeile 52) benötigt Linux für die interne Kommunikation, da die allgemeine Policy auf DROP steht (Zeile 47).

Die Regel in Zeile 56 ermöglicht die Kommunikation: Sie erlaubt Pakete für bereits bestehende Verbindungen (ESTABLISHED) und solche, die zu bestehenden Verbindungen in Bezug stehen (RELATED). Letzteres ist beispielsweise bei aktivem FTP der Fall, aber auch einige ICMP-Pakete, wie beispielsweise Unreachable-Nachrichten, fallen in diese Kategorie.

Da kein Protokoll angegeben ist, passt die Regel auf alle Protokolle. Versucht nun jemand aus dem Internet heraus zu Ihrem Rechner eine Verbindung aufzubauen, greift die Regel nicht, da der Status der Verbindung New ist. Das Paket trifft also auf die Policy und wird verworfen – die Kommunikation kommt nicht zustande. Andererseits steht die Policy in OUTPUT auf ACCEPT: Somit haben Sie alle Freiheiten, Verbindungen aufzubauen.

Listing 2

## Begin script ##
#!/bin/sh
# Script: firewall.sh - konfiguriert eine einfache Firewall
# Autor:  Jörg Harmuth
# Lizenz: GPL
#
# Synopsis: firewall.sh [stop]
#           Der Aufruf von firewall.sh starte die Firewall,
#           mit dem Argument "stop" wird die Firewall gestoppt.
# Variablendefinitionen
#
# IPtables Binary, mit "which iptables" zu ermitteln.
IPT=$(which iptables)
# Zur Sicherheit Chains leeren, beziehungsweise löschen.
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -F
$IPT -X
# Falls die Firewall abgeschaltet werden soll.
case $1 in
  stop)
    $IPT -P INPUT ACCEPT
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT ACCEPT
        echo 0 > /proc/sys/net/ipv4/ip_forward
        exit 0
  ;;
esac
# IP-Forwarding ausschalten.
echo 0 > /proc/sys/net/ipv4/ip_forward
# Syncookie-Support anschalten. Erzeugt eine Fehlermeldung,
# falls nicht im Kernel enthalten. Dann bitte auskommentieren.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# FTP und IRC Module für Connection-Tracking laden.
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
# Policies setzen.
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
# Loopback-Device freischalten.
$IPT -A INPUT -i lo -j ACCEPT
# Pakete erlauben für bestehende Verbindungen
# sowie zu diesen in Bezug stehenden Verbindungen.
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## End Script ##

Die komfortable Variante

Eine komfortable Alternative zu selbst erstellten Skripten stellen distributionsunabhängige grafische Frontends für Iptables dar. Zu den bekannteren Vertretern dieser Gattung zählt der Firestarter [2], der sich besonders leicht bedienen lässt. Zudem handelt es sich um eine Gtk-basierte Anwendung – ideal also für die Ubuntus Standard-Desktop Gnome.

Nach der Installation als Root – entweder aus den Quellen oder über das Paketmanagement der Distribution – fragt Firestarter beim ersten Start nach den zu sichernden Schnittstellen in Richtung Internet und LAN.

Anschließend haben Sie die Möglichkeit, die Internet-Verbindung des abgesicherten Rechners per NAT für das interne LAN freizugeben – Firestarter beherrscht also auch die Einrichtung eines Gateway-Rechners. Für einen Einzelplatz-PC brauchen Sie diese Option nicht.

Damit sind die Konfigurationsarbeiten fürs erste auch schon abgeschlossen: Beim Speichern der Angaben aktiviert Firestarter standardmäßig die Firewall und präsentiert anschließend seine grafische Bedienoberfläche (Abbildung 7). Außerdem richtet er das System so ein, dass bei jedem Neustart auch die Firewall startet, nicht aber die Firewall-GUI.

Abbildung 7: Der Eingangsbildschirm von Firestarter zeigt den Status der Firewall und die aktuellen Verbindungen an.

Ebenso wie beim selbst gestrickten Firewall-Script aus Listing 2 blockiert auch hier die Firewall eine Kontaktaufnahme aus dem Internet heraus. Jeden entsprechenden Versuch protokolliert Firestarter im Reiter Ereignisse (Abbildung 8).

Abbildung 8: Firestarter hat einen Verbindungsversuch geblockt. Sie haben nun die Möglichkeit, die Reaktion auf weitere gleichartige Ereignisse vorzugeben.

Ein Rechtsklick auf das Ereignis bringt das in der Abbildung gezeigte Kontextmenü zum Vorschein, mit dem Sie die künftige Reaktion der Firewall auf gleichartige Verbindungsversuche festlegen. Dadurch wird aus dem Ereignis eine Richtlinie. In der gleichnamigen Registerkarte editieren Sie dieser Regeln durch Rechtsklick (Abbildung 9) oder fügen neue Regeln ein. Dabei gilt die generelle Unterscheidung von eingehendem und ausgehendem Verkehr.

Abbildung 9: Das Bearbeiten oder explizite Anlegen einer Richtlinie erfolgt durch Rechtsklick auf den entsprechenden Bereich.

Haben Sie bei der Einrichtung von Firestarter die Weiterleitung von Internet-Verbindungen (Internet-Verbindungsteilung) aktiviert, so können Sie auch NAT im unteren Bereich der Maske (Dienst weiterleiten) genauer einrichten. Bei einer üblichen Einzelplatz-Konfiguration bleibt diese Funktion aber deaktiviert.

Mit diesen übersichtlich dargestellten und intuitiv zu bedienenden Optionen bringt Firestarter Komfort in die Firewall-Konfiguration. Möchten Sie das Tool automatisch auf Mausklick zur Verfügung haben, anstatt es stets aufzurufen, aktivieren Sie dies im Firestarter-Menü unter Bearbeiten | Einstellungen | Benutzeroberfläche.

Nur in einem Punkt lässt Firestarter bislang zu wünschen übrig: Der Menüpunkt Hilfe verweist auf englischsprachige Hilfe-Seiten, eine Dokumentation in Deutsch fehlt noch.

Fazit

Suse, Mandriva und Fedora Core sichern ihre Benutzer bereits out of the box ausreichend ab und liefern eine grafische Oberfläche zur nachträglichen Konfiguration von Iptables. Das Fedora-GUI ist recht spartanisch geraten, bietet aber für die gängigen Dienste eine bequeme Freigabe in Richtung Internet. Gleiches gilt auch für Mandriva. Wer Wert auf ein granularere Konfiguration legt, ist bei Suse am besten bedient: Hier finden sich auch Settings für IPSec und NAT.

Ubuntu-Anwender haben das Nachsehen und müssen sich um ihre Sicherheit auf Firewall-Ebene selbst kümmern. Befremdlicherweise befindet sich in den von Ubuntu offiziell unterstützten Repositories auch kein grafisches Firewall-Tool – nur das Universe-Repository bietet ein solches an. Diesem nicht mehr zeitgemäß Umstand sollten die Entwickler schleunigst abhelfen.

Glossar

NAT

Network Address Translation. Verfahren, um eine IP-Adresse in einem Datenpaket durch eine andere zu ersetzen. NAT kommt meist zum Einsatz, um den Rechnern im lokalen Netz über eine einzelnen öffentliche IP-Adresse den Zugriff auf das Internet zu ermöglichen.

Router

Vermittlungsrechner, der dafür sorgt, dass bei ihm Daten zum vorgesehenen Zielnetz weitergeleitet werden. Ein Router besitzt für jedes an ihn angeschlossene Netz eine Schnittstelle.

VPN

Virtual Private Network. Ein Computernetz, das zum Transport privater Daten ein öffentliches Netz (meist das Internet) nutzt. Teilnehmer eines VPN können Daten wie in einem lokalen Netzwerk austauschen.

Broadcast

Rundsendung. Dient meist der gleichzeitigen Übermittlung von Adress- oder Dienste-Informationen an alle Netzwerkteilnehmer.

DMZ

Demilitarized Zone. Ein geschütztes Netz für einen oder mehrere Computer, das sich zwischen dem internen Netz und dem Internet befindet und nach beiden Seiten durch Firewalls abgetrennt wird. Die DMZ ermöglicht, nach außen Dienste bereitzustellen, ohne das interne Netz zu gefährden.

Portscan

Überprüfung, welche Ports auf einem Zielsystem geöffnet sind. Auf diese Weise lässt sich darauf schließen, welche Dienste ein Rechner anbietet. Eigentlich protokollkonform und damit völlig opportun, kann die Information über die geöffneten Ports von Angreifern aber auch missbraucht werden.

Masquerading

Bezeichnung für eine spezielle Form von NAT. Beim Masquerading schreibt die Firewall nicht nur IP-Adressen, sondern auch Portnummern um. Daher bezeichnet man Masquerading auch als NAPT (Network Address and Port Translation).

ICMP

Internet Control Message Protocol. ICMP ist ein Bestandteil der Internet-Protokoll-Familie TCP/IP und dient zum Austausch von Fehler- und Informationsmeldungen innerhalb des Netzwerks.

Infos

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

[2] Firestarter: http://www.fs-security.com/

Der Autor

Jörg Harmuth ist selbständiger IT-Security Consultant und Netzwerkspezialist. Seine Freizeit verbringt er am liebsten mit seinem Nachwuchs und der Erforschung der Untiefen von den OSI-Layern drei und vier.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare