Pokúšate sa zachytiť dátové pakety, aby ste mohli analyzovať prenos v sieti? Možno ste správcom servera, ktorý narazil na problém a chce monitorovať prenášané údaje v sieti. Či už je situácia akákoľvek, potrebujete pomocný program tcpdump Linux.
V tomto článku sa budeme podrobne zaoberať príkazom tcpdump spolu s niektorými príručkami o tom, ako nainštalovať a používať tcpdump vo vašom systéme Linux.
Čo je príkaz tcpdump?
Tcpdump je výkonný nástroj na monitorovanie siete, ktorý umožňuje používateľovi efektívne filtrovať pakety a prenos v sieti. Môžete získať podrobné informácie týkajúce sa protokolu TCP / IP a paketov prenášaných v sieti. Tcpdump je nástroj príkazového riadku, čo znamená, že ho môžete spustiť na serveroch Linux bez obrazovky.
Správcovia systému môžu tiež integrovať obslužný program tcpdump do cron za účelom automatizácie rôznych úloh, ako je napríklad prihlásenie. Pretože je to vďaka mnohým funkciám dosť univerzálne, tcpdump funguje ako nástroj na riešenie problémov aj ako bezpečnostný nástroj.
Ako nainštalovať tcpdump na Linuxe
Aj keď väčšinu času nájdete tcpdump predinštalovaný vo vašom systéme, niektoré distribúcie Linuxu sa s týmto balíkom nedodávajú. Preto bude pravdepodobne potrebné manuálne nainštalovať pomôcku do vášho systému.
Môžete skontrolovať, či je tcpdump nainštalovaný vo vašom systéme pomocou ktoré príkaz.
ktoré tcpdump
Ak výstup zobrazuje cestu k adresáru (/usr/bin/tcpdump), potom má váš systém nainštalovaný balík. Ak nie, môžete to ľahko urobiť pomocou predvoleného správcu balíkov vo vašom systéme.
Inštalácia tcpdump na distribúcie založené na Debiane, ako je Ubuntu:
sudo apt-get nainštalovať tcpdump
Inštalácia tcpdump na CentOS je tiež jednoduchá.
sudo yum nainštalovať tcpdump
O distribúciách založených na oblúkoch:
sudo pacman -S tcpdump
Inštalácia na Fedore:
sudo dnf nainštalovať tcpdump
Upozorňujeme, že balík tcpdump vyžaduje libcap ako závislosť, takže si ho určite nainštalujte aj do svojho systému.
Príklady Tcpdump na zachytenie sieťových paketov v systéme Linux
Teraz, keď ste úspešne nainštalovali tcpdump na svojom počítači so systémom Linux, je čas sledovať niektoré pakety. Pretože tcpdump vyžaduje na vykonávanie väčšiny operácií povolenia superužívateľa, budete musieť pridať sudo podľa vašich príkazov.
1. Zoznam všetkých sieťových rozhraní
Ak chcete skontrolovať, ktoré sieťové rozhrania sú k dispozícii na zachytenie, použite -D príznak s príkazom tcpdump.
tcpdump -D
Prechádzajúce - zoznam rozhraní príznak ako argument vráti rovnaký výstup.
tcpdump --list-interfaces
Výstupom bude zoznam všetkých sieťových rozhraní, ktoré sa nachádzajú vo vašom systéme.
Po získaní zoznamu sieťových rozhraní je čas monitorovať vašu sieť zachytením paketov vo vašom systéme. Aj keď môžete určiť, ktoré rozhranie chcete použiť, akýkoľvek argument príkazov tcpdump na zachytenie sieťových paketov pomocou ľubovoľného aktívneho rozhrania.
tcpdump - rozhranie ľubovoľné
Systém zobrazí nasledujúci výstup.
Súvisiace: Čo je model prepojenia otvorených systémov?
2. Výstupný formát tcpdump
Počnúc tretím riadkom každý riadok výstupu označuje konkrétny paket zachytený tcpdump. Takto vyzerá výstup jedného paketu.
17: 00: 25.369138 wlp0s20f3 Out IP localsystem.40310> kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196: 568, ack 1, win 309, options [nop, nop, TS val 117964079 ecr 816509256], dĺžka 33
Pamätajte, že nie všetky pakety sú zachytené týmto spôsobom, ale toto je všeobecný formát, ktorý nasleduje väčšina z nich.
Výstup obsahuje nasledujúce informácie.
- Časová pečiatka prijatého paketu
- Názov rozhrania
- Tok paketov
- Názov sieťového protokolu
- IP adresa a podrobnosti o porte
- Príznaky TCP
- Poradové číslo údajov v pakete
- Ack dáta
- Veľkosť okna
- Dĺžka paketu
Prvé pole (17:00:25.369138) zobrazuje časovú značku, keď váš systém odoslal alebo prijal paket. Zaznamenaný čas sa extrahuje z miestneho času vášho systému.
Druhé a tretie pole označuje použité rozhranie a tok paketu. V úryvku vyššie wlp0s20f3 je názov bezdrôtového rozhrania a Von je tok paketov.
Štvrté pole obsahuje informácie týkajúce sa názvu sieťového protokolu. Spravidla nájdete dva protokoly - IP a IP6, kde IP označuje IPV4 a IP6 je pre IPV6.
Nasledujúce pole obsahuje adresy IP alebo názov zdrojového a cieľového systému. Za adresami IP nasleduje číslo portu.
Šieste pole na výstupe pozostáva z príznakov TCP. Vo výstupe tcpdump sa používajú rôzne príznaky.
Názov vlajky | Hodnota | Popis |
---|---|---|
SYN | S | Pripojenie sa začalo |
FIN | F | Pripojenie ukončené |
TAM | P | Údaje sa tlačia |
RST | R | Pripojenie bolo obnovené |
ACK | . | Poďakovanie |
Výstup môže obsahovať aj kombináciu niekoľkých príznakov TCP. Napríklad, VLAJKA [f.] je skratka pre paket FIN-ACK.
V nasledujúcom poli výstupného úryvku obsahuje ďalšie pole poradové číslo (seq 196: 568) údajov v pakete. Prvý paket má vždy kladnú hodnotu celého čísla a nasledujúce pakety používajú na zlepšenie toku údajov relatívne poradové číslo.
Nasledujúce pole obsahuje číslo potvrdenia (ack 1) alebo jednoduché Áčkove číslo. Paket zachytený v prístroji odosielateľa má ako potvrdzovacie číslo 1. Na konci prijímača je Ack číslo hodnotou nasledujúceho paketu.
Deviate pole vo výstupe zodpovedá veľkosti okna (vyhraj 309), čo je počet bajtov dostupných v prijímacej vyrovnávacej pamäti. Existuje niekoľko ďalších polí, ktoré sledujú veľkosť okna, vrátane maximálnej veľkosti segmentu (MSS).
Posledné pole (dĺžka 33) obsahuje dĺžku celkového paketu zachyteného tcpdump.
3. Obmedzte počet zachytených paketov
Pri prvom spustení príkazu tcpdump si môžete všimnúť, že systém pokračuje v zachytávaní sieťových paketov, kým nezasiahnete signál prerušenia. Toto predvolené správanie môžete prepísať zadaním počtu paketov, ktoré chcete vopred zachytiť, pomocou -c vlajka.
tcpdump - rozhranie ľubovoľné -c 10
Vyššie uvedený príkaz zachytí desať paketov z ľubovoľného aktívneho sieťového rozhrania.
4. Filtrovať pakety na základe polí
Pri riešení problému vám uľahčenie nepomôže ani získanie veľkého bloku textového výstupu na termináli. Tam prichádza na rad funkcia filtrovania v tcpdump. Pakety môžete filtrovať podľa rôznych polí vrátane hostiteľa, protokolu, čísla portu a ďalších.
Ak chcete zachytiť iba pakety TCP, zadajte:
tcpdump - rozhranie ľubovoľné -c 5 tcp
Podobne, ak chcete filtrovať výstup pomocou čísla portu:
tcpdump - rozhranie ľubovoľný -c 5 port 50
Vyššie uvedený príkaz získa iba pakety vysielané cez zadaný port.
Získanie podrobností paketu pre konkrétneho hostiteľa:
tcpdump - rozhranie ľubovoľný -c 5 hostiteľ 112.123.13.145
Ak chcete filtrovať pakety odoslané alebo prijaté konkrétnym hostiteľom, použite src alebo dst argument s príkazom.
tcpdump - rozhranie ľubovoľné -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145
Môžete tiež použiť logické operátory a a alebo spojiť dva alebo viac výrazov dokopy. Napríklad na získanie paketov, ktoré patria do zdrojovej adresy IP 112.123.13.145 a použi port 80:
tcpdump - rozhranie ľubovoľné -c 10 src 112.123.13.145 a port 80
Zložité výrazy možno zoskupiť pomocou zátvorky nasledovne:
tcpdump - rozhranie akékoľvek -c 10 "(src 112.123.13.145 alebo src 234.231.23.234) a (port 45 alebo port 80)"
5. Zobraziť obsah paketu
Môžete použiť -A a -X označí príkazom tcpdump na analýzu obsahu sieťového paketu. The -A vlajka znamená ASCII formát a -X označuje hexadecimálne formát.
Ak chcete zobraziť obsah nasledujúceho sieťového paketu zachyteného systémom:
tcpdump - rozhranie ľubovoľné -c 1 -A
tcpdump - rozhranie ľubovoľné -c 1 -x
Súvisiace: Čo je strata paketov a ako napraviť jej príčinu?
6. Uložte údaje o zázname do súboru
Ak chcete uložiť údaje o zachytení na referenčné účely, je tu tcpdump, ktorý vám pomôže. Len odovzdať -w príznak s predvoleným príkazom na zapísanie výstupu do súboru namiesto jeho zobrazenia na obrazovke.
tcpdump --interface any -c 10 -w data.pcap
The .pcap prípona súboru znamená zachytávanie paketov údaje. Vyššie uvedený príkaz môžete tiež vydať v podrobnom režime pomocou klávesu -v vlajka.
tcpdump --interface any -c 10 -w data.pcap -v
Čítať a .pcap súbor pomocou tcpdump, použite -r príznak nasledovaný cestou k súboru. The -r znamenať Čítať.
tcpdump -r data.pcap
Sieťové pakety môžete filtrovať aj z údajov paketu uložených v súbore.
tcpdump -r data.pcap port 80
Monitorovanie sieťového prenosu v systéme Linux
Ak ste dostali úlohu spravovať server Linux, potom je príkaz tcpdump skvelým nástrojom, ktorý môžete zahrnúť do svojho arzenálu. Problémy súvisiace so sieťou môžete ľahko vyriešiť zachytením paketov prenášaných vo vašej sieti v reálnom čase.
Pred tým však musí byť vaše zariadenie pripojené k internetu. Pre začiatočníkov Linuxu môže byť aj pripojenie k sieti Wi-Fi prostredníctvom príkazového riadku trochu náročné. Ak však používate správne nástroje, je to hračka.
Chcete sa pripojiť k sieti Wi-Fi prostredníctvom príkazového riadku systému Linux? Tu je to, čo potrebujete vedieť o príkaze nmcli.
Prečítajte si Ďalej
- Linux
- Bezpečnosť
- Sieťová forenzná
Deepesh je juniorský editor pre Linux na MUO. Informačnému obsahu píše na internete už viac ako 3 roky. Vo voľnom čase rád píše, počúva hudbu a hrá na gitare.
Prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!
Ešte jeden krok…!
V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.