Sniffing w sieci lokalnej z wykorzystaniem dd-wrt na Linksysie WRT54GL
Czasami zachodzi potrzeba posłuchania tego co w domowej sieci piszczy. W tym konkretnym przypadku, zaistniała potrzeba posłuchania co tam ciekawego dzieje się u jednego z hostów (mały system embedded, więc instalowanie na nim czegokolwiek mija się z celem). Swoją drogą, liczyłem, że będzie okazja napisać coś więcej o systemie w czasie prac nad dyplomem, ale termin za dwa miesiące, a praca praktycznie nierozpoczęta (chociaż raz, nie ja jestem winny za taką obsuwę).
Wszystko, czego potrzebujemy, to router z iptables (w moim przypadku dd-wrt, ale powinno pójść równie łatwo na OpenWRT i innych). Tutaj dwie zasadnicze uwagi odnośnie dd-wrt. Po pierwsze, potrzebujemy oprogramowania w wersji przynajmniej Mini, wersja Micro nie wystarczy. Po drugie, build oznaczony jako stabilny (v24 SP1 [Stable] Build 10020) jest za stary, potrzebujemy iptables w wersji przynajmniej 1.3.0, w obrazie zalecanym (v24 preSP2 [Beta] Build 13064) znajdziemy już wersję 1.3.7.
Wszystko czego potrzebujemy, to dwie proste reguły dla iptables: iptables -t mangle -A POSTROUTING -d 192.168.1.88 -j ROUTE --tee --gw 192.168.1.66 iptables -t mangle -A PREROUTING -s 192.168.1.88 -j ROUTE --tee --gw 192.168.1.66
Najprościej oczywiście ustawić je po zalogowaniu przez SSH. W tym momenci wszystko jest już gotowe, pakiety z obserwowanego IP są kopiowane do nas, wystarczy odpalić więc Wiresharka, ustawić Capture Filter na
host 192.168.1.88 i obserwować co się dzieje ;)
Mnie akurat interesował tylko protokół HTTP, ale ten filtruję już po stronie widoku: 
Ostatnią rzeczą o której należało by wspomnieć jest usunięcie regułek z iptables: iptables -t mangle -D PREROUTING 1 iptables -t mangle -D POSTROUTING 1iptables -L -n -t mangle sprawdzamy, które reguły chcemy usunąć, a następniegdzie 1 jest indeksem reguły w danym łańcuchu.