Jak używać polecenia TCPDUMP w Linux
- 4861
- 951
- Tomasz Szatkowski
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
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
NOTATKAWszystkie 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
- « Jak odczytać i zmienić wartość parametrów jądra za pomocą Sysctl
- Jak pracować z WooCommerce Rest API z Pythonem »