Jak używać polecenia TCPDUMP w Linux

Jak używać polecenia TCPDUMP w Linux

TCPDUMP Polecenie może być używane do przechwytywania ruchu sieciowego w systemie Linux. Jest to wszechstronne narzędzie wiersza poleceń, na którym administratorzy sieci często polegają na rozwiązywaniu problemów.

Znajdziesz to, że ilość ruchu sieciowego przechwyconego na interfejsie może być łatwo przytłaczająca. tcmpdump Ułatwia naszą pracę, umożliwiając nam izolowanie tylko ruchu, którym jesteśmy zainteresowani. Oczywiście, aby to zrobić, musisz zapoznać się z różnymi flagami i ustawieniami, które pasują do polecenia.

W tym przewodniku zobaczysz, jak używać TCPDUMP Poprzez przykłady i wyjaśnienia. Podążaj za własnym systemem, jeśli chcesz nauczyć się przechwytywania ruchu sieciowego i opanować TCPDUMP Komenda.

W tym samouczku nauczysz się:

  • Jak zainstalować TCPDump na głównych dystrybucjach Linux
  • Przykłady polecenia TCPDUMP
  • Jak filtrować ruch TCPDUMP według portu, protokołu, źródła i docelowego
  • Jak napisać przechwytywanie TCPDUMP do złożenia
  • Jak interpretować dane wyjściowe polecenia TCPDUMP
Korzystanie z polecenia TCPDUMP do przechwytywania ruchu sieciowego w Linux Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Każda dystrybucja Linux
Oprogramowanie TCPDUMP
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Zainstaluj TCPDUMP na głównych dystrybucjach Linux

Istnieje duża szansa, że ​​Twój Linux Distro już ma TCPDUMP Domyślnie zainstalowane, zwłaszcza jeśli prowadzisz dystrybucję skierowaną do serwerów. Na wypadek, gdyby nie został jeszcze zainstalowany, możesz użyć odpowiedniego polecenia poniżej, aby zainstalować je za pośrednictwem menedżera pakietów systemu.

Aby zainstalować TCPDump na Ubuntu, Debian i Linux Mint:

$ sudo apt instal tcpdump 

Aby zainstalować TCPDump na Centos, Fedora, Almalinux i Red Hat:

$ sudo dnf instaluj tcpdump 

Aby zainstalować TCPDump na Arch Linux i Manjaro:

$ sudo pacman -s tcpdump 

Przykłady polecenia TCPDUMP

NOTATKA
Wszystkie Twoje TCPDUMP Polecenia muszą być wykonywane za pomocą konta użytkownika root lub za pomocą sudo. Narzędzie wymaga uprawnień administratora w celu uruchomienia.

Najpopularniejszą formą polecenia jest użycie narzędzia bez dodatkowych opcji, takich jak to:

# tcpdump 

Jeśli nie określisz, z którego interfejsu sieciowego chcesz przechwycić ruch, jak w powyższym poleceniu, wtedy TCPDUMP wybierze dla Ciebie interfejs.

Będzie kontynuował „zrzucanie” schwytanego ruchu do terminalu, dopóki nie przerwasz polecenia. Najłatwiej to zrobić Ctrl + c.

Jeśli masz więcej niż jeden interfejs sieciowy, najlepiej będzie określić, na którym interfejsie próbujesz uchwycić ruch TCPDUMP nie może domyślnie wybrać tego, który chcesz. Użyj -D opcja wydrukowania listy interfejsów sieciowych, które TCPDUMP mogą korzystać.

# tcpdump -d 1.ENP0S3 [w górę, uruchamianie] 2.lo [w górę, bieganie, pętla] 3.Każdy (pseudo-urządzenie, które oddaje się na wszystkich interfejsach) [w górę, działanie] 4.Bluetooth-Monitor (Bluetooth Linux Monitor) [Brak] 5.Interfejs NFLog (Log Log Netfilter (NFLog)) [Brak] 6.NFQueue (interfejs linii Netfilter Queue (NFQUEUE)) [Brak] 

Mamy kilka różnych interfejsów, których możemy użyć. Alternatywnie mamy każdy Dostępna opcja, która pozwoli nam przechwytywać ruch we wszystkich interfejsach sieciowych jednocześnie. Jeśli chcemy przechwycić ruch sieciowy na ENP0S3 interfejs, użylibyśmy następującej składni polecenia.

# tcpdump -i enp0s3 

Możesz użyć -v opcja zwiększenia gadatości wyjścia, lub -vv I -VVV aby jeszcze bardziej go zwiększyć.

# tcpdump -i enp0s3 -vv 

Jeśli nie chcesz TCPDUMP Aby nieskończenie wysyłać dane do terminalu, możesz użyć -C Opcja określa, ile pakietów chcesz przechwycić narzędzie. TCPDUMP przestanie wykonać polecenie po osiągnięciu progu, zamiast czekać, aż przerwie. Następujące polecenie pozwoli nam uchwycić tylko pierwsze 15 pakietów.

# tcpdump -c 15 

Jeśli nie chcesz TCPDUMP Aby wykonać rozdzielczość DNS na adresach sieciowych w wyjściu, możesz użyć -N Opcja w twoim poleceniu. Wyświetli to wszystkie adresy sieciowe jako adresy IP, zamiast rozwiązywać je do nazw domen.

# tcpdump -n 

Jeśli wolisz zapisać wyjście ruchu sieciowego na pliku, zamiast mieć go na ekranie, zawsze możesz przekierować TCPDUMP wyjście ze zwykłym > I >> operatorzy.

# tcpdump> ruch.tekst 

Inną opcją jest zapisanie przechwytywania sieci do pliku. Te pliki zwykle mają .PCAP rozszerzenie pliku i nie można go odczytać przez zwykłego edytora tekstu.

# Tcpdump -n -w.PCAP 

Aby otworzyć plik do późniejszej analizy, użyj -R opcja i nazwa pliku.

# TCPDUMP -R Ruch.PCAP 

Interpretuj wyjście polecenia TCPDUMP

Każdy pakiet to TCPDUMP Captures są napisane jako indywidualna linia. Jedna z tych linii będzie wyglądać mniej więcej tak:

14:21:46.134249 IP 10.0.2.15.54000> 104.16.168.35.443: Flagi [.], Ack 2915, Win 63000, długość 0 

Oto jak zinterpretować tę linię danych:

  • 14:21:46.134249 - Znacznik czasu, gdy pakiet został schwytany.
  • IP 10.0.2.15.54000 - IP i numer portu hosta źródłowego.
  • 104.16.168.35.443 - IP i numer portu hosta docelowego.
  • Flagi [.] - Flagi TCP (SYN, ACK, PSH itp.). [[[.] oznacza ack.
  • ACK 2915 - Numer potwierdzenia.
  • Win 63000 - Numer okna (bajty w buforze odbiorczym).
  • długość 0 - Długość danych ładunku.

Filtruj ruch TCPDUMP

Jedna z najlepszych cech TCPDUMP jest to, że możemy odfiltrować dokładnie ruch, który chcemy zobaczyć. Bez filtrowania ruchu za pomocą adaptera (jak pokazano powyżej), numer portu i protokół pakietów, ilość przechwyconego ruchu może szybko stać się przytłaczająca i prawie niemożliwa do przesiewania.

Pomimo nazwy TCPDUMP, Możemy użyć narzędzia do odfiltrowania wszelkiego rodzaju ruchu, a nie tylko TCP. Na przykład użyj następującej składni, aby odfiltrować ruch, który używa UDP.

# tcpdump -n udp 

Lub następujący przykład, który filtruje ICMP:

# tcpdump -n icmp 

Możesz także użyć odpowiedniego numeru protokołu, aby odfiltrować określony protokół. Na przykład ICMP jest protokołem nr 1, więc następująca składnia zrobi to samo, co poprzedni przykład.

# tcpdump -n proto 1 

Aby zobaczyć pełną listę protokołów sieciowych i ich odpowiednich liczb, sprawdź listę numerów protokołów IP na Wikipedii.

Aby filtrować ruch za pomocą określonego adresu IP docelowego lub źródłowego, możemy użyć gospodarz kwalifikator z -N opcja. Na przykład, aby filtrować ruch związany z hostem na adres IP 10.10.150.20:

# tcpdump -n host 10.10.150.20 

Alternatywnie użyj internet kwalifikator, jeśli chcesz odfiltrować ruch do lub z całej sieci. Na przykład następujące polecenie filtruje ruch związany z 192.168.1.0/24 sieć.

# tcpdump -n net 192.168.1 

Użyj Port I Portang kwalifikacje do filtrowania pakietów związanych odpowiednio z określonym zakresem portu lub portu. Na przykład następujące polecenie filtruje nasz ruch związany z portem 80 (HTTP).

# tcpdump -n port 80 

Lub, aby filtrować ruch z portów 20-30, zostanie użyte następujące polecenie.

# tcpdump -n portren 20-30 

Dodaj dst, src, SRC i DST, I SRC lub DST kwalifikacje, jeśli chcesz filtrować na podstawie adresu źródłowego i/lub docelowego lub portu pakietów. Na przykład następujące polecenie odfiltruje pakiety, które mają źródło adresu IP 10.10.150.20.

# tcpdump -n src host 10.10.150.20 

Lub w tym przykładzie filtrujemy pakiety przeznaczone dla portu SSH (port 22).

# tcpdump -n dst port 22 

Łączenie filtrów

Możemy połączyć te różne filtry omówione powyżej za pomocą I (&&), Lub (||), I nie (!) Operatorzy w naszych TCPDUMP Komenda.

Na przykład następujące polecenie uchwyci ruch, który jest przeznaczony 10.10.150.20 Na porcie 80 (HTTP).

# tcpdump -n dst host 10.10.150.20 i Port TCP 80 

Lub stwórz jeszcze więcej ziarnistych filtrów, łącząc reguły w nawiasach. Na przykład to polecenie zrobi to samo co poprzedni, ale także przechwytuje port 443 (HTTPS).

# tcpdump -n 'dst host 10.10.150.20 i (port TCP 80 lub Port TCP 443) ' 

Zamykanie myśli

W tym przewodniku widzieliśmy, jak korzystać z TCPDUMP Narzędzie wiersza poleceń do przechwytywania ruchu sieciowego w systemie Linux. Jak widzieliśmy w tym samouczku, polecenie może być dość złożone i zaakceptować bardzo szczegółowe dane wejściowe, co pozwala nam odfiltrować dokładny ruch, który chcemy zobaczyć.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
  • Podstawowe polecenia Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Jak zrobić zrzut ekranu na Kali Linux
  • Jak zrobić zrzut ekranu na Manjaro