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.
- Znacznik czasu odebranego pakietu
- Nazwa interfejsu
- Przepływ pakietów
- Nazwa protokołu sieciowego
- Adres IP i szczegóły portu
- Flagi TCP
- Numer sekwencyjny danych w pakiecie
- Potwierdź dane
- Rozmiar okna
- 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 flagi | Wartość | Opis |
---|---|---|
WZROK | S | Połączenie rozpoczęte |
KOŃCZYĆ SIĘ | F | Połączenie zakończone |
NACISKAĆ | P | Dane są przesyłane |
RST | r | Połą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
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 SharmaZapisz 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ć