Aktivieren von xt_tee - Fritzbox 7312

cadkiwi

Neuer User
Mitglied seit
21 Sep 2005
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo Freetz-Gemeinde,

ich habe viel Freude mit Freetz Images zu erzeugen und meine Fritzbox besser zu nutzen!
Doch gerade verzweifel ich ein wenig, vielleicht kann mir jemand helfen...
Hier die Situation:
- Ein Netzwerkteilnehmer schickt alle Minute ein Update über die Fritzbox an einen Server im WAN.
- Diese Kommunikation besteht aus Anfragen der IP per DNS lookup, schicken der UDP Nachricht an den Server, Antwort des Servers an den Netzwerkteilnehmer.
- Ein Raspberry Pi soll die ausgehende Nachricht ebenso erhalten und sie analysieren.
- Hierzu möchte ich per iptables und der Target Extension '-j TEE' das entsprechende Paket kopieren und an den Pi weiterleiten.
- Ich habe iptables und alle libraries und module ausgewählt und grundsätzlich funktioniert iptables.
- doch gerade das xt_TEE wird nicht erzeugt/geladen/mitgebaut.

Meine Fragen:
- durchsuche ich die Datei "iptables-1.4.11.1.tar.bz2", welche von Freetz herangezogen wird, dann finde ich darin die xt_TEE.c usw.
- Gibt es einen Weg, dieses xt_TEE mitzukompilieren? Ich habe gelesen, das bei den extensions xt_TEE nicht mehr mitgebaut werden, da neuere Kernel das wohl schon inkludiert haben. Doch wir reden von 2.6.32 und da ist es definitiv noch nicht mit enthalten.

Ich hoffe ich habe keine Info vergessen und hoffe das mir jemand helfen kann...
 
Ruf mal "make kernel-menuconfig" auf und schau nach, ob des das Modul überhaupt gibt und ob es ausgewählt ist. Wenn nicht, kannst Du es aktivieren und schauen, ob es auf der Box läuft.
Wenn es erstellt wird, braucht man noch einige Zeilen, damit es direkt in Freetz ausgewählt werden kann und automatisch mit ins Image genommen wird. dafür kannst Du Dich daran orientieren, was bei den anderen Modulen gemacht wird.
 
Danke Ralf für deinen Hinweis.
Ich habe das mal aufgerufen aber da finde ich nirgends was mit Kernel Modulen. Im nomalen "make menuconfig" habe ich iptables und alle kernel module und libraries aktiviert. Es werden auch alle eingebaut und sind verfügbar, aber dieses vermalledeite xt_TEE target nicht. Brauch das denn sonst niemand? Oder wie kann man ein Netzwerk UDP Paket an einen anderen Teilnehmer weiterleiten/sniffen?
Ich habe nun mit den configs und makefiles experimentiert, ich habe nun die libraries drin und kann es aufrufen in der fritzbox, doch das xt_TEE.ko ist anscheinend noch nicht kompiliert worden und nicht inkludiert. Seltsam, vor allem wenn man mit dem Linuxkernel noch nicht arg viel gemacht hat...

Grüße
 
Hallo,

ich kenne leider den Prozessor der 7312 nicht ... aber falls die Box einen AR9 verwendet, taucht das Modul schon mal nicht in der Kernel-Config von AVM auf. Das bedeutet normalerweise, daß das Modul auf dieser Box nicht laufen wird. Du kannst versuchen, in vergleichbaren Kernel-Configs nach der entsprechenden Konfiguration (also sowas wie "CONFIG_NETFILTER_XT_TEE") zu suchen und das dann händisch in Dein Image zu bekommen. Ich würde das erst mal als Modul versuchen. Das ist allerdings etwas risikoreich, sprich: Es existiert eine von Null verschiedene Wahrscheinlichkeit für einen Bootloop. Dafür solltest Du vorab entsprechende Sicherungen der Box-Configs und ein passendes Recover zur Hand haben.

Grüße,

JD.
 
Hallo JD,

danke für den Hinweis, ja ich suche gerade nach diesen Einträgen und versuche es händisch mit rein zu bekommen (habe mal alle vorhandenen Kernel-Configs durchsucht und TEE taucht in keinem auf...). Bin ich der Einzige, der ein Netzwerkpaket kopieren und an einen weiteren Netzwerkteilnehmer schicken mag mit Hilfe einer Fritzbox? :)
Ich habe es schon als .ko eingebaut, aber die datei xt_TEE.c benötigt noch eine andere c-Datei und die macht die Verbindung zu den normalen iptables (bekomme eine unresolved symbols meldung beim kompilieren)...

Noch mal zur Ausgangssituation: Ich würde auch gerne folgendes Paket hinzu kompilieren anstatt mit einem Kernelmodul zu arbeiten:
xtables-addons-1.47.1.tar.xz
Das ist die letzte Version der xtables addons, welche xt_TEE unterstützt sowie die 'alten' Kernel <= 2.35, wie sie in der Fritzbox verwendet werden.
Also alternativ zu dem Kernelmodul-Weg würde ich gerne dieses genannte Paket in die Freetzkonfig mit aufnehmen wollen.
Gibt es dazu einen einfachen Weg? Vlt. sogar ein Howto?

Vielen Dank für Eure Mühe...
 
Ich habe auch nicht "make menuconfig" geschrieben, sondern "make kernel-menuconfig". Ist es dort dabei oder nicht?

Hi Ralf, oh sorry... Ich meinte im ersten Satz "Ich habe das mal aufgerufen aber da finde ich nirgends was mit Kernel Modulen." das ich "make kernel-menukonfig" aufgerufen hatte. Ich hatte mich nicht klar ausgedrückt.

Grüße,

Marcel
 
Also.

Deine Box verwendet scheinbar 2.6.32.42.
Das von Dir gewünschte Modul scheint in jedem Fall nf_conntrack zu benötigen.
Die möglicherweise gute Nachricht für Dich: Mit den Kernels > 2.6.28.* klappt in bestimmten Situationen das Laden von nf_conntrack wieder.
Also würde ich zunächst mal versuchen, mich in
Code:
make kernel-menuconfig
bis zu Netfilter->Core Netfilter ... durchzuhangeln, dort connection tracking auszuwählen und zu gucken, ob da irgendwo xt_tee dabei ist.
Falls nicht, kannst Du in der Kernel-Config Deiner Box (möglicherweise http://svn.freetz.org/trunk/make/linux/configs/avm/config-ar7-04.40) versuchen, ein
Code:
DEFINE NETFILTER_XT_TEE=m
an geeigneter Stelle einzubauen und zu schauen, ob das Modul gebaut wird. Falls ja, kannst du versuchen, es zu laden.
Allerdings ist mir noch nicht so ganz klar, wie Du die kopierten Pakete auf der zweiten Maschine asuwerten möchtest ...
Grüße,

JD.
 
Zuletzt bearbeitet:
Der Kernel ist 2.6.32.60 und nf_conntrack wird benötigt. Ich habe festgestellt, das wenn ich ein modprobe mache, erhalte ich folgendes:
Code:
root@fritz:/var/mod/root# modprobe nf_conntrack
modprobe: can't load module nf_conntrack (kernel/net/netfilter/nf_conntrack.ko): unknown symbol in module, or unknown parameter
Also passt da noch was nicht bei conntrack.
Ich habe die netfilter Einstellungen im make kernel-menuconfig gefunden und noch mehr optionen aktiviert, ebenso habe ich dort ein "TEE" target support gefunden.
Momentan bin ich das image am bauen lassen, dann werde ich wieder berichten.

Wie ich die Pakete auswerten lasse? Mich interessiert ein bestimmter Port und ich lasse auf dem Zielrechner ein Perl-Skript laufen, welches auf diesen Port hört.
Kommt nun ein solches Paket dort an, wertet das Skript den Inhalt aus und speichert es in einer rrd Datenbank ab.
Durch das TEE-Target wird die Zieladresse umgebogen, so das der Empfänger auch was mit dem Paket anfangen kann.

Grüße und tausend dank schon mal für Eure Hilfe! :)
 
Die Fehlermeldung beim Ladeversuch deutet darauf hin, daß das Modul entweder nicht gebaut wird oder nicht im Image landet. Hast Du nf_conntrack als Modul (=m) oder fest ins Image (=y) gebaut ?
Kannst Du mal das Log des Image-Build-Prozesses hier posten (zumindest den relevanten zweiten Teil) ?
 
Die Ursache für den Fehler sind vermutlich unbekannte Symbole, wie auch in dem Meldung angegeben.
Schau mal, ob die letzten Zeilen von dmesg etwas dazu enthalten.
 
Hallo Ralf und JohnDoe42,

entschuldigt meine Stille, aber Job und Familie haben mich nicht weiter dran arbeiten lassen...
Ich habe es mir genauer angesehen und conntrack will einfach nicht mit der 7312 und damit stirbt xt_TEE...
Ich habe nun Plan B vollzogen, der zwar total umständlich ist, aber recht gut funktioniert:
Ich habe ja noch einen Raspberry für die Hausautomatisierung direkt neben der FritzBox.
Ich habe dem eine USB-LAN-Schnittstelle gegönnt (10,-€) und daran den Client angeschlossen, dessen Nachricht ich ja abfangen will.
Jetzt dient der Raspberry als Router und leitet den Verkehr des Clients über die FritzBox ins Netz (somit bleibt die ursprüngliche Funktion erhalten).
Der Raspberry verfielfältigt dann die UDP Pakete von Interesse per '-j TEE'.
Damit wäre ich ja fast am Ziel, doch ich habe noch keinen Weg gefunden ein ge'TEE'tes Packet an sich selbst zu schicken und zu verarbeiten, OHNE in eine massive Rückkopplung zu geraten...
Also habe ich das Paket erst mal an einen anderen Raspberry geschickt in meinem Netz (XMBC am Fernseher), an die FritzBox könnte ich es auch schicken, aber wie unterscheide ich echte von kopierten Paketen?
Der zweite RaspBerry nimmt das UDP Paket und '-j DNAT'et es zurück an den ersten Raspberry.
Auf diesem läuft nun das Perl Script, das das Paket entgegen nimmt und auswertet!

PUHHHH - ich weiss - von hinten durch die Brust ins Auge...

Aber da die beiden RaspBerries eh 24/7 laufen und ich in einem Monat eh die FritzBox gegen einen anderen DSL Router tauschen muss (wegen neuem Anschluss), ist die Lösung erst mal gut so...

Eine Verbesserung wäre nur noch, wenn ich auf dem ersten Raspberry das Paket von Interesse direkt mit dem Perl Script abfangen könnte... Dazu müsste das '-j TEE' kopieren und dann direkt mit einem '-j DNAT' an sich selbst richten, dann könnte man auf dieses Paket direkt lauschen... Aber keine Idee, wie man das einrichten kann mit iptables oder sonst wie...

Vielen Dank noch mal für Eure Anregungen und Hilfestellungen! Ich habe wieder mal sehr viel über FritzBox, Linux und Netzwerke gelernt! :)

Marcel
 
Braucht TEE wirklich conntrack?

TEE schickt eine exakte Kopie des Pakets, also wird auch die Zieladresse nicht verändert.
Wenn Du die Pakete gar nicht an einen anderen Rechner senden willst, dann schau mal, ob NFLOG das richtige für Dich ist.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,868
Beiträge
2,219,767
Mitglieder
371,584
Neuestes Mitglied
porcupine
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.