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 | |||||
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!
About Security – Übersicht zum aktuellen Thema "Firewall"
- About Security #29: Die Firewall – Grundlagen
- About Security #30: Die Firewall – Paketfilter
- About Security #31: Die Firewall – FTP-Verbindungen
- About Security #32: Die Firewall – Application Level Gateway
- About Security #33: Die Firewall – Application Level Proxies
- About Security #34: Die Firewall – Circuit Level Proxies
- About Security #35: Die Firewall – Zusammenspiel der Komponenten
- About Security #36: Die Firewall – Demilitarisierte Zone



















Kommentare