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.



