Durch die zunehmende Vernetzung von Firmen, Privathaushalten, Schulen, anderen öffentlichen Einrichtungen, und deren Anbindung an das Internet, müssen diese lokalen Netze vor Angriffe aus dem Internet, geschützt werden. Doch auch Angriffe aus dem eigenen Netz sind keine Seltenheit. Der Angreifer sitzt häufig in den eigenen Reihen.
Ohne eine Firewall bemerken die Netzadministratoren die Einbrüche durch Angreifer aus anderen Netzen oder dem Internet oftmals nicht.
Eine Firewall kann jedoch nur vor Angriffen schützen, wenn sämtlicher Datentransfer über die Firewall läuft. Die Firewall muß als Schnittstelle zwischen den angrenzenden Netzen dienen. Ist es dem Angreifer möglich, den Firewallrechner zu umgehen, so hat diese Ihr Ziel verfehlt, da sie keinen ausreichenden Schutz darstellt.
Beim Betrieb einer Firewall muß die gesamte Sicherheitsphilosophie
beachtet werden. Eine Firewall ist nur ein Glied in einer Kette von Sicherheitsvorkehrungen,
und bietet allein noch keinen ausreichenden Schutz vor Angriffen.4
Paketfilter Firewall
Sie ist das Thema dieses Dokuments. Eine Paketfilter Firewall analysiert
den gesamten Datenverkehr im Netzwerk über die Informationen im Header
eines jeden Paketes. An Hand von aufgestellten Regeln (was darf sein, was
nicht) wird entschieden, ob das Paket seinen Weg fortsetzen darf, oder
ob es geblockt wird.
Proxy Firewall
Ein Proxy wird genutzt, um ausgehenden Datenverkehr zu überwachen.
Alle Verbindungen werden protokolliert. So ist es jederzeit möglich
zu prüfen, was für Verbindungen zu einem bestimmten Zeitpunkt
aktiv waren und von welcher Quelle diese Verbindungen ausgelöst wurden.
Zusätzlich bieten viele Proxies die Möglichkeit, Daten zwischenzuspeichern),
um Übertragungsvolumen zu sparen und den Zugriff auf die Daten zu
beschleunigen. Alle Daten eines per Proxy angebotenen Dienstes werden an
eine Applikation auf dem Firewallrechner weitergeleitet, die dann die Verbindung
zum Ziel übernimmt. So bleiben die eigentlichen Quellen der Kommunikation
geschützt im Verborgenen. Alle Anfragen scheinen vom Proxyserver zu
kommen.
Auf diese Art von Firewall (auch Application Level Gateway genannt) soll in diesem Dokument nicht näher eingegangen werden.Grundlegende Begriffe und Mechanismen
Es gibt noch einige weitere Blöcke, die von der IANA, Internet
Assigned Numbers Authority, reserviert sind.12
Diese nur lokal gültigen Adressen müssen also durch offizielle IP-Adressen ersetzt werden. Dieser Vorgang nennt sich Network Adress Translation (NAT) oder Masquerading.16
Hier ersetzt der Rechner mit der Verbindung ins Internet alle ankommenden Pakete aus dem LAN mit seiner eigenen, gültigen IP-Adresse. Informationen über die einzelnen maskierten Verbindungen werden in Routingtabellen gespeichert, um anschließend ankommende Pakete, die für das interne Netz bestimmt sind (von aus dem LAN initiierten Verbindungen), wieder zu demaskieren.
Während beim normalen NAT m lokale Adressen auf n offizielle maskiert werden (m:n Zuordnung) ist das Masquerading ein Sonderfall von NAT. Hier werden alle lokalen Adressen auf eine gültige IP-Adresse maskiert (m:1 Zuordnung).
Die Vorteile von NAT:
Hier nun einige wichtige Portnummern:
Ports mit Nummer unter 1024 werden als privilegierte Ports bezeichnet.
Diese Ports werden von den verschiedenen Servern benutzt. Die Server warten
hier auf Verbindungen aus dem Netz.
Ports zwischen 1024 und 65535 werden als unprivilegierte Ports bezeichnet.
Sie werden von Clients für Verbindungen genutzt.
Zusätzlich sind Ports zwischen 1024 und 49151 von der IANA registriert.
Sie können entweder als normale unprivilegierte Ports benutzt
werden, oder hier läuft ein bestimmter Dienst, wie z.B. das X-Windows
System, die grafische Benutzeroberfläche unter Linux. Die ursprüngliche
Idee war, auf diesen höheren Ports Dienste laufen zu lassen, die nicht
über root-Privilegien verfügen.18
Durch Port Mapping lassen sich auch transparente Proxies realisieren.20
In den nächsten Kapiteln werden die einzelnen Protokolle erklärt.
Der Header enthält
Der Header enthält:
Eine TCP Verbindung läßt sich am Besten mit einem Telefongespräch
vergleichen. Eine Verbindung zum Informationsaustausch ist hier sichergestellt.
Kommen am anderen Ende der Leitung nicht alle gewünschten Informationen
an (z.B. durch Rauschen in der Leitung) wird einfach erneut um diese gebeten.
1) Ein Webserver läuft auf einem Computer im Internet und wartet
auf Verbindungen auf dem TCP-Port 80. Ein Benutzer greift auf den Webserver
zu, in dem er eine Webseite dieses Servers abruft. Er gibt dazu die URL23
in seinen Browser ein. Die URL wird durch einen Nameserver in die IP Adresse
des Hosts aufgelöst. Der Browser belegt nun einen unprivilegierten
Port, z.B. 24000, und sendet eine Verbindungsanfrage an den Webserver.
Dieses TCP Paket hat z.B. folgenden Header:
Protokoll: TCP
Quelladresse: 114.115.12.11
Quellport: 24000
Zieladresse: 195.20.202.1
Zielport: 80
Flags: SYN (connection synchronization request)
Das SYN Flag wird immer bei einem Verbindungsaufbau gesendet. Diesem SYN Flag folgt eine Synchronisations Sequenz Nummer, die vom Client vergeben wird (hier beispielsweise 14000).
2) Der Webserver empfängt das Paket des Clients. Er antwortet auf das SYN Flag mit einer Bestätigung, dem ACK Flag. Der Server teilt dem Client dadurch mit, daß er seine Verbindungsanfrage empfangen hat. Diesem ACK Flag folgt die Synchronisations Sequenz Nummer des Clients, die vom Server um eins erhöht wurde (14001). Außerdem sendet der Server nun ein weiteres SYN Flag, mit dem er ebenfalls einen Verbindungsaufbau bekanntgeben will. Der Server gibt diesem Flag seine eigene Synchronisations Sequenz Nummer (z.B. 34008). Die Verbindung ist nun halb geöffnet.
Dies ist der Header des vom Server zurückgesendeten TCP Pakets:
Protokoll: TCP
Quelladresse: 195.20.202.1
Quellport: 80
Zieladresse: 114.115.12.11
Zielport: 24000
Flags: ACK (acknowledgement), SYN (connection synchronization request)
Der Client Rechner empfängt das Paket des Servers und antwortet
auf das SYN Flag des Servers mit einem ACK Flag und einer um eins erhöhten
Synchtonisations Sequenz Nummer, die dem Flag vom Server zugewiesen wurde
(34009). Von nun an werden keine weiteren SYN Flags mehr benötigt,
die Server verständigen sich nur noch über ACK Flags.
Der Header des vom Client gesendeten Pakets:
Protokoll: TCP
Quelladresse: 114.115.12.11
Quellport: 24000
Zieladresse: 195.20.202.1
Zielport: 80
Flags: ACK
Die beiden Flags SYN und ACK sind sehr wichtig für das Aufsetzen
einer Firewall. Das SYN Flag wird gesetzt, wenn ein Client und ein Server
die ersten beiden Pakete beim Verbindungsaufbau austauschen. Alle weiteren
Pakete haben nur das ACK Flag gesetzt.
Beim Beenden einer Verbindung gibt es noch weitere Flags, die jedoch
für eine Paketfilter Firewall nicht zur Auswertung zur Verfügung
stehen und deshalb nicht von Interesse sind.
Verweise im Text
1
Vgl. Grennan, Mark. Firewall and Proxy Server HOWTO, S.5
2
Vgl. Stähle, Samuel. Firewalling unter Linux, S.2
3
Vgl. Stähle, Samuel. Firewalling unter Linux, S.2
Vgl. Bernard, Frank. Brandschutz 2.2, S.86
4
Weitere Maßnahmen werden in Kapitel 5 vorgestellt
5
Vgl. Bernard, Frank. Brandschutz 2.2, S.86
6
Siehe Kapitel 2.5 NAT - Masquerading
7
Weitere Informationen zu Application Level Gateways finden sich auf folgenden
Webseiten:
http://www.informatik.uni-halle.de/~rauber/firewalls_dir/uhlig/anwen_ag.htm
http://www.genua.de/sicherheit/broschuere-97/node18.html
8
Vgl. Diedrich, Oliver; Lubitz, Holger. Sichere Reise - Ein Firewall mit
Linux, S.154f
9
Vgl. Request for Comments (RFC) 1918, http://www.denic.de
10
Vgl. ftp://venera.isi.edu/in-notes/iana/assignments/multicast-addresses
Vgl. Request for Comments (RFC) 1112, http://www.faqs.org
11
Vgl. Request for Comments (RFC) 1812, http://www.faqs.org
12
Siehe Kapitel 4.7.9 IP Spoofing: IANA Adreßbereiche
13
Vgl. Diedrich, Oliver; Lubitz, Holger. Sichere Reise - Ein Firewall mit
Linux, S.154f
14
Vgl. Emmrich, Henning. Netzwerk in Ketten, S.194f
15
Vgl. Emmrich, Henning. Netzwerk in Ketten, S.194f
16
Vgl. Emmrich, Henning. Netzwerk in Ketten, S.194f
17
Vgl. Ziegler, Robert. Linux Firewalls, S.718
Vgl. Ziegler, Robert. Linux Firewalls, S.7
19
Vgl. Emmrich, Henning. Netzwerk in Ketten, S.194f
20
Vgl. Stähle, Samuel. Firewalling unter Linux, S.6f
21
Vgl. Kofler, Michael. Linux - Installation Konfiguration Anwendung, S367f
und S.387f
22
Vgl. Ziegler, Robert. Linux Firewalls, S.9f
23
URL steht für "Uniform Ressource Locator", z.B. http://www.pro-linux.de
Feedback ist wichtig für die Verbesserung des Service |
Autor: Felix
Mack
Datum: 20. November 2000 - Pro-Linux.de |