Jak przechwycić wszystkie przychodzące pakiety do NIC, nawet te pakiety nie należą do mnie


13

AFAIK, karta sieciowa odbiera wszystkie pakiety z drutu w sieci lokalnej, ale odrzuca te pakiety, których adres docelowy nie jest równy jego ip.

Chcę opracować aplikację, która monitoruje korzystanie z Internetu przez użytkowników. Każdy użytkownik ma stały adres IP.

Ja i kilka innych osób jesteśmy podłączeni do 8-portowego niezarządzanego przełącznika pulpitu DES-108 Fast Ethernet

Jak wspomniano wcześniej, chcę przechwytywać wszystkie ruchy od wszystkich użytkowników, a nie tylko te pakiety, które należą do mnie.

Jak powinienem zmusić moją kartę sieciową lub inne komponenty do odbierania wszystkich pakietów?


1
Kup tani i zarządzany przełącznik za około 30 € i włącz dublowanie portów na łączu do bramy.
— Max Ried

Odpowiedzi:


27

AFAIK, karta sieciowa odbiera wszystkie pakiety z drutu w sieci lokalnej, ale odrzuca te pakiety, których adres docelowy nie jest równy jego ip.

Korekta: odrzuca te pakiety, których docelowy adres MAC nie jest równy jego adresowi MAC (lub multiemisji lub jakimkolwiek dodatkowym adresom w filtrze.

Narzędzia do przechwytywania pakietów mogą w trywialny sposób wprowadzić urządzenie sieciowe w tryb promiscuous, co oznacza, że ​​powyższe sprawdzenie jest pomijane i urządzenie akceptuje wszystko, co otrzymuje. W rzeczywistości jest to zazwyczaj ustawienie domyślne: za pomocą tcpdumpnależy określić -popcję, aby tego nie robić.

Ważniejszą kwestią jest to, czy pakiety, które Cię interesują, są w ogóle przenoszone przewodem do portu wąchania. Ponieważ używasz niezarządzanego przełącznika Ethernet, prawie na pewno nie są. Przełącznik decyduje się na wycinanie pakietów, które nie należą do ciebie z twojego portu, zanim urządzenie sieciowe będzie mogło je zobaczyć.

Aby to zrobić, musisz podłączyć się do specjalnie skonfigurowanego portu kopii lustrzanej lub monitorowania na zarządzanym przełączniku Ethernet.


1
Lub koncentrator Ethernet ... jeśli możesz znaleźć jeden rdzewiejący na strychu :) Wątpię jednak, czy są jakieś dla 1000Base-T, Wikipedia twierdzi, że huby gigabitowe obsługują tylko łącza półdupleksowe i są już przestarzałe.
— chx

1
@chx, wszystkie prawdziwe huby obsługiwały tylko półdupleks. Osobiście nigdy nie widziałem 1000Base-T.
— Celada,

Uważam, że miało to związek z powolnym wprowadzaniem Gigabit Ethernet - chociaż standard 802.3ab został wprowadzony w 1999 r., Wdrażanie było bardzo powolne do 2003/2004, kiedy Intel po raz pierwszy wypuścił chipset 875P z dedykowaną magistralą CSA dla Gigabit Ethernet, a następnie w 2004 r. PCI Express przejęło wreszcie przepustowość wystarczającą do Gigabit Ethernet. Do tego czasu przełączniki były wystarczająco tanie.
— chx

Przełącznik Ethernet nie zawsze emituje ramki. Ma własną tablicę przełączania (zawiera mapę portu przełącznika i adresu MAC) do emisji pojedynczej ramki. Jeśli tabela nie ma wpisu dla MAC w ramce, to rozgłasza / zalewa ramkę. Twój pulpit nigdy nie otrzyma innych ramek. Podobnie jak w odpowiedzi, musisz użyć specjalnego przełącznika do przechwytywania wszystkich ramek, które docierają do przełącznika.
— Valarpirai

8

Na początku mówi się o koncentratorach ethernetowych (nie przełącznikach), wysłane pakiety są dostępne dla wszystkich hostów w podsieci, ale hosty, które nie są zamierzonymi adresatami, powinny ignorować.

Oczywiście nasycenie podsieci nie zajęło dużo czasu, więc narodziła się technologia przełączania, aby rozwiązać problemy, a jedną z rzeczy, które zrobili, było przełączenie sieci tylko trasujących pakiety przeznaczone dla tego hosta do tego portu (plus ruch transmisji rozgłoszeniowej ).

To komplikuje monitorowanie sieci / wąchanie, ponieważ możesz wąchać tylko pakiety przeznaczone dla twojego hosta. Z punktu widzenia bezpieczeństwa było to uważane za dobre, ale z punktu widzenia monitorowania sieci nie jest tak dobre. Aby monitorowanie sieci działało, dostawcy wdrażają funkcję o nazwie dublowanie portów. Należy to skonfigurować na przełączniku sieci, a poniższy link powinien wskazywać właściwy kierunek dla produktów D-link. Znajdziesz go gdzieś w oprogramowaniu do zarządzania przełącznikami lub w interfejsie administratora. Jeśli nie znajdziesz tych funkcji, funkcja może nie być zapewniona w tym konkretnym urządzeniu.

http://www.dlink.com/uk/en/support/faq/switches/layer-2-gigabit/dgs-series/es_dgs_1210_como_monitorear_trafico_de_un_puerto_port_mirroring


2

Najpierw musisz przełączyć NIC na tryb rozwiązły. Załóżmy, że twój interfejs NIC to eth0.

root@linux#ifconfig eth0 promesc

Jeśli jesteś w sieci przełączników, wąchanie zostanie zredukowane do domeny kolizji połączonej z portem przełącznika. Możesz uruchomić, macofaby pokonać tabelę przekazywania przełącznika.

root@linux#macof -i eth0

Następnie możesz użyć wiresharklub, tcpdumpaby przechwycić cały ruch.

root@linux#tcpdump -i eth0 -w outputfile

Jeśli nie jesteś w sieci komutowanej, po prostu włącz tryb rozwiązany i użyj go tcpdump.


1
tcpdumpwłączy tryb rozwiązany dla Ciebie. Nie musisz tego robić (i pamiętaj, aby go cofnąć po zakończeniu) ręcznie.
— Celada,

0

Wymyślasz koło na nowo.

Zakładając, że masz prostą sieć z klientami łączącymi się z przełącznikami, z domyślną bramą do Internetu, wystarczy monitorować tylko na tej domyślnej bramie. Będzie to punkt dławikowy pokazujący cały ruch między klientem sieci LAN a Internetem.

Zakładam, że ruch LAN między klientem LAN nie jest interesujący, ponieważ przy wszystkich adresach IP w tej samej podsieci IP ruch lokalny nie dotyka bramy domyślnej.

Jeśli naprawdę chcesz zobaczyć cały ruch, każdy użytkownik musi znajdować się we własnej sieci IP, a ruch do innych sieci odbywa się za pośrednictwem domyślnej bramy. Możesz przydzielić / 28 każdej osobie, a ona może mieć 14 adresów IP dla siebie.

Twój przeciętny domowy router nie poradzi sobie z tym zbyt wiele, musisz zbadać dedykowaną dystrybucję zapory ogniowej. Osobiście pfsense będzie moim celem, ale istnieje wiele opcji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.