 |
 |
 |
Sicherheit: Der kleine Firewall Background
|
|
 |
|
Geschrieben von Tomas auf Wednesday, 09.October. @ 14:20:24 CEST
von Tomas
|
| |
Es gibt leider nicht die Firewall, sondern eine ganze Menge verschiedener Techniken, die in einer Firwall implementiert sind.
Für den Benutzer wird es durch die vielen eingesetzten Techniken natürlich nicht einfacher, den wichtigen Überblick über das System bzw. den möglichen Sicherheiten zu behalten.
Hier möchte ich Euch nur einen kleinen Überblick geben und gezielt auf Firewall Techniken im Linux Kernel hinweisen.
Paketfilter unter Linux
Im Standardkernel bietet Linux bereits eine Firewall an, die viele der benötigten Techniken nutzt.
Während der Entwicklung des Kernels unter Linux wurden aber der IP-Stack sowie die
Administrationstools mehrfach neu implementiert. Konnte man mit ipfadm (Kernel 2.0) schon umfangreiche Filter definieren, brachte das ipchain (Kernel 2.2) eine höhere Leistung und noch mehr Sicherheitsvorkehrungen. Das neue sind die Filterketten (Chains), Routing an Hand
der Quelladresse (normalerweise dient nur die Zieladresse als Routinginformation), Port
Forwarding, transparente Proxies, QoS (Prioritätszuordnung zu IP-Paketen), IPv6 Unterstützung und IP-Masquerading/NAT.
Im Kernel 2.4 wurden weitere Features eingeführt, etwa Stateful Inspection, Traffic Shaping
(Bandbreitenbegrenzung), ausgeklügelte NAT-Optionen (wie das Umsetzen der Quell- und Ziel-Adresse)
und das ganze mit Netfilter/iptables.
Die genannten Tools dienen lediglich der Konfiguration der Paketfilter, die wirkliche Filterung
erfolgt dann im Kernel.
Der Kernel sollte dazu natürlich auch entsprechend konfiguriert werden. Wichtig sind dabei die
Filterketten (Chains).
Es existieren die Ketten INPUT, OUTPUT und FORWARD. Die eingehenden und für den lokalen Host
bestimmten Pakete werden in der Chain INPUT abgearbeitet, ausgehende in der Chain OUTPUT.
Pakete, die zwischen zwei Netzwerkkarten weitergeleitet werden, werden in der Chain FORWARD
abgearbeitet.
Unterschiede der Chains zwischen Kernel 2.4 und 2.2 liegt an der Weiterleitung der Pakete von
allen drei Chains (kernel 2.2).
Was ist NAT eigentlich?
Das NAT hat eigentlich nur sehr wenig mit einer Firewall zu tun, wird aber oft auf den Firwalls implementiert. NAT und IP-Masquerading werden häufig synonym benutzt, genau genommen ist Masquerading unter Linux nur ein Spezialfall von NAT.
Beim NAT werden Adressen ausgetauscht, um zum Beispiel die IP-Adresse der internen Rechner vor
dem Internet zu verbergen. Hierbei ersetzt die Firewall die Absender-Adresse durch eine andere
IP-Adresse, und ändert bei einer Antwort zur eigentlichen Adresse zurück. Diese Aktionen sind
für den Client und den Server transparent (Prinzip wie bei Proxies), die Gengenseite sieht aber
nur die geänderte IP nich aber die ursprüngliche.
Ein Application Level Gateway, was ist das den jetzt?
Firewalls können aber nicht nur mit Paketfiltern umgehen. Die Paketfilter haben zwar den Vorteil,
für alle möglichen Protokolle auf TCP/IP-Basis geeignet zu sein, aber kennt man die Applikationen,
lassen sich noch genauere Regeln definieren.
Ein Application Level Gateway sitzt meist als Proxy zwischen Client und Serever.
Der Client baut eine Verbindung zum besagten Proxy auf und bittet den Proxy um eine Verbindung zum
gewünschten Server. Der Proxy stellt diese Verbindung dann zur Verfügung und leitet die Daten
weiter oder blockt sie. Der Proxy kann:
- Authentifizierung vor der Nutzung von Services verlangen
- Content Filter integrieren
- Virentests durchführen
- Activ-X-Controls verbieten
- Ressourcen durch Caching-Mechanismen schonen (z.B. Squid-Proxy)
- Alle personbezogenen Daten ausfiltern
Problem ist dabei die Clientunterstützung des Proxies. Der Proxy muss ja wissen, welcher Server
da gemeint ist. Eine Lösung wäre der Einsatz von generischen Proxy-Protokollen, mit dem sich
jeder Client leicht ändern lässt, etwa SOCKS.
Man kann natürlich auch das Protokoll im TCP/IP Stack des Betriebssystem integrieren. Setzt man die
transparenten Proxies ein, so entfällt diese Problematik.
Was meint man mit Stateful Filter?
Damit meint man die Behandlung von Antwortpaketen einer TCP/IP-Verbindung. Dies gibt es aber leider
nicht für UDP oder ICMP. Ebenfalls gibt es ein Problem, wenn die Headerinformationen manipuliert
worden sind. Dies ist sogar eine beliebte Freizeitbeschäftigung mancher Cracker. Damit sind diese Informationen für die Firewall nicht vertrauenswürdig.
Die Stateful Paket Filter (also ein zustandsbehafteter Paketfilter) merkt sich den tatsächlichen
Verbindungsstatus. Der Stateful Filter protokolliert mit, wann und welche Verbindung aufgebaut
wurde und prüft auch die nachfolgenden Daten dieser Verbindung.
Unter dem Linux Kernel 2.4 können die folgenden Zustände einer Stateful Inspection definiert
werden:
- ESTABLISHED (bestehende Verbindung)
- NEW (Verbindungsaufbau)
- RELATED (Verbindungsaufbau in zusammenhang mit einer bestehenden Verbindung)
- INVALID (ungültige oder nicht existierende Verbindung)
Linux hat aber noch weitere Möglichkeiten, solche manipulierten Datenpakete aufzuspüren.
Ein XMAS-Scan setzt alle Flags im TCP-Header, um die Firewall zu verwirren und auch zu analysieren.
Eine gute Firewall sollte sich von solchen Paketen nicht ärgern lassen.
Aber nicht nur Flags können gesetzt werden, auch die Absender-IP-Adressen können gefälscht werden
(nennt man auch IP-Spoofing). Kommt ein solches Paket an die externe Netzwerkarte, sollte die
Firewall wie wild Alarm schlagen.
Also Netzwerkkarten über die Daten gesendet oder empfangen werden gehören in eine solche Regel.
Linux gibt einem auch die Möglichkeit die MAC-Adressen in eine Filterregel mit aufzunehmen
(OSI-Schicht 2).
Was für Regeln gibt es überhaupt?
In einer Filterregel geben wir erstmal an, was überhaupt gefiltert werden soll, z.B. filtern der
FTP Anfrage von einem Host zum anderen Host. Jetzt können wir zusätzlich Aktionen (Targets)
festlegen, wie mit den Datenpaketen verfahren werden soll.
Linux kennt diese zwei wichtigsten Targets:
- ACCEPT (Pakete annehmen und weiterleiten)
- DROP (Pakete verwerfen)
Je nach Typ der Firewall gibt es weiter Aktionen:
- REJECT (wie Drop nur das der Absender informiert wird)
- MASQ/NAT (IP-Adresse und Port ändern)
- REDIRECT (das Paket zu einem anderen Port umleiten)
- CRYPT (Verschlüsseln, wie bei VPN)
- LOG (Protokollierung der Datenpakete)
Bei einigen Firewalls können die Filterregeln auch auf einen Zeitraum eingeschränkt werden. Linux
kann sogar die Anzahl der Prüfungen einer Regel pro Zeiteinheit einschränken, somit können die
Denial of Service (DoS)-Attacken abgeschwächt werden (not bad).
Wie oder Wo setze ich die Firewall nun ein?
Wichtig ist ist zu prüfen, ob es noch weitere Verbindungen ins Internet gibt. ein vergessenes Modem
und schon ist das mit der Sicherheit voll nach hinten losgegangen.
Stellt man keine eigenen Dienste zur Verfügung, so braucht man sich nur den Netzzugang sichern.
Mit den eigenen Diensten wird die Sache schon aufwändiger. Hier werden oft Pufferzone oder DMZ
(Demilitaridierte Zonen) in das Konzept mit integriert.
Diese DMZ trennt dann das Internet vom lokalen Netzwerk. Eine weitere Alternative wäre das
kaskadieren von Firewalls, dabei wird die DMZ zwischen den Firewalls plaziert. Also eine
Firewall zwischen Internet und DMZ und die zweite Firewall zwischen DMZ und lokalen Netzwerk.
Wer jetzt auch noch einen grossen Geldbeutel hat, wird natürlich die beiden Firewalls von
unterschiedlichen Herstellern beziehen. Im Fall einer Sicherheitlücke müssen nicht immer beide
Firewalls betroffen sein.
Fazit
Eine Absolute Sicherheit wird es mit Firewalls aber auch nicht geben. Die kann man nur erreichen,
in dem man den Internetzugang kappt.
Zusätzlichen Maßnahmen, wie NIDS (Network Intrusion Detection Systems) oder das Härten der Server
können zusätzliche Sicherheit geben.
Und für Administratoren bedeutet das:
- richtig konfigurieren
- Sicherheit-Patches einspielen
- Logs prüfen
- regelmäßige Wartung
|
|
| |
 |
|
 |
| Login |
|
Kostenlos registrieren!. Gestalten Sie Ihr eigenes Erscheinungsbild. Passen Sie das Seitenlayout Ihren Wünschen an
|
|
 |
 |
 |
 |
 |
 |
|
 |
| Artikel Bewertung |
|
durchschnittliche Punktzahl: 5 Stimmen: 2

|
|
 |
 |
 |
 |
 |
|