Userspace-Zugriff
Listing 1 ist ein Beispiel-C-Programm, das Datenfelder von ICMP-Echo-Request-Paketen [7] verändert, abhängig vom Inhalt einer angegebenen Datei. Diese Aufgabe ausschließlich im Kernelspace zu lösen wäre relativ schwierig - mit Iptables und NFQueue kann ein Userspace-Programm sie hingegen einfach und elegant lösen. Nicht nur C-Programme können die NFQueue-Bibliothek nutzen. Es ist genauso denkbar, die Entwicklung in einer anderen Hochsprache wie C++ oder auch mit einer interpretierten Sprache wie Perl durchzuführen. Dafür bietet sich das SWIG-Framework [8] an, es gibt aber auch Pakete für Skriptsprachen wie Perl und Python [9].
Andocken an die Warteschlange
Wenn das Beispielprogramm die Kommandozeilenparameter überprüft hat (Zeilen 56 bis 59), folgen die ersten Schritte in der Funktion »main()« (ab Zeile 48). Hinweise zu den verwendeten Funktionen gibt Tabelle 1. Wichtig ist vor allem Zeile 78, die die Callback-Funktion »callback_funktion()« an die NFQueue-Funktion »nfq_create_queue()« übergibt. Ihr viertes Argument (hier »(void *)fd«) ist optional und für Verweise auf private Daten bestimmt. Der Programmierer kann damit einen Zeiger auf Daten übergeben, die das Netfilter-Subsystem an die Callback-Funktion weiterreicht. Der Beispielcode verwendet das Argument, um ihr den lokalen Datei-Deskriptor mitzuteilen.
Die Funktion »nfq_fd()« (Zeile 89) erzeugt aus dem übergebenen Handle einen Deskriptor, den das Programm an den »recv()«-Systemaufruf übergeben kann. Er dient dazu, Daten von der Warteschlange zu lesen. Die im Schleifenrumpf aufgerufene Funktion »nfq_handle_packet()« (Zeile 91) nimmt diese Daten entgegen und ruft im Anschluss die Callback-Funktion auf.
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 5 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





