Firewall-Konfiguration mit KMyFirewall

Aus LinuxUser 01/2007

Firewall-Konfiguration mit KMyFirewall

Kein Durchgang

Unter KDE bietet KMyFirewall ein komfortables grafische Frontend zur Konfiguration des Iptables-Paketfilters.

In Zeiten des weltumspannenden Internets und der permanent gegebenen Gefahren durch böswillige Angreifer ist es wichtiger denn je, den eigenen PC oder das eigene Netzwerk gegen Angriffe effektiv abzusichern. Hierzu dienen Firewalls. Erfreulicherweise bringt das freie Betriebssystem Linux so ein System gleich mit. Zudem integrieren immer mehr Entwickler eine sinnvolle Firewallkonfiguration bereits in die Minimalinstallation des Linux-Systems, so dass Sie nicht wie bei anderen – interessanterweise besonders löchrigen – Systemen erst die Sicherheit teuer zusätzlich zu bezahlen brauchen.

Die Bandbreite der unter Linux einsatzfähigen Firewallsysteme ist enorm: Sie reicht von auf den eigentlichen Einsatzzweck beschränkten Firewalls wie Firestarter oder FWBuilder, die größtenteils auf die in Linux bereits – ab Werk – implementierten Sicherheitslösungen Iptables/Netfilter aufsetzen, über komplette von CD oder DVD startbare reine Firewall-Distributionen wie IPCop, die zusätzlich auch noch Serverfunktionen integrieren, bis hin zu oftmals teuren kommerziellen Lösungen wie Checkpoint, Injoy oder Gateprotect.

Diese bieten meist zusätzliche Funktionalität wie den Aufbau eines durch VPN-Tunneling gesicherten Netzwerkes oder so genannte QoS-Dienste (Quality of Service), welche nichts anderes bezeichnen als eine Bandbreitenregulierung und Lastverteilung – was insbesondere bei großen LANs mit schwachbrüstigen DSL- oder ISDN-Zugängen von Nutzen ist.

Was die reine Firewallkonfiguration anbetrifft, so bieten diese Lösungen meistens nicht wesentlich mehr Funktionalität als die Open-Source-Programme, da letztere aufgrund der seit Version 2.4 in den Linux-Kernel integrierten Iptables/Netfilter-Firewall ebenfalls über ein sehr leistungsfähiges System als Basis verfügen. Neben der reinen Paketfilterung beherrscht es auch die so genannte Stateful Inspection, es kann also komplette Datenströme analysieren und gegebenenfalls abblocken.

Graue Theorie

Grundsätzlich kommt jeder interessierte Anwender, der die Sicherheitsthematik ernst nimmt, nicht um ein gewisses Basiswissen herum, soll sich die Firewall nicht hinterher löchriger als ein Schweizer Käse erweisen. Die grundlegenden Protokolle, um die es beim Einrichten einer Firewall geht, sind primär das TCP- und das UDP-Protokoll sowie das ICMP-Protokoll.

Das TCP-Protokoll dient hauptsächlich – vereinfacht ausgedrückt – als Kontrollprotokoll der Kommunikation über IP. Zwei Rechner, die Kontakt miteinander über TCP/IP aufnehmen, bauen die Verbindung nicht nur über das recht umständlich wirkende Standardverfahren (in der Fachsprache: “Three-way-handshake”) auf und nach dem Senden der Daten wieder ab, sondern es wird auch “ausgehandelt”, wann Empfangsbestätigungen gesendet werden müssen. Bleibt die Empfangsbestätigung aus, so werden die seit der letzten Bestätigung versandten Daten nochmals auf die Reise geschickt, um die Integrität der Datenströme zu gewährleisten.

Damit über eine einzige Verbindung gleichzeitig mehrere Datenströme zu verschiedenen Anwendungsprogrammen gelangen können, arbeitet TCP Port-orientiert. Jede Anwendung hat einen standardisierten Port auf der Serverseite, über den die Datenströme zu ihrem Empfänger geleitet werden. Auf der Clientseite sind die Ports frei wählbar.

Das UDP-Protokoll ist zwar ebenso wie TCP ein auf Layer 4 des ISO/OSI-Schichtenmodells angesiedeltes Protokoll zur Datenübertragung, es arbeitet jedoch verbindungslos: Die Datenübertragung wird nicht kontrolliert. Durch diese fehlende Kontrolle ist UDP naturgemäß erheblich schneller als TCP.

Beim ICMP-Protokoll handelt es sich um ein auf Layer 3 des ISO/OSI-Schichtenmodells angesiedeltes Protokoll. Es dient der Übermittlung von Fehler- und Diagnosenachrichten. Die bekannteste Anwendung des ICMP-Protokolls ist der so genannte Ping, mit dem man die Erreichbarkeit eines Rechners im Internet oder auch im lokalen Netz mittels eines Ping-Pong-Verfahrens überprüft.

Iptables/Netfilter

Mit der Kernelversion 2.4 löste Iptables/Netfilter die zuvor verwendeten Firewallsysteme Ipchains und – zu Urzeiten – IPFwAdm abgelöst. Dabei blieb die Befehlssyntax unter Iptables nahezu identisch mit jener von Ipchains, so dass ältere Semester in der Netzwerkadministration unter Linux nicht komplett umdenken mussten. Die Iptables-Firewall wird – wie der Name bereits andeutet – in Form von Tabellen in Textform konfiguriert.

In einer Textdatei definiert man also Regeln und Regelketten für den Umgang mit Datenpaketen. Auf jedes Paket wird der Regelkanon angewendet. Zusätzlich zur reinen Paketfilterung beherrscht Iptables/Netfilter auch noch die Adressumsetzung (NAT). Voraussetzung für den Einsatz der Iptables/Netfilter-Komponente ist ein entsprechend vorkonfigurierter Kernel, bei dessen Kompilierung die Firewall aktiviert wurde.

Dies ist bei allen neueren Distributionen der Fall, so dass eine entsprechende Iptables-Regelkettentabelle lediglich im entsprechenden Runlevel eingetragen werden muss, um bei jedem Hochfahren des Systems aktiviert zu werden.

Doch es gibt stets zwei Seiten einer Medaille: So schön es klingt, Regeln in Tabellenform zu entwerfen, so schnell kann eine solche Regeltabelle auch unübersichtlich werden und dann unter Umständen ihren Zweck durch eine unbrauchbare Konfiguration verfehlen. Viele Anwender, die nur jene Betriebssysteme kennen, die nahezu ausschließlich mit der Maus zu bedienen sind, schreckt zudem die Arbeit auf der Kommandozeile ab.

Grafische Firewall

Unter KDE gibt es inzwischen mit KMyFirewall ein grafisches Tool, das sich auch für die Firewall-Konfiguration großer Netze eignet. KMyFirewall setzt auf Iptables auf und bietet daher dessen Funktionsumfang. Es ist zumeist jedoch nicht regulärer Bestandteil der gängigen Distributionen. Die Quellpakete von KMyFirewall finden Sie auf der Projekt-Homepage [1] sowie auf der Heft-CD. Sie übersetzen Sie mit dem üblichen Dreisatz:

root# ./configure --prefix=/KDE-Install-Path/ --with-qt-dir=/QT-Install-Path/
root# make
root# make install

Als Voraussetzungen sind die Qt3-Bibliothek sowie automake und autoconf zuvor zu installieren, um Abhängigkeitsprobleme zu vermeiden. Bei der Installation wird im Untermenü System ein Eintrag KMyFirewall angelegt, sodass die Konfiguration der Firewall bequem per Mausklick beginnen kann.

Nach dem Start und der anschließenden Eingabe des Root-Passworts öffnet sich ein Fenster, in dem Sie auswählen, ob mithilfe eines Assistenten eine neue Regeltabelle angelegt oder eine bestehende Vorlage zur individuellen Anpassung geladen werden soll. Zusätzlich können Sie hier auch eine bereits angepasste Tabelle laden oder zum kompletten Neuanlegen den alten Regelsatz löschen.

Regeln definieren

Nach dem Klick auf den Wizard zum Anlegen einer neuen Tabelle für eine einzelne Arbeitsstation führt Sie dieser durch den Aufbau des Regelsatzes. Dabei definieren Sie die Filterregeln logisch gruppiert nach hereinkommenden und hinausgehenden Paketen, gegebenenfalls auch nach weiterzuleitenden Datenströmen. Dabei liefert der Wizard stets einige grundlegende Informationen zu den betroffenen Protokollen und deren Sicherheit mit (Abbildung 1).

Abbildung 1: Der Wizard erleichtert die Einrichtung von KmyFirewall.

Abbildung 1: Der Wizard erleichtert die Einrichtung von KmyFirewall.

Es besteht überall die Möglichkeit, das Logging zu aktivieren, um so eventuell auftretende Ungereimtheiten später anhand der Logdateien klären zu können. Eine weitere wichtige Funktion besteht darin, den Zugang zu einzelnen Diensten im Internet zu beschränken. So verbieten Sie beispielsweise per Mausklick der Arbeitsstation den Zugang zu FTP-Servern im Internet. Außerdem lässt es KMyFirewall zu, so genannte Malicious-, Trusted- und Forbidden-Server zu definieren, zu denen der Zugang entweder kontrolliert oder ganz unterbunden wird (Abbildung 2).

Abbildung 2: Hier blockt KMyFirewall unerwünschte Hosts.

Abbildung 2: Hier blockt KMyFirewall unerwünschte Hosts.

Haben Sie die entsprechenden Filter- und Funktionsdefinitionen durchlaufen, können Sie die soeben neu angelegte Tabelle in Textform überprüfen. Diese Prüfung dürfte jedoch für Anfänger oder Umsteiger eher problematisch sein, da das frisch generierte Iptables-Shellskript bereits Grundkenntnisse in der Bash-Programmierung unter Linux voraussetzt. Die Verwendung von Variablen sowie if– und case-Anweisungen macht die Tabelle für den Neuling schnell unübersichtlich und wenig aussagekräftig.

Daher bietet es sich an, nach dem Speichern des Regelsatzes die Prüfung über das Hauptfenster von KMyFirewall vorzunehmen. Im rechten Teil des Fensters sehen Sie die definierten Regeln, nach Ketten (engl.: “chains”) gruppiert, die Sie durch einen Mausklick auf das vorangestellte Pluszeichen expandieren. Im linken Teil stellt KMyFirewall sehr übersichtlich anhand von grün leuchtenden Radiobuttons die aktivierten Filter-Restriktionen dar.

Da Iptables die Regelsätze stets in ihrer Reihenfolge nach von oben nach unten abarbeitet, können Sie diese auch nach oben oder unten verschieben. Bei Bedarf modifizieren Sie über die Editierfunktion nachträglich einzelne Regeln, um zum Beispiel die Stateful Inspection einzuschalten oder ein Limit für die Abwehr von DoS-Attacken (Denial of Service) zu definieren (Abbildung 3).

Abbildung 3: KMyFirewall stellt die Regelsätze übersichtlich dar.

Abbildung 3: KMyFirewall stellt die Regelsätze übersichtlich dar.

Nachdem Sie die Firewallregeln definiert und abgespeichert haben, genügt ein Klick auf den Schalter Run Firewall, um die Firewall einzuschalten. Soll sie bei jedem Systemstart automatisch aktiviert werden, klicken Sie man auf den Button Install Firewall, was nach einer Sicherheitsabfrage den entsprechenden Prozess in die Runlevel-Skripte einträgt.

Über den manuellen Aufruf von KMyFirewall modifizieren Sie bei Bedarf jederzeit Regelsätze auch noch nachträglich, wenn sich beispielsweise eine Lücke im bestehenden System gezeigt hat. Zudem bietet KMyFirewall durch den Editiermodus erfahrenen Administratoren die Möglichkeit, durch manuelle Eingabe von neuen Ketten oder Regeln selbst große Netze sehr komplex und gleichzeitig bequem abzusichern, wobei natürlich zum Beispiel auch die Adressumsetzung (NAT) zur Verfügung steht.

Fazit

Bei KMyFirewall ist es den Entwicklern gelungen, die Komplexität der Iptables/Netfilter-Architektur in eine einfach zu bedienende grafische Oberfläche zu packen, ohne dass dabei Funktionalität verloren ginge.

Das Programm eignet sich sowohl für den ambitionierten Privatanwender als auch für den Netzwerkadministrator, der seinen Server mit KDE betreibt und die Unübersichtlichkeit der Iptables-Regelsätze scheut. Dennoch verlangt die Aufgabe nach wie vor zumindest grundlegende Kenntnisse der Netzwerktechnik – vor allem des ISO/OSI-Schichtenmodells und der diversen darauf aufbauenden Protokolle. Nur so lassen sich mögliche Angriffspunkte und Schwachstellen erkennen und beheben.

Schließlich sollte jeder sicherheitsbewusste Anwender – egal, ob auf dem heimischen PC Workstation oder auf dem Server – vor der endgültigen Inbetriebnahme der Firewall einschlägige Tests durchführen: Programme wie Hping, Nmap oder Nessus klopfen die Funktionen der Firewall ab und prüfen ihre Belastbarkeit schon vor dem Einsatz in freier Wildbahn. Denn hat ein Angreifer erst einmal eine Schwachstelle entdeckt, ist es meistens schon zu spät …

LinuxUser 01/2007 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