![]() |
|
||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
||
|
TFT Monitor bei
Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich. Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps. Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung. Günstige Shareware Programme als direkte Downloads im Software Portal. Bis zu 70% sparen durch Preisvergleich. |
||
|
Jörg Harmuth
| README |
|
Die großen Distributionen bringen grafische Werkzeuge zur Firewall-Konfiguration mit. Der Artikel untersucht deren Funktionalität und stellt die leistungsfähige, distributionsunabhängige alternative Firestarter vor. |
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.
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 Benutzer | Firewall. In Abbildung ((2)) sehen Sie die entsprechende Maske.
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 Routern in Frage kommt, die ohnehin zwei Interfaces benötigen.
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 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.
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 System | Einstellungen | Den Computer konfigurieren | Sicherheit. 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.
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.
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.
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.
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.
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 |
01 ## Begin script ## 02 #!/bin/sh 03 04 # Script: firewall.sh - konfiguriert eine einfache Firewall 05 # Autor: Jörg Harmuth 06 # Lizenz: GPL 07 # 08 # Synopsis: firewall.sh [stop] 09 # Der Aufruf von firewall.sh starte die Firewall, 10 # mit dem Argument "stop" wird die Firewall gestoppt. 11 12 # Variablendefinitionen 13 # 14 # IPtables Binary, mit "which iptables" zu ermitteln. 15 IPT=$(which iptables) 16 17 # Zur Sicherheit Chains leeren, beziehungsweise löschen. 18 $IPT -t mangle -F 19 $IPT -t mangle -X 20 $IPT -t nat -F 21 $IPT -t nat -X 22 $IPT -F 23 $IPT -X 24 25 # Falls die Firewall abgeschaltet werden soll. 26 case $1 in 27 stop) 28 $IPT -P INPUT ACCEPT 29 $IPT -P FORWARD ACCEPT 30 $IPT -P OUTPUT ACCEPT 31 echo 0 > /proc/sys/net/ipv4/ip_forward 32 exit 0 33 ;; 34 esac 35 36 # IP-Forwarding ausschalten. 37 echo 0 > /proc/sys/net/ipv4/ip_forward 38 # Syncookie-Support anschalten. Erzeugt eine Fehlermeldung, 39 # falls nicht im Kernel enthalten. Dann bitte auskommentieren. 40 echo 1 > /proc/sys/net/ipv4/tcp_syncookies 41 42 # FTP und IRC Module für Connection-Tracking laden. 43 /sbin/modprobe ip_conntrack_ftp 44 /sbin/modprobe ip_conntrack_irc 45 46 # Policies setzen. 47 $IPT -P INPUT DROP 48 $IPT -P FORWARD DROP 49 $IPT -P OUTPUT ACCEPT 50 51 # Loopback-Device freischalten. 52 $IPT -A INPUT -i lo -j ACCEPT 53 54 # Pakete erlauben für bestehende Verbindungen 55 # sowie zu diesen in Bezug stehenden Verbindungen. 56 $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 57 58 ## End Script ## |
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.
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))).
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.
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.
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. (jlu)
| 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. |
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.
Druckerfreundliche Version |
Feedback zu dieser Seite
|
Datenschutz |
© 2010 Linux New Media AG
[Linux-Magazin]
[LinuxUser]
[EasyLinux]
[Linux-Community]
[Ubuntu User]
[Linux Technical Review]
[Linux Magazine]
[Linux Pro Magazine]
[Ubuntu User]
[EasyLinux Poland]
[Linux Magazine Poland]
[Linux Magazine Brasil]
[EasyLinux Brasil]
[Linux Magazine Spain]