Jak korzystać z tcpdump i 6 przykładów

Jak korzystać z tcpdump i 6 przykładów

Czy próbujesz przechwycić pakiety danych, aby przeanalizować ruch w swojej sieci? Być może jesteś administratorem serwera, który wpadł na problem i chce monitorować przesyłane dane w sieci. Niezależnie od sytuacji, narzędzie tcpdump Linux jest tym, czego potrzebujesz.





W tym artykule szczegółowo omówimy polecenie tcpdump wraz z kilkoma przewodnikami dotyczącymi instalowania i używania tcpdump w systemie Linux.





Co to jest polecenie tcpdump?

Tcpdump to potężne narzędzie do monitorowania sieci, które pozwala użytkownikowi efektywnie filtrować pakiety i ruch w sieci. Możesz uzyskać szczegółowe informacje związane z TCP/IP i pakietami przesyłanymi w Twojej sieci. Tcpdump to narzędzie wiersza poleceń, co oznacza, że ​​można je uruchomić na serwerach Linux bez wyświetlacza.





Administratorzy systemu mogą również zintegrować narzędzie tcpdump z cron w celu zautomatyzowania różnych zadań, takich jak logowanie. Ponieważ jego liczne funkcje sprawiają, że jest dość wszechstronny, tcpdump działa zarówno jako narzędzie do rozwiązywania problemów, jak i narzędzie bezpieczeństwa.

Jak zainstalować tcpdump w systemie Linux

Chociaż przez większość czasu w systemie jest preinstalowany tcpdump, niektóre dystrybucje Linuksa nie są dostarczane z pakietem. Dlatego może być konieczne ręczne zainstalowanie narzędzia w systemie.



Możesz sprawdzić, czy tcpdump jest zainstalowany w twoim systemie, używając który Komenda.

which tcpdump

Jeśli dane wyjściowe wyświetlają ścieżkę katalogu ( /usr/bin/tcpdump ), to Twój system ma zainstalowany pakiet. Jeśli jednak nie, możesz to łatwo zrobić, używając domyślnego menedżera pakietów w swoim systemie.





Aby zainstalować tcpdump w dystrybucjach opartych na Debianie, takich jak Ubuntu:

sudo apt-get install tcpdump

Instalacja tcpdump na CentOS również jest łatwa.





sudo yum install tcpdump

W dystrybucjach opartych na Arch:

sudo pacman -S tcpdump

Aby zainstalować w Fedorze:

sudo dnf install tcpdump

Pamiętaj, że pakiet tcpdump wymaga libcap jako zależność, więc upewnij się, że zainstalowałeś go również w swoim systemie.

Przykłady Tcpdump do przechwytywania pakietów sieciowych w systemie Linux

Teraz, gdy pomyślnie zainstalowałeś tcpdump na swoim komputerze z systemem Linux, nadszedł czas, aby monitorować niektóre pakiety. Ponieważ tcpdump wymaga uprawnień administratora do wykonywania większości operacji, będziesz musiał dodać sudo do twoich poleceń.

1. Wyświetl listę wszystkich interfejsów sieciowych

Aby sprawdzić, które interfejsy sieciowe są dostępne do przechwytywania, użyj -D flagę za pomocą polecenia tcpdump.

tcpdump -D

Mijając --lista-interfejsów flaga jako argument zwróci to samo wyjście.

tcpdump --list-interfaces

Wynikiem będzie lista wszystkich interfejsów sieciowych obecnych w twoim systemie.

Po uzyskaniu listy interfejsów sieciowych nadszedł czas, aby monitorować sieć, przechwytując pakiety w systemie. Chociaż możesz określić, którego interfejsu chcesz używać, każdy polecenia argument tcpdump do przechwytywania pakietów sieciowych przy użyciu dowolnego aktywnego interfejsu.

tcpdump --interface any

System wyświetli następujące dane wyjściowe.

jak gorący może być procesor?

Związane z: Co to jest model połączenia systemów otwartych?

2. Format wyjściowy tcpdump

Począwszy od trzeciego wiersza, każdy wiersz wyjścia oznacza określony pakiet przechwycony przez tcpdump. Oto jak wygląda wyjście pojedynczego pakietu.

17:00:25.369138 wlp0s20f3 Out IP localsystem.40310 > kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 33

Należy pamiętać, że nie wszystkie pakiety są przechwytywane w ten sposób, ale jest to ogólny format, po którym następuje większość z nich.

Dane wyjściowe zawierają następujące informacje.

  1. Znacznik czasu odebranego pakietu
  2. Nazwa interfejsu
  3. Przepływ pakietów
  4. Nazwa protokołu sieciowego
  5. Adres IP i szczegóły portu
  6. Flagi TCP
  7. Numer sekwencyjny danych w pakiecie
  8. Potwierdź dane
  9. Rozmiar okna
  10. Długość pakietu

Pierwsze pole ( 17: 00: 25.369138 ) wyświetla sygnaturę czasową wysłania lub odebrania pakietu przez system. Zarejestrowany czas jest pobierany z lokalnego czasu systemu.

zainicjuj nowe okna dysku twardego 10

Drugie i trzecie pole oznaczają używany interfejs i przepływ pakietu. W powyższym fragmencie wlp0s20f3 to nazwa interfejsu bezprzewodowego i Na zewnątrz to przepływ pakietów.

Czwarte pole zawiera informacje związane z nazwą protokołu sieciowego. Generalnie znajdziesz dwa protokoły- IP oraz IP6 , gdzie IP oznacza IPV4, a IP6 to IPV6.

Następne pole zawiera adresy IP lub nazwę systemu źródłowego i docelowego. Po adresach IP następuje numer portu.

Szóste pole w danych wyjściowych składa się z flag TCP. W danych wyjściowych tcpdump są używane różne flagi.

Nazwa flagiWartośćOpis
WZROKSPołączenie rozpoczęte
KOŃCZYĆ SIĘFPołączenie zakończone
NACISKAĆPDane są przesyłane
RSTrPołączenie zostało zresetowane
NIESTETY.Potwierdzenie

Dane wyjściowe mogą również zawierać kombinację kilku flag TCP. Na przykład, FLAGA [f.] oznacza pakiet FIN-ACK.

Przechodząc dalej we fragmencie wyjściowym, następne pole zawiera numer sekwencyjny ( kolejne 196:568 ) danych w pakiecie. Pierwszy pakiet ma zawsze dodatnią liczbę całkowitą, a kolejne pakiety wykorzystują względny numer sekwencyjny w celu poprawy przepływu danych.

Następne pole zawiera numer potwierdzenia ( potwierdz 1 ) lub prosty numer Ack. Pakiet przechwycony w maszynie nadawcy ma 1 jako numer potwierdzenia. Po stronie odbiorcy numer Ack jest wartością następnego pakietu.

Dziewiąte pole danych wyjściowych uwzględnia rozmiar okna ( wygraj 309 ), czyli liczba bajtów dostępnych w buforze odbiorczym. Istnieje kilka innych pól, które następują po rozmiarze okna, w tym maksymalny rozmiar segmentu (MSS).

Ostatnie pole ( długość 33 ) zawiera długość całego pakietu przechwyconego przez tcpdump.

3. Ogranicz liczbę przechwyconych pakietów

Podczas uruchamiania polecenia tcpdump po raz pierwszy możesz zauważyć, że system kontynuuje przechwytywanie pakietów sieciowych do momentu przekazania sygnału przerwania. Możesz zmienić to domyślne zachowanie, określając wcześniej liczbę pakietów, które chcesz przechwycić, używając przycisku -C flaga.

tcpdump --interface any -c 10

Wspomniane polecenie przechwyci dziesięć pakietów z dowolnego aktywnego interfejsu sieciowego.

4. Filtruj pakiety na podstawie pól

Gdy rozwiązujesz problem, uzyskanie dużego bloku tekstu wyjściowego na terminalu nie ułatwia tego. W tym miejscu w grę wchodzi funkcja filtrowania w tcpdump. Możesz filtrować pakiety według różnych pól, w tym hosta, protokołu, numeru portu i innych.

Aby przechwycić tylko pakiety TCP, wpisz:

tcpdump --interface any -c 5 tcp

Podobnie, jeśli chcesz filtrować dane wyjściowe za pomocą numeru portu:

tcpdump --interface any -c 5 port 50

Wyżej wymienione polecenie pobierze tylko pakiety przesyłane przez określony port.

Aby uzyskać szczegóły pakietu dla konkretnego hosta:

tcpdump --interface any -c 5 host 112.123.13.145

Jeśli chcesz filtrować pakiety wysyłane lub odbierane przez określonego hosta, użyj src lub itp argument z poleceniem.

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

Możesz także użyć operatorów logicznych oraz oraz lub połączyć ze sobą dwa lub więcej wyrażeń. Na przykład, aby uzyskać pakiety należące do źródłowego adresu IP 112.123.13.145 i skorzystaj z portu 80 :

tcpdump --interface any -c 10 src 112.123.13.145 and port 80

Złożone wyrażenia można grupować za pomocą zdanie wtrącone następująco:

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Wyświetl zawartość pakietu

Możesz użyć -DO oraz -x flagi za pomocą polecenia tcpdump, aby przeanalizować zawartość pakietu sieciowego. ten -DO flaga oznacza ASCII format i -x oznacza szesnastkowy format.

Aby wyświetlić zawartość następnego pakietu sieciowego przechwyconego przez system:

tcpdump --interface any -c 1 -A
tcpdump --interface any -c 1 -x

Powiązane: Co to jest utrata pakietów i jak naprawić jej przyczynę?

6. Zapisz dane przechwytywania do pliku

Jeśli chcesz zapisać dane przechwytywania w celach referencyjnych, tcpdump jest po to, aby ci pomóc. Po prostu zdaj -w flaga z domyślnym poleceniem zapisu danych wyjściowych do pliku zamiast wyświetlania go na ekranie.

tcpdump --interface any -c 10 -w data.pcap

ten .pcap rozszerzenie pliku oznacza przechwytywanie pakietów dane. Możesz również wydać wyżej wymienione polecenie w trybie pełnym, używając -v flaga.

tcpdump --interface any -c 10 -w data.pcap -v

Aby przeczytać .pcap plik za pomocą tcpdump, użyj -r flaga, po której następuje ścieżka pliku. ten -r oznacza Czytać .

kopiuj pliki z jednego dysku Google na inny
tcpdump -r data.pcap

Możesz także filtrować pakiety sieciowe z danych pakietowych zapisanych w pliku.

tcpdump -r data.pcap port 80

Monitorowanie ruchu sieciowego w systemie Linux

Jeśli przydzielono Ci zadanie administrowania serwerem Linux, to polecenie tcpdump jest świetnym narzędziem do włączenia do swojego arsenału. Możesz łatwo rozwiązać problemy związane z siecią, przechwytując pakiety przesyłane w sieci w czasie rzeczywistym.

Ale przed tym wszystkim Twoje urządzenie musi być połączone z Internetem. Dla początkujących Linuksa nawet łączenie się z Wi-Fi za pomocą wiersza poleceń może być nieco trudne. Ale jeśli używasz odpowiednich narzędzi, to bardzo proste.

Udział Udział Ćwierkać E-mail Jak połączyć się z Wi-Fi przez terminal Linux za pomocą Nmcli?

Chcesz połączyć się z siecią Wi-Fi za pomocą wiersza poleceń systemu Linux? Oto, co musisz wiedzieć o poleceniu nmcli.

Czytaj dalej
Powiązane tematy
  • Linux
  • Bezpieczeństwo
  • Kryminalistyka sieci
O autorze Deepesh Sharma(79 opublikowanych artykułów)

Deepesh to Junior Editor dla Linuksa w MUO. Pisze przewodniki informacyjne o Linuksie, których celem jest zapewnienie błogiego doświadczenia wszystkim nowicjuszom. Nie jestem pewien co do filmów, ale jeśli chcesz porozmawiać o technologii, to jest twój facet. W wolnym czasie można go spotkać czytającego książki, słuchającego różnych gatunków muzycznych lub grającego na gitarze.

Więcej od Deepesha Sharma

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować