Paketfilter
Ein Paketfilter, auch Netzwerkfilter genannt, ist eine Anwendung oder Software, die den ein- und ausgehenden Datenverkehr in einem Rechnernetz filtert. Dies dient in der Regel dem Schutz des Netzes vor Angreifern. Ebenso wichtig wie der Schutz gegen Angreifer von Außen ist der Schutz gegen ungewollt ausgehende Pakete; damit kann beispielsweise erschwert werden, dass der eigene Rechner ungewollt und unbemerkt Viren im Internet verbreitet. Ein Paketfilter kann Teil einer Firewall sein.
Verwendung
Paketfilter werden verwendet, um das Konzept einer Firewall umzusetzen.
Auf Routern kommen sie zum Einsatz um sogenannte Ingress-Filter zu implementieren. Mit solchen Filtern wird verhindert, dass Datenpakete aus oder in ein Netz gesendet werden, die ungültige Absender- oder Ziel-Adressen beinhalten. Ist zum Beispiel an einer Router-Schnittstelle nur das Netz 10.1.1.0/24 angeschlossen, und es kommt ein Datenpaket mit der Absender-Adresse 172.16.1.42 aus diesem Netz, sollte der Router das Paket verwerfen. Es liegt entweder ein Konfigurationsfehler vor oder ein Angreifer versucht seine Absender-Adresse zu fälschen. Auch Multicast- und Broadcast-Absender-Adressen lassen sich so filtern. Alternativ zu Paketfiltern steht mit Unicast Reverse Path Forwarding hier eine alternative Möglichkeit zur Verfügung.
Funktionsweise
Die Daten werden in einem Netz von dem sendenden Host in Datenpakete verpackt und versendet. Jedes Paket, das den Paketfilter passieren will, wird untersucht. Anhand der in jedem Paket vorhandenen Daten, wie Absender- und Empfänger-Adresse, entscheidet der Paketfilter aufgrund von Filterregeln, was mit diesem Paket geschieht. Ein unzulässiges Paket, das den Filter nicht passieren darf, wird entweder verworfen (im Fachjargon DENY oder DROP genannt), der Absender über das Verwerfen mittels ICMP-Nachricht informiert mit der Bemerkung, dass der Zugriff unzulässig war (REJECT), oder weitergeleitet (FORWARD oder PERMIT) beziehungsweise durchgelassen (ALLOW oder PASS).
Ein Paketfilter heißt „stateful“, wenn er für ein ausgehendes Paket automatisch eine Regel erzeugt, die in einem bestimmten Zeitfenster (im Minutenbereich) die Antwort auf dieses Paket akzeptiert. Kommt die Antwort nicht oder wird die Zeit überschritten, verfällt die Regel. Prinzipiell können solche Filter auch mit Protokollen umgehen, die auf zwei Ports arbeiten, zum Beispiel FTP.
Paketfilterbeispiel
Der Paketfilter ist für Aufgaben wie das Vergleichen von Quell- oder Zieladresse der Pakete, die die Firewall passieren, zuständig und muss dafür bestimmte Filterungen oder Reglementierungen im Datenverkehr vornehmen. Wenn man sich das Internet als eine gigantische Ansammlung von Häusern vorstellt, dann stellen die IP-Adressen sozusagen die Hausnummern dar. Unter einer bestimmten IP-Adresse kann man direkt mit einem Rechner kommunizieren.
In den einzelnen „Etagen“ dieser Rechner (gekennzeichnet mit einer Nummer, die man auch Port nennt) wohnen nun die verschiedenen Dienste wie HTTP, FTP oder SSH. Ein Paketfilter kann verschiedene Ports für die Besucher aus dem Internet sperren, d. h., jede Verbindung aus dem Internet wird an der Haustür abgewiesen. Durch die entsprechende Konfiguration einer Firewall kann so ein Rechnernetz vor Angriffen oder Zugriffen geschützt werden.
Ein Paketfilter definiert Regeln, die festlegen, ob einzelne oder zusammenhängende Pakete das Zugangsschutzsystem passieren dürfen oder abgeblockt werden. Eine solche Regel wäre zum Beispiel: Verwirf alle Pakete, die von der IP-Adresse 1.2.3.4 kommen. Da Angreifer jedoch von beliebigen IP-Adressen kommen können, ist es praktikabler, den umgekehrten Weg zu gehen und nur Pakete durchzulassen, die von bestimmten IP-Adressen kommen.
Prinzipiell ist dies aber auch kein wirklich sicherer Weg, da ein Übeltäter die Hausnummer ohne größere technische Probleme fälschen kann. Eine sichere Kommunikation, z. B. zwischen Firmennetzen, ist nur möglich, wenn Protokolle verwendet werden, die eine Authentifikation und Autorisierung der beteiligten Benutzer oder Systeme vornehmen. Dies kann beispielsweise mit verschlüsselten virtuellen privaten Netzwerken geschehen, oder einfacher durch sogenanntes Portknocking, bei dem der Absender zunächst eine vorher vereinbarte Folge von Paketen sendet (also praktisch mit einem bestimmten Rufzeichen an der Haustür anklopft), und der Port erst daraufhin geöffnet wird.
Implementierungen von Paketfiltern
- IPFilter portabler Paketfilter für Solaris, FreeBSD u. a.
- ipfw Paketfilter von FreeBSD und Mac OS X
- ipfwadm (Linux 2.0, obsolet)
- ipchains (Linux 2.2, obsolet)
- ip(6)tables (Linux ab 2.4)
- nftables (Linux ab 3.13)
- pf Paketfilter von allen BSD-Derivaten, vornehmlich OpenBSD, aber inzwischen auch FreeBSD und NetBSD
Weblinks
- Linux netfilter/iptables Paket Filter (englisch)
- PF: The OpenBSD Packet Filter (englisch)