Hallo, Um den Netzwerkverkehr zwischen meinem Mikrocontroller und einem Server (extern im Internet) mitzuschneiden, muss ich mich ja mit meinem Rechner dazwischenhaengen. Also will ich den MC an meinem Rechner via eth0 anschliessen, der wiederrum via wlan0 mit dem ADSL Router verbunden ist. Im Prinzip will ich nur UDP Telegramme von und an das Port 5555 mitschneiden, kann aber auch den gesamten Traffik durchtunneln. Da ich mich mit iptables nund co. nicht so auskenne und das einarbeiten nicht so schnell geht, wollte ich fragen ob jemand dafuer eine iptable Regel parat hat. Wuerde mir viel Zeit erpsaren! Herzlichen Dank, Max
:
Verschoben durch Admin
Also wenn du es als echter "Man in the Middle" machen willst, dann musst du das wohl mit iptables machen. Fuer Anfaenger kann ich da ein Tool namens Firewall Builder[1] empfehlen. Damit kannst du sehr leicht Rules zusammenbauen und anwenden. Ansonsten musst du dich nicht unbedingt zwischen den Controller und den Switch haengen. Du kannst dich auch einfach mit an den Switch haengen und mittels Arpspoof[2] die ARP Table veraendern, um den Verkehr an deinem PC mittels Wireshark mitzuschneiden. [3] Gruesse, Christian [1] http://www.fwbuilder.org/ [2] http://arpspoof.sourceforge.net/ [3] http://su2.info/doc/arpspoof.php
@Christian D: Arpspoof kannte ich noch nicht, werd ich aber versuchen. Ich will ja nur mit wireshark schaun ob und was an den MC geschickt wird. Sollte also auch damit gehen @Geist: Auch eine gute Idee. Leider hab ich die Harware hier nicht und ich muss das heut enoch hinbekommen. Achja, eigentlich haengt mein MC ja gar nicht direkt am Router, es sitzt ja schon ein wrt54 (ddwrt firmware) dazwischen, der im Briged mode arbeitet. Dort kann ich mir auch via "iptables -L" die Regeln anzeigen lassen. Kann ich die nich auf meinen Rechner uebernehmen. Schaut z.B so aus:
1 | Chain INPUT (policy ACCEPT) |
2 | target prot opt source destination |
3 | ACCEPT 0 -- anywhere anywhere state RELATED,ESTABLISHED |
4 | DROP udp -- anywhere anywhere udp dpt:route |
5 | ACCEPT udp -- anywhere anywhere udp dpt:route |
6 | DROP igmp -- anywhere anywhere |
7 | ACCEPT 0 -- anywhere anywhere state NEW |
8 | logaccept 0 -- anywhere anywhere state NEW |
9 | DROP 0 -- anywhere anywhere |
10 | |
11 | Chain FORWARD (policy ACCEPT) |
12 | target prot opt source destination |
13 | ACCEPT 0 -- anywhere anywhere |
14 | TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU |
15 | lan2wan 0 -- anywhere anywhere |
16 | ACCEPT 0 -- anywhere anywhere state RELATED,ESTABLISHED |
17 | ACCEPT 0 -- anywhere anywhere state NEW |
18 | DROP 0 -- anywhere anywhere |
Bekomm ich irgendwie die iptables szntax zum erzeugen dieser Regeln raus?
arpspoof funktioniert leider doch nicht so einfach wie gedacht. Ich sehe zwar all die ARP Telegramme aber nicht das UDP, das ich eigentlich brauche. Weder aus- noch eingehend und rasu gehen ganz bestimmt welche. Kann sein das es ein Problem ist, wenn nur mein Rechner und der MC am Switch haengen? lG, Max
Das Problem, warum Arpspoof nicht funktioniert, ist, dass du noch einen Router dazwischen geschaltet hast. Dieser korrigiert vermutlich die ARP Tabellen. Dann probier es doch einfach mit dem FWBuilder. Steht unter GPL und es gibt ein Beispiel fuer ein simples Gateway. Ansonsten benutz diese Rules[1] Dritte Moeglichkeit waere einfach TCPDUMP auf deinem dd-wrt zu benutzen und den Dump mittels Wireshark einzulesen. [1] http://www.yolinux.com/TUTORIALS/LinuxTutorialIptablesNetworkGateway.html
So, ich habs jetzt mit einfachen iptables umgesetzt. Falls das noch jemand benoetigen kann, hier das Script das mir alles von eth0 (10.0.1.1), auf dem der MC haengt (10.0.1.2), via wlan0 (10.0.0.x) ins www und wieder zurueckt tunnelt:
1 | #!/bin/bash
|
2 | |
3 | /sbin/iptables --flush
|
4 | /sbin/iptables --table nat --flush |
5 | /sbin/iptables --delete-chain
|
6 | /sbin/iptables --table nat --delete-chain |
7 | |
8 | /sbin/iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE |
9 | /sbin/iptables --append FORWARD --in-interface eth0 -j ACCEPT |
10 | |
11 | echo 1 > /proc/sys/net/ipv4/ip_forward |
12 | |
13 | /sbin/ifconfig eth0 10.0.1.1 netmask 255.255.255.0 up |
14 | /sbin/route add -net 10.0.1.0 netmask 255.255.255.0 dev eth0
|
Es muessen natuerlich die benoetigten modeule im kernel geladen sein. Da beim verbinden ins wlan die ethernet schnittstelle nicht konfiguriert wird, muss man das manuell machen. Und mit dem route Eintrag kann ich den MC auch noch von meinem Rechner erreichen. Damit kann man mit Wireshark wirklich praktisch jegliche Kommunikation zwischen MC und der Aussenwelt mitschneiden. lG, Max
Markus Manninger schrieb: > Damit kann man mit Wireshark wirklich praktisch jegliche Kommunikation > zwischen MC und der Aussenwelt mitschneiden. Wie schon erwähnt, einfach einen Ethernet-Tab bauen oder einen Hub benützen. Geht wunderbar und hängt direkt an der Ltg. ohne etwas dazwischen. Beim Ehternet-Tab ist noch zu erwähnen, dass man beide Richtungen getrennt hat (vom MC -> PC bzw. MC <- PC).
mar IO schrieb: > Ethernet-Tab Wenn Du das mit "p" schreibst, hast Du bei der Suche mehr Chancen. "Tap" im Sinne von Anzapfung.
Ach sch... die ARP Telegramme gehen da nicht drueber. Da jemand eine Idee?
Wie gesagt: besorge Dir entweder in der Bucht einen 10 MBit Hub für so etwas, denn ein Hub ist nur ein Sternverteiler, der ein auf einem Port eingehendes Paket auf alle anderen Ports verteilt. So kannst Du alles mithören. Alternativ kannst Du Dir ja auch einen vernünftigen, managebaren Switch kaufen, z.B. einen HP Procurve 1810V2-8G (J9802A) oder -24G (J9803A). Da kannst Du den Traffic von und zu einem Port auf einen anderen Port spiegeln und dort anzapfen. Diese Switche können noch einige andere nette Sachen und sind ihr Geld wirklich wert. fchk
Markus Manninger schrieb: > Ach sch... die ARP Telegramme gehen da nicht drueber. > Da jemand eine Idee? Warum lässt du tcpdump nicht direkt auf dem Router laufen? Du kannst den Dump auch in eine Datei schreiben und dann mit Klicki-bunti-Wireshark dir dann die Pakete ansehen.
Ja, denke das ist die einfachste Methode. Aber im Moment hab ich andere Probleme -> bekomm meinen mySmartUSB Light Adapter nicht zum laufen und kann nicht mehr flashen :-(
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.