W tym przewodniku pokażemy, jak zainstalować tcpdump w systemie Linux oraz jak przechwytywać i analizować pakiety TCP/IP za pomocą tcpdump.
Jak zainstalować Tcpdump
Tcpdump jest preinstalowany w wielu dystrybucjach Linuksa. Ale jeśli nie jest jeszcze zainstalowany w twoim systemie, możesz zainstalować tcpdump w swoim systemie Linux. Aby zainstalować tcpdump w systemie Ubuntu 22.04, użyj następującego polecenia:
$ sudo apt zainstaluj tcpdump
Aby zainstalować tcpdump w Fedorze/CentOS, użyj następującego polecenia:
$ sudo dnf zainstaluj tcpdump
Jak przechwycić pakiety za pomocą polecenia Tcpdump
Aby przechwycić pakiety za pomocą tcpdump, uruchom terminal z uprawnieniami sudo, używając „Ctrl+Alt+t”. To narzędzie zawiera różne opcje i filtry do przechwytywania pakietów TCP/IP. Jeśli chcesz przechwycić wszystkie pakiety przepływające przez bieżący lub domyślny interfejs sieciowy, użyj polecenia „tcpdump” bez żadnej opcji.
$ sudo tcpdump
Podane polecenie przechwytuje pakiety domyślnego interfejsu sieciowego Twojego systemu.
Po zakończeniu wykonywania tego polecenia na terminalu zostanie wyświetlona liczba wszystkich przechwyconych i przefiltrowanych pakietów.
Rozumiemy wynik.
Tcpdump umożliwia analizę nagłówków pakietów TCP/IP. Pokazuje pojedynczą linię dla każdego pakietu, a polecenie jest kontynuowane, dopóki nie naciśniesz „Ctrl+C”, aby je zatrzymać.
Każdy wiersz dostarczony przez tcpdump zawiera następujące szczegóły:
- Znacznik czasu Uniksa (np. 02:28:57.839523)
- Protokół (IP)
- Źródłowa nazwa hosta lub adres IP i numer portu
- Docelowa nazwa hosta lub adres IP i numer portu
- Flagi TCP (np. Flagi [F.]) wskazujące stan połączenia z wartościami takimi jak S (SYN), F (FIN). (POTWIERDŹ), P (PUSH), R (RST)
- Numer kolejny danych w pakiecie (np. sekwencja 5829:6820)
- Numer potwierdzenia (np. potwierdzenie 1016)
- Rozmiar okna (np. win 65535) reprezentujący dostępne bajty w buforze odbiorczym, po których następują opcje TCP
- Długość ładunku danych (np. długość 991)
Aby wyświetlić listę wszystkich interfejsów sieciowych systemu, użyj polecenia „tcpdump” z opcją „-D”.
$ sudo tcpdump -DLub
$ tcpdump --interfejsy listTo polecenie wyświetla listę wszystkich interfejsów sieciowych podłączonych lub działających w systemie Linux.
Przechwytuj pakiety określonego interfejsu sieciowego
Jeśli chcesz przechwytywać pakiety TCP/IP przechodzące przez określony interfejs, użyj flagi „-i” z poleceniem „tcpdump” i podaj nazwę interfejsu sieciowego.
$ sudo tcpdump -i lo
Podane polecenie przechwytuje ruch na interfejsie „lo”. Jeśli chcesz wyświetlić pełną lub szczegółową informację o pakiecie, użyj flagi „-v”. Aby wydrukować bardziej szczegółowe informacje, użyj flagi „-vv” z poleceniem „tcpdump”. Regularne użytkowanie i analiza przyczyniają się do utrzymania solidnego i bezpiecznego środowiska sieciowego.
Podobnie możesz przechwycić ruch na dowolnym interfejsie za pomocą następującego polecenia:
$ sudo tcpdump -i dowolny
Przechwytuj pakiety przy użyciu określonego portu
Możesz przechwytywać i filtrować pakiety, określając nazwę interfejsu i numer portu. Na przykład, aby przechwycić pakiety sieciowe przechodzące przez interfejs „enp0s3” przy użyciu portu 22, użyj następującego polecenia:
$ tcpdump -i enp0s3 port 22Poprzednie polecenie przechwytuje wszystkie pakiety płynące z interfejsu „enp0s3”.
Przechwytuj ograniczone pakiety za pomocą Tcpdump
Możesz użyć flagi „-c” z poleceniem „tcpdump”, aby przechwycić określoną liczbę pakietów. Na przykład, aby przechwycić cztery pakiety na interfejsie „enp0s3”, użyj następującego polecenia:
$ tcpdump -i enp0s3 -c 4
Zastąp nazwę interfejsu, używając swojego systemu.
Przydatne polecenia Tcpdump do przechwytywania ruchu sieciowego
Poniżej wymieniliśmy kilka przydatnych poleceń „tcpdump”, które pomogą Ci skutecznie przechwytywać i filtrować ruch sieciowy lub pakiety:
Za pomocą polecenia „tcpdump” można przechwytywać pakiety interfejsu o zdefiniowanym docelowym lub źródłowym adresie IP.
$ tcpdump -i {nazwa-interfejsu} dst {ip-docelowy}Można przechwytywać pakiety z rozmiarem migawki wynoszącym 65535 bajtów, który różni się od domyślnego rozmiaru 262144 bajtów. W starszych wersjach tcpdump rozmiar przechwytywania był ograniczony do 68 lub 96 bajtów.
$ tcpdump -i enp0s3 -s 65535
Jak zapisać przechwycone pakiety w pliku
Jeśli chcesz zapisać przechwycone dane w pliku w celu dalszej analizy, możesz to zrobić. Przechwytuje ruch na określonym interfejsie, a następnie zapisuje go w pliku „.pcap”. Użyj następującego polecenia, aby zapisać przechwycone dane w pliku:
$ tcpdump -iNa przykład mamy interfejs „enps03”. Zapisz przechwycone dane w następującym pliku:
$ sudo tcpdump -i enps03 -w dump.pcapW przyszłości będziesz mógł odczytać ten przechwycony plik za pomocą Wireshark lub innych narzędzi do analizy sieci. Jeśli więc chcesz używać Wireshark do analizy pakietów, użyj argumentu „-w” i zapisz go w pliku „.pcap”.
Wniosek
W tym samouczku zademonstrowaliśmy, jak przechwytywać i analizować pakiety za pomocą protokołu tcpdump, korzystając z różnych przykładów. Dowiedzieliśmy się również, jak zapisywać przechwycony ruch w pliku „.pcap”, który można przeglądać i analizować za pomocą Wireshark i innych narzędzi do analizy sieci.