tcpdump

Przewodnik po narzędziu do analizy ruchu sieciowego TCPDUMP

Przewodnik po narzędziu do analizy ruchu sieciowego TCPDUMP

Tcpdump to narzędzie wiersza poleceń do sniffowania pakietów sieciowych. Jest najczęściej używany do rozwiązywania problemów z sieciami i testowania problemów z bezpieczeństwem. Pomimo braku graficznego interfejsu użytkownika jest to najpopularniejsze, potężne i wszechstronne narzędzie wiersza poleceń.

Jest natywny dla Linuksa, więc większość dystrybucji Linuksa instaluje go jako część standardowego systemu operacyjnego. Tcpdump to program z interfejsem libpcap, który jest biblioteką do przechwytywania datagramów sieciowych.

W tym artykule wyjaśnimy tcpdump, pokazując, jak przechwytywać, odczytywać i analizować przechwycony ruch sieciowy w tym narzędziu. Później wykorzystamy naszą wiedzę do sprawdzania pakietów danych za pomocą zaawansowanych filtrów flag TCP flag.

Instalacja Tcpdump

Domyślna instalacja Tcpdump w twojej dystrybucji zależy od opcji wybranych podczas procesu instalacji. W przypadku instalacji niestandardowej możliwe, że pakiet nie jest dostępny. Możesz sprawdzić instalację tcpdump za pomocą dpkg polecenie z „-s" opcja.

ubuntu$ubuntu:~$ dpkg -s tcpdump

Lub użyj polecenia „sudo apt-get install tcpdump”, aby zainstalować tcpdump w systemie Ubuntu Linux.

Przechwytywanie pakietów w Tcpdump:

Aby rozpocząć proces przechwytywania, najpierw musimy znaleźć nasz interfejs roboczy za pomocą „ifconfig" Komenda. Lub możemy wyświetlić listę wszystkich dostępnych interfejsów za pomocą tcpdump polecenie z „-re" opcja.

ubuntu$ubuntu:~$ tcpdump -D

Aby rozpocząć proces przechwytywania, możesz użyć składni;

tcpdump [-opcje] [wyrażenie]

Na przykład w poniższym poleceniu używamy „-ja” opcja przechwytywania ruchu na “enp0s3” interfejs, z „-do” flaga ograniczająca przechwycone pakiety i zapis”-w” to do test_capture test.PCAP plik.

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -c 20 -w /tmp/test_capture.PCAP

Podobnie możesz użyć różnych kombinacji filtrów, aby izolować ruch zgodnie ze swoimi wymaganiami. Jeden z takich przykładów obejmuje przechwytywanie danych sieciowych wychodzących i przychodzących do hosta za pomocą gospodarz polecenie dla konkretnego Port. Ponadto użyłem „-nie” flaga uniemożliwiająca tcpdump przechwytywanie wyszukiwań DNS. Ta flaga jest bardzo pomocna w nasycaniu ruchu podczas rozwiązywania problemów z siecią.

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -c 20 host 10.0.2.15 i dst port 80 -w /tmp/test_capture1.PCAP
tcpdump: nasłuch na enp0s3, link-type EN10MB (Ethernet), rozmiar przechwytywania 262144 bajtów
20 przechwyconych pakietów
21 pakietów odebranych przez filtr
0 pakietów porzuconych przez jądro

Używamy "i” polecenie do przechwytywania tylko pakietów zawierających hosta 10.0.2.15 i port docelowy 80. Podobnie można zastosować różne inne filtry, aby ułatwić zadania związane z rozwiązywaniem problemów.

Jeśli nie chcesz używać „-do” flaga, aby ograniczyć ruch przechwytywania, możesz użyć sygnału przerwania, i.mi., Ctrl+C, zatrzymać proces izolacji.

Czytanie plików Tcpdump

Czytanie przechwyconych plików tcpdump może być bardzo przytłaczające. Domyślnie tcp przypisuje nazwy do adresów IP i portów. Użyjemy „-r” flaga do odczytu naszego już przechwyconego pliku test_capture test.PCAP zapisane w in /tmp teczka. Prześlemy wyjście do awk polecenie, aby wyprowadzić tylko źródłowy adres IP i porty i przekazać go do polecenia głowa aby wyświetlić tylko pierwsze 5 wpisów.

ubuntu$ubuntu:~$ sudo tcpdump -r /tmp/test_capture1.pcp | awk -F “ ” 'drukuj$3' | głowa -5
odczyt z pliku /tmp/test_capture.pcap, link-type EN10MB (Ethernet)
Ubuntu IP.53298
Ubuntu IP.53298
Ubuntu IP.53298
Ubuntu IP.53298
Ubuntu IP.53298

Zaleca się jednak używanie adresów IP i portów w liczbach, aby rozwiązać problemy z siecią. Wyłączymy rozpoznawanie nazw IP za pomocą „-nie” flagi i nazwy portów z „-nn“.

ubuntu$ubuntu:~$ sudo tcpdump -i enp0s3 -n
tcpdump: gadatliwe wyjście wyłączone, użyj -v lub -vv do pełnego dekodowania protokołu
nasłuch na enp0s3, link-type EN10MB (Ethernet), rozmiar przechwytywania 262144 bajtów
20:08:22.146354 IP 10.0.2.15.54080 > 172.67.39.148.443: Flagi [P.], seq 1276027591:1276027630, ack 544039114, win 63900, długość 39
20:08:22.146745 IP 10.0.2.15.43456 > 54.204.39.132.443: Flagi [P.], seq 3381018839:3381018885, ack 543136109, win 65535, długość 46
20:08:22.147506 IP 172.67.39.148.443 > 10.0.2.15.54080: Flagi [.], ack 39, wygrana 65535, długość 0
20:08:22.147510 IP 54.204.39.132.443 > 10.0.2.15.43456: Flagi [.], ack 46, wygrana 65535, długość 0
20:08:22.202346 IP 216.58.209.142.443 > 10.0.2.15.41050: Flagi [P.], seq 502925703:502925826, ack 1203118935, win 65535, długość 123
20:08:22.202868 IP 10.0.2.15.41050 > 216.58.209.142.443: Flagi [P.], seq 1:40, ack 123, wygrana 65535, długość 39

Zrozumienie przechwyconych danych wyjściowych

Tcpdump przechwytuje wiele protokołów, w tym UDP, TCP, ICMP itp. Nie jest łatwo omówić je wszystkie tutaj. Jednak ważne jest, aby zrozumieć, w jaki sposób wyświetlane są informacje i jakie są w nich parametry.

Tcpdump wyświetla każdy pakiet w linii, ze znacznikiem czasu i informacjami dotyczącymi protokołu. Ogólnie format protokołu TCP jest następujący:

. > .: , , , , ,

Wyjaśnijmy jedno z przechwyconych pól pakietu według pola:

20:08:22.146354 IP 10.0.2.15.54080 > 172.67.39.148.443: Flagi [P.], seq 1276027591:1276027630, ack 544039114, win 63900, długość 39
  • 20:08:22.146354: Znacznik czasu przechwyconego pakietu
  • IP: protokół warstwy sieci.
  • 10.0.2.15.54080: To pole zawiera źródłowy adres IP i źródłowy port.
  • 172.67.39.148.443: To pole reprezentuje docelowy adres IP i numer portu.
  • Flagi[P.]/: Flagi reprezentują stan połączenia. W tym przypadku [P.] wskazuje pakiet potwierdzenia PUSH. Pole flag zawiera również inne wartości, takie jak:
    1. S: SYN
    2. P: WCIŚNIJ
    3. [.]: POTW
    4. F: FIN
    5. [S.]: SYN_ACK
    6. R: RST
  • seq 1276027591:1276027630: Numer sekwencyjny w pierwszym: ostatni format oznacza liczbę danych w pakiecie. Wyłączając pierwszy pakiet, w którym liczby są bezwzględne, kolejne pakiety mają liczby względne. W tym przypadku liczby tutaj oznaczają, że pakiet zawiera bajty danych od 1276027591 do 1276027630.
  • ack 544039114: Numer potwierdzenia przedstawia następny oczekiwany numer sekwencji danych.
  • win 63900: Rozmiar okna przedstawia liczbę dostępnych bajtów w odebranym buforze.
  • length 39: Długość danych ładunku, w bajtach.

Filtry zaawansowane

Teraz możemy użyć zaawansowanych opcji filtrowania nagłówków, aby wyświetlić i przeanalizować tylko pakiety danych. W każdym pakiecie TCP flagi TCP zaczynają się od 14 bajtu, tak że PSH i ACK są reprezentowane przez 4 i 5 bity.

Możemy wykorzystać te informacje, włączając te bity 00011000 lub 24 aby wyświetlić pakiety danych tylko z flagami PSH i ACK. Numer ten przekazujemy do tcpdump z filtrem “tcp[13]=24“, zauważ, że indeks tablicy w TCP zaczyna się od zera.

Odfiltrujemy ten pakiet z naszego text_capture.PCAP plik i użyj -ZA opcja wyświetlania wszystkich szczegółów pakietu dla Ciebie.

Podobnie możesz odfiltrować inne pakiety flag, używając „tcp[13]=8” i „tcp[13]=2” tylko dla flag PSH i SYN itp.

ubuntu$ubuntu:~$ sudo tcpdump -A 'tcp[13]=24' -r /tmp/test_capture.PCAP
odczyt z pliku /tmp/test_capture.pcap, link-type EN10MB (Ethernet)
19:26:17.827902 IP ubuntu.53298 > 32.121.122.34.pne.treśćużytkownika google.com.http: Flagi [P.], seq 4286571276:4286571363, ack 252096002, win 64240, długość 87: HTTP: GET / HTTP/1.1
E… :?@[email protected].
…"zy .2.P… P… GET / HTTP/1.1
Host: sprawdzanie łączności.ubuntu.com
Zaakceptować: */*
Połączenie: zamknij

Wniosek

W tym artykule przedstawiliśmy Ci niektóre z najważniejszych tematów tcpdump. Tcpdump w połączeniu z mocą CLI może być bardzo pomocny w rozwiązywaniu problemów z siecią, automatyzacji i zarządzaniu bezpieczeństwem. Po przestudiowaniu i połączeniu jego filtry i opcje wiersza poleceń mogą w znacznym stopniu przyczynić się do codziennych zadań związanych z rozwiązywaniem problemów i automatyzacją oraz z ogólnym zrozumieniem sieci.

Gry Jak zainstalować League Of Legends na Ubuntu 14.04
Jak zainstalować League Of Legends na Ubuntu 14.04
Jeśli jesteś fanem League of Legends, to jest okazja do przetestowania League of Legends. Pamiętaj, że LOL jest obsługiwany w PlayOnLinux, jeśli jeste...
Gry Zainstaluj najnowszą grę strategiczną OpenRA na Ubuntu Linux
Zainstaluj najnowszą grę strategiczną OpenRA na Ubuntu Linux
OpenRA to darmowy silnik gier strategicznych czasu rzeczywistego, który odtwarza wczesne gry Westwood, takie jak klasyczny Command & Conquer: Red Aler...
Gry Zainstaluj najnowszy emulator Dolphin dla Gamecube i Wii w systemie Linux
Zainstaluj najnowszy emulator Dolphin dla Gamecube i Wii w systemie Linux
Emulator Dolphin pozwala grać w wybrane gry Gamecube i Wii na komputerach osobistych z systemem Linux (PC). Będąc ogólnodostępnym emulatorem gier o o...