Mittwoch, 30. Juni 2010


Topthema

Donnerstag, 3. November 2005 | Topthema

About Security #30: Die Firewall — Paketfilter

(Link zum Artikel: http://www.entwickler.de/entwicklerde/kolumnen/025090)

Die Filterung der Daten durch den in About Security #29 vorgestellten Paketfilter erfolgt auf der Netzzugangs-, Netzwerk- und Transportschicht des TCP/IP-Schichtenmodells. Wie die Daten gepr�ft werden, erfahren Sie in dieser Folge.

Filterung auf der Netzzugangsschicht

Ethernet-Paket (Version 2, f�r weitere Informationen siehe zum Beispiel hier):

N E U ! Security aktuell
T�glich aktuelle Security-Infos!

Pr�ambel (7 Byte)
dient der Synchronisation
Paketbegrenzer (1 Byte)
markiert den Anfang des Pakets
Zieladresse (6 Byte)
Hardwareadresse des Ziels
Quelladresse (6 Byte)
Hardwareadresse der Quelle
Type (2 Byte)
Definition des n�chsth�heren Protokolls
Daten
variabel, min. 46, max. 1.500 Bytes
bei weniger als 46 Bytes wird aufgef�llt
Pr�fsumme (4 Byte)

Bei einer Filterung auf Basis von Ziel- und Quelladresse kann festgelegt werden, welche Ger�te �ber den Paketfilter miteinander kommunizieren d�rfen. Der Typ kann verwendet werden, um unerw�nschte Protokolle auszufiltern.

Filterung auf der Netzwerkschicht

IP-Paket (RFC 791):

Version
(4 Bit)
Header-L�nge (4 Bit) Servicetype
(8 Bit)
Gesamtl�nge in Bytes
(16 Bit)
Identifikation
(16 Bit)
Flags
(3 Bit)
Fragment-Offset
(13 Bit)
Time to Live (8 Bit) Protokoll (8 Bit) Header-Pr�fsumme (16 Bit)
Quell-IP-Adresse (32 Bit)
Ziel-IP-Adresse (32 Bit)
IP-Optionen und F�llzeichen (insgesamt 32 Bit)
Daten
About Security: Die komplette Serie

Gefiltert werden kann wieder auf Basis von Ziel- und Quelladresse, wobei nun IP-Adressen betrachtet werden. Aus dem Protokollfeld kann das verwendete Protokoll auf der Transportschicht zur Filterung verwendet werden. Das Flags-Feld enth�lt z.B. Informationen dar�ber, ob eine Fragmentierung der IP-Pakete durchgef�hrt wurde. Das IP-Optionen-Feld enth�lt gegebenenfalls Informationen �ber das Routing, die ebenfalls zur Filterung herangezogen werden k�nnen.

ICMP-Paket (RFC 792):

Type
(8 Bit)
Code
(8 Bit)
Pr�fsumme
(16 Bit)
Verschiedenes (32 Bit)
IP-Header und weitere 64 Bits oder Testdaten

Bei der Filterung von ICMP-Paketen wird das Type-Feld ausgewertet. Dies enth�lt die Nachrichtentypen, z.B. Destination Unreachable (Ziel nicht erreichbar), Redirect, Echo Reply, Echo Request oder Time Exceeded (Zeit verstrichen).

Filterung auf der Transportschicht

TCP-Paket (RFC 793):

Quell-Port
(16 Bit)
Ziel-Port
(16 Bit)
Sequenznummer
(32 Bit)
Quittungsnummer
(32 Bit)
Header-L�nge
(4 Bit)
Reserviert
(6 Bit)
Flags
(6 Bit)
Fenstergr��e
(16 Bit)
Pr�fsumme (16 Bit) Urgent Pointer (16 Bit)
Optionen und F�llzeichen (insgesamt 32 Bit)
Daten

Zur Filterung k�nnen Quell- und Ziel-Port sowie die Flags verwendet werden. �ber die Ports kann das verwendete Protokoll ermittelt und mit den zul�ssigen Diensten verglichen werden. Das SYN-Flag wird beim Verbindungsaufbau in den ersten beiden Paketen gesetzt. Das ACK-Flag ist im jeweils ersten Paket jeder Verbindung nicht gesetzt, alle weiteren Pakete der aufgebauten Verbindung enthalten ein gesetztes ACK-Flag. Dies kann vom Paketfilter genutzt werden, um eine bestehende Verbindung zu erkennen. Das PSH-Flag kann zum Erkennen von HTTP-Response-Splitting- und HTTP-Request-Smuggling-Angriffen verwendet werden (siehe About Security #20).

UDP-Paket (RFC 768):

Quell-Port
(16 Bit)
Ziel-Port
(16 Bit)
L�nge
(16 Bit)
Pr�fsumme
(16 Bit)
Daten

Wie bei TCP k�nnen Quell- und Ziel-Port zur Filterung verwendet werden.

Kapselung der Daten

Die Daten der verschiedenen Pakete werden folgenderma�en ineinander gekapselt:

Daten Anwendungsschicht

TCP-Header Daten Transportschicht (TCP)
= TCP-Daten

IP-Header TCP-Header Daten Netzwerkschicht (IP)
= IP-Daten

Ethernet-Header IP-Header TCP-Header Daten Netzzugangsschicht (Ethernet)
= Ethernet-Daten
Zur�ck zum Beispiel aus About Security #29:
Nr. Senderadresse Port Zieladresse Port Protokoll Flags Aktion

1. 0.0.0.0 >= 1024 80.237.217.196 80 TCP permit
2. 80.237.217.196 80 0.0.0.0 >= 1024 TCP ACK permit
3. 0.0.0.0 any 80.237.217.196 any any any reject

Woher kommen welche Daten?
Die Sender- und Zieladresse werden dem IP-Header entnommen, ebenso das verwendete Protokoll. Der jeweilige Port ist im TCP-Header gespeichert, ebenso die Flags.

Weitere Regeln: HTTPS wird erlaubt
Jetzt sollen Regeln hinzugef�gt werden, die den Zugriff auf den Webserver �ber HTTPS erlauben. Als Faustregel f�r einen Paketfilter kann man sich "WWW" merken:

  • Woher kommt das Paket,
  • wo will es hin, und
  • was will es dort?

(oder kurz: "Wer darf was wo?"). In diesem Fall lauten die Antworten:

  • Pakete von beliebigen Rechnern von einem Port ab 1024,
  • die als Ziel den Webserver (80.237.217.196) haben,
  • um �ber TCP-Port 443 (HTTPS) zu kommunizieren,

sollen durchgelassen werden, ebenso die Antworten darauf. Die bisherige Regel 3 wandert an das Ende der Regelkette, und zwei neue Regeln �bernehmen die Durchleitung der HTTPS-Kommunikation:

Nr. Senderadresse Port Zieladresse Port Protokoll Flags Aktion

3. 0.0.0.0 >= 1024 80.237.217.196 443 TCP permit
4. 80.237.217.196 443 0.0.0.0 >= 1024 TCP ACK permit
5. 0.0.0.0 any 80.237.217.196 any any any reject

Die obigen Beispiele sind relativ einfach. Schwieriger ist die Konfiguration des Paketfilters f�r die Filterung von FTP-Verbindungen. Wieso das so ist und wie Sie FTP-Verbindungen zulassen bzw. verhindern k�nnen, erfahren Sie in der n�chsten Folge, in der au�erdem zustandsorientierte Paketfilter (Stateful Inspection) vorgestellt werden.

Wenn Sie Fragen oder Themenvorschl�ge haben, k�nnen Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security � �bersicht zum aktuellen Thema "Firewall"

Kommentare

Folgende Links könnten Sie auch interessieren