Rozwiązywanie problemów z siecią w systemie Linux

Rozwiązywanie problemów z siecią w systemie Linux

W tym artykule wyjaśnimy, jak rozwiązywać problemy z siecią w systemie Linux za pomocą polecenia tcpdump.

tcpdump to elastyczny, potężny analizator pakietów wiersza poleceń; oraz libpcap, przenośna biblioteka C/C++ do przechwytywania ruchu sieciowego. Potężne i wszechstronne narzędzie, które zawiera wiele opcji i filtrów, tcpdump może być używane w różnych przypadkach. Ponieważ jest to narzędzie wiersza poleceń, idealnie nadaje się do uruchamiania na zdalnych serwerach lub urządzeniach, dla których GUI nie jest dostępny, w celu zbierania danych, które można później przeanalizować. Można go również uruchomić w tle lub jako zaplanowane zadanie za pomocą narzędzi takich jak cron.

Zacznijmy od procesu instalacji.

1. Zainstaluj tcpdump

Jeśli tcpdump nie jest jeszcze zainstalowany w twoim systemie, możesz go zainstalować za pomocą następującego polecenia:

Dla systemu opartego na CentOS lub Red Hat Enterprise Linux:

# dnf install tcpdump -y

Dla systemu opartego na Ubuntu:

# apt-get install tcpdump -y

2. Sprawdź instalację

Aby zweryfikować instalację, użyj następującego polecenia:

# which tcpdump

Wyjście:

/usr/sbin/tcpdump

Przechwytuj pakiety za pomocą tcpdump

Przed przechwyceniem pakietów sprawdź interfejs sieciowy za pomocą następujących poleceń:

# tcpdump -D

Wyświetli wszystkie dostępne interfejsy sieciowe.

Teraz zacznijmy przechwytywać niektóre pakiety za pomocą następujących poleceń:

# tcpdump --interface any

Tcpdump kontynuuje przechwytywanie pakietów, dopóki nie otrzyma sygnału przerwania. Przechwytywanie można przerwać, naciskając Ctrl+C. Aby ograniczyć liczbę przechwyconych pakietów i zatrzymać tcpdump, użyj opcji -c (liczba):

# tcpdump -i any -c 10

Wyłącz rozpoznawanie nazw

Rozwiązywanie problemów z siecią, często łatwiej jest użyć adresów IP i numerów portów; wyłącz rozwiązywanie nazw za pomocą opcji -n i rozwiązywania portów z -nn:

# tcpdump -i any -c5 -nn

Jak powyższe polecenie przechwyci dane wyjściowe, teraz wyświetla adresy IP i numery portów.

Filtrowanie pakietów

Jedną z najpotężniejszych funkcji tcpdump jest jego zdolność do filtrowania przechwyconych pakietów przy użyciu różnych parametrów, takich jak źródłowy i docelowy adres IP, porty, protokoły itp. Przyjrzyjmy się niektórym z najczęstszych.

Aby przechwycić tylko pakiety ICMP, użyj następujących poleceń:

# tcpdump -i any -c10 icmp

Ogranicz przechwytywanie tylko do pakietów związanych z określonym hostem za pomocą filtra hosta:

# tcpdump -i any -c5 -nn host 192.168.0.12

Powyższe polecenie przechwyci i wyświetli tylko pakiety do iz hosta 192.168.0.12.

Aby filtrować pakiety na podstawie żądanej usługi lub portu, użyj filtru portów. Na przykład przechwyć pakiety związane z usługą internetową (HTTP) za pomocą tego polecenia:

# tcpdump -i any -c10 -nn port 80

Aby filtrować pakiety na podstawie źródłowego lub docelowego adresu IP lub nazwy hosta. Na przykład, aby przechwycić pakiety z hosta 192.168.0.12:

# tcpdump -i any -c10 -nn src 192.168.0.12

Zapisz ujęcia w pliku

Aby zapisać pakiety do pliku zamiast wyświetlać je na ekranie, użyj opcji -w (do zapisu):

# tcpdump -i any -c10 -nn -w webserver.pcap port 80

Powyższe polecenie pozwoli na przykład na przechwytywanie pakietów w trybie wsadowym przez noc i weryfikację wyników rano. Pomaga również, gdy jest zbyt wiele pakietów do analizy, ponieważ przechwytywanie w czasie rzeczywistym może odbywać się zbyt szybko.

Więcej przykładowych poleceń

Aby wydrukować pakiety początkowe i końcowe (pakiety SYN i FIN) każdej konwersacji TCP, która obejmuje hosta nielokalnego.

# tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'

Aby wydrukować pakiety TCP z ustawionymi flagami RST i ACK. (tj. wybierz tylko flagi RST i ACK w polu flags, a jeśli wynik to "RST i ACK oba ustawione", dopasuj)

# tcpdump 'tcp[tcpflags] & (tcp-rst|tcp-ack) == (tcp-rst|tcp-ack)'

Aby wydrukować wszystkie pakiety IPv4 HTTP do iz portu 80, tj. wydrukować tylko pakiety zawierające dane, a nie na przykład pakiety SYN i FIN oraz pakiety tylko ACK. (IPv6 jest ćwiczeniem dla czytelnika.)

# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<2)) -="" ((tcp[12]&0xf0)="">>2)) != 0)'

Aby wydrukować pakiety IP dłuższe niż 576 bajtów wysyłane przez bramkę snup:

# tcpdump 'gateway snup and ip[2:2] > 576'

Aby wydrukować pakiety emisji IP lub multiemisji, które nie zostały wysłane za pośrednictwem emisji lub multiemisji Ethernet:

# tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

Aby wydrukować wszystkie pakiety ICMP, które nie są żądaniami/odpowiedziami echa (tj. pakietami nie pingowanymi):

# tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

Sprawdź stronę man za pomocą następującego polecenia:

# man tcpdump

W tym artykule zobaczyliśmy, jak rozwiązywać problemy z siecią w systemie Linux za pomocą polecenia tcpump.

Uzyskaj wysokowydajny podwójny serwer dedykowany z serii E5 i tani serwer VPS KVM.


Jak stworzyć grupę w Linuksie

Jak stworzyć grupę w Linuksie

Grupy służą do organizowania użytkowników i ich uprawnień, takich jak odczytywanie uprawnień do pisania i wykonywania. Aby dodać grupę, polecenie to groupadd.

3 sposoby na sprawdzenie wykorzystania procesora w systemie Linux

3 sposoby na sprawdzenie wykorzystania procesora w systemie Linux

Dobrze wyjaśnij 3 sposoby sprawdzania wykorzystania procesora w systemie Linux. Wykorzystanie procesora odnosi się do wykorzystania zasobów przetwarzania lub ilości pracy obsługiwanej przez procesor.

Jak zainstalować i skonfigurować DenyHosts w CentOS 7?

Jak zainstalować i skonfigurować DenyHosts w CentOS 7?

DenyHosts jest szeroko stosowany jako alternatywa dla Fail2ban. Jeśli było zbyt wiele nieprawidłowych prób logowania SSH, zakłada się, że jego ataki brute-force lub

Zamontuj nowy dysk na serwerze Linux

Zamontuj nowy dysk na serwerze Linux

Dowiemy się, jak zamontować nowy dysk do serwera Linux. Do tej demonstracji używamy serwera w chmurze CentOS 7. teraz zamontuj partycję, jak pokazano poniżej.

Łatwa instalacja Fail2ban na Ubuntu 20.04

Łatwa instalacja Fail2ban na Ubuntu 20.04

Dobrze wyjaśnij, jak łatwo zainstalować Fail2ban na Ubuntu 20.04. Fail2ban jest napisany w języku programowania Python i jest darmowym oprogramowaniem typu open source. Konfiguracja.

Jak zainstalować WireGuard VPN na Ubuntu 20.04

Jak zainstalować WireGuard VPN na Ubuntu 20.04

Dobrze wyjaśnij, jak zainstalować WireGuard VPN na Ubuntu 20.04. WireGuard to niezwykle prosta, szybka i nowoczesna sieć VPN, która wykorzystuje najnowocześniejszą kryptografię

Jak zainstalować OpenSSL 1.1.1d w CentOS

Jak zainstalować OpenSSL 1.1.1d w CentOS

OpenSSL to solidny, w pełni funkcjonalny zestaw narzędzi klasy komercyjnej dla protokołów Transport Layer Security (TLS) i (SSL). Dowiedz się, jak zainstalować OpenSSL 1.1.1d w CentOS

Jak zainstalować i skonfigurować CSF na CentOS 8

Jak zainstalować i skonfigurować CSF na CentOS 8

Jak zainstalować i skonfigurować CSF na serwerze CentOS 8. ConfigServer Security & Firewall to zapora sieciowa (SPI), aplikacja do logowania/wykrywania włamań i zabezpieczeń.

Konfiguracja reguł audytu nie została odzwierciedlona — jak rozwiązywać problemy

Konfiguracja reguł audytu nie została odzwierciedlona — jak rozwiązywać problemy

Konfiguracja reguł audytu nie została odzwierciedlona? Dowiedz się, jak nasi inżynierowie pomocy technicznej diagnozują i rozwiązują problem.Plik konfiguracyjny reguł /etc/audit/rules.d/audit.rules

CloudLinux Wysokie obciążenie na serwerze

CloudLinux Wysokie obciążenie na serwerze

W tym artykule dowiemy się, jak nasi inżynierowie pomocy technicznej naprawiają wysokie obciążenie serwera CloudLinux. Upewnij się, że Twoje limity LVE są poprawnie skonfigurowane.