Conntrack Helper

Conntrack Helper erweitern Conntracking um neue Fähigkeiten, Verbindungen zu klassifizieren. So können neue Verbindungen zu bestehenden zugeordnet werden (RELATED). Die Aufgabe eines Contrack Helpes ist es, diese Assoziationen zwischen Verbindungen herzustellen.
Conntrack Helper lassen sich durch eine Struktur beschreiben, ip_conntrack_helper, deren wichtigsten Merkmale ein Tupel mit Maske und ein Funtionszeiger sind. Das Tupel und Maske vom Typ ip_conntrack_tuple beschreiben die passende Verbindung. Die Maske spezifiziert dabei die gültigen Felder des Tupels. Der Funktionszeiger spezifiziert die Funktion, die für das auf Tupel/Maske passende Paket aufgerufen werden soll. Diese kann, neben Paketmanipulation, Erwartungen (expectaions) registrieren.

Ein solche Erwartung wird ebenfalls durch Initialisierung einer Struktur erzeugt. In diesem Fall ist das die ip_conntrack_expect Struktur. Diese Struktur enthält alle Informationen um eine eintreffende erwartete Verbindung zu erkennen und zuzuordnen. Desweitern ist noch ein Funktionszeiger enthalten, der für das erste Paket der erwarteten Verbindung aufgerufen wird.

ip_conntrack_helper:

ip_conntrack_expect:

Ein Beispiel eines Conntrack Helpers ist das Modul ip_conntrack_ftp. Zum Datentransfer nutzt das FTP Protokoll, neben der Kontroll-Verbindung auf Port 21, eine zusätzliche Verbindung zum Datentransfer. Diese Verbindung kann zwischen Client und Server ausgehandelt. Durch senden eines ,,PORT`` Befehls durch den Client, weiss der Server auf welchen Port der Client auf die Datenverbindung wartet.

Sieht der FTP-Conntrack-Helper ein Paket, das einen solchen Befehl enthält, so registriert dieser eine Erwartung auf diesem Port.

Klaus Rechert 2004-03-09