Freitag, 21. November 2008

News

präsentiert von: entwickler.com
Donnerstag, 3. November 2005

About Security #30: Die Firewall — Paketfilter

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

Ihre Meinung ist uns wichtig!
Mobile Computing Heute & Morgen!
Nehmen Sie an unserer Umfrage zum Thema Mobile Computing in Deutschland teil und nutzen Sie die Chance eine Casio Exilim EX-Z1050-Digitalkamera zu gewinnen!
OpenOffice.org Spezial

Konferenzen

JAX Asia 2008

JAX Asia 2008

25.-28. November 2008
Singapore, Kuala Lumpur, Jakarta

BASTA! Spring 2009

BASTA! Spring 2009

23.-27. Februar 2009
Maritim Rhein-Main Hotel Wissenschaftsstadt Darmstadt

BASTA! Italia 2009

BASTA! Italia 2009

16.-18. März 2009
Holiday Inn EUR Parco dei Medici, Roma

PHPCon Italia 2009

PHPCon Italia 2009

18.-20. März 2009
Holiday Inn EUR Parco dei Medici, Roma

webinale 09

webinale 09

25.-27. Mai 2009
Berlin

Werbung
Top-Jobs

Software & Support Verlag GmbH

Volontär (w/m) Redaktion, Vollzeit

Software & Support Verlag GmbH

Lektor (m/w), Vollzeit

Software & Support Verlag GmbH

Redakteur (m/w), Vollzeit

Endress+Hauser GmbH+Co. KG

Entwickler Datenbanksysteme (m/w)

Signsoft GmbH

Java-Entwickler (m/w)

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

Bücher


hosted by HostEurope