Linux je opremljen s številnimi omrežnimi pripomočki, med katerimi lahko izbirate. tcpdump je eno od takšnih zmogljivih omrežnih orodij, ki lahko zajame in analizira omrežni promet, če bi morali odpraviti omrežne napake v Linuxu.
Spoznajmo ukaz tcpdump in raziščimo, kako ga uporabiti za zajemanje omrežnega prometa.
Namestitev tcpdump v Linux
tcpdump je običajno vnaprej nameščen vse glavne distribucije Linuxa in alternative, ki temeljijo na varnosti. Tako bi ga morali takoj uporabiti z vnosom tcpdump z sudo predpono.
V primeru, da ne morete zagnati ukaza tcpdump in ste obtičali na "tcpdump: ukaz ni bil najden", se naučimo, kako namestiti tcpdump na vaš računalnik Linux.
Če želite namestiti tcpdump, zaženite terminal in zaženite ukaz, ki ustreza distribuciji Linuxa, ki jo trenutno uporabljate:
Na izpeljankah Debian/Ubuntu zaženite:
sudo apt-dobiti namestite tcpdump
Vklopljeno Sistemi, ki temeljijo na lokih, teči:
sudo pacman -S tcpdump
Če želite namestiti pripomoček tcpdump v Fedora, CentOS in RHEL, izdajte naslednji ukaz:
sudo dnf namestite tcpdump
Upoštevajte, da če ste pozvani k namestitvi libcap, vtipkati ja oz Y ker je jedro odvisnosti, brez katere se tcpdump ne bo zagnal. To bi moralo namestiti pripomoček tcpdump in odpraviti napako »ukaz ni bil najden«.
Zdaj, ko je tcpdump nameščen v vašem sistemu, poglejmo različne možnosti in funkcije, ki jih ponuja.
Zajemanje omrežnega prometa s tcpdump
tcpdump ponuja veliko zastavic za spreminjanje njegovega izvajanja, vendar ga je mogoče zagnati tudi kot samostojen ukaz. Vendar bi zagon tcpdump brez zastavic ali argumentov zanemaril njegov polni potencial. Vedno je bolje uporabiti nekaj zastavic za prilagoditev izvajanja in izpisa, kot je potrebno.
Vnesite ta ukaz za spremljanje omrežnih prenosov s tcpdump:
sudo tcpdump
Zdaj bo tcpdump začel samodejno zajemati omrežne pakete, dokler prekinitveni signal je poslano z Ctrl + Z ročno prekinete postopek. Če želite omejiti skupno število zajetih paketov, uporabite -c zastavico in zraven vnesite želeno omejitev paketov:
sudo tcpdump -c 5
Če trenutno ne morete razumeti rezultata, morate spoznajte izhodni format tcpdump prvi.
Preverite razpoložljive omrežne vmesnike s tcpdump
Privzeto tcpdump zajema promet iz katerega koli od razpoložljivih omrežnih vmesnikov. Če imate v uporabi več aktivnih omrežnih vmesnikov, boste morda želeli definirati omrežni vmesnik, iz katerega naj tcpdump zajema pakete. Če želite zagnati tcpdump na določenem vmesniku, se boste morali najprej poučiti o imenu vmesnika.
Tukaj je opisano, kako s tcpdump navedete vse razpoložljive omrežne vmesnike:
sudo tcpdump -D
Ali pa lahko dodate --list-interfaces zastavica na ukaz:
sudo tcpdump --seznam-vmesniki
Vrnjeni izhod vsebuje seznam vseh aktivnih omrežnih vmesnikov, ki jih tcpdump lahko posluša. Če želite konfigurirati tcpdump za zajemanje prenosov iz določenega omrežnega vmesnika, vnesite ta ukaz:
sudo tcpdump -i vmesnik_id
Ali pa lahko dodate --vmesnik zastavica na ukaz:
sudo tcpdump --vmesnikvmesnik_id
Zdaj, ko smo zajeli nekaj paketov, jih natančno preučimo in se naučimo, kako lahko prilagodite izhod, da bo bolj berljiv.
Raziskovanje filtrov tcpdump
tcpdump je sposoben zajeti ogromno količino prometa v enem samem zagonu. Takšna preobremenjenost z informacijami vas lahko vrže iz tira, ko preiskujete ali odpravljate težave z določenim gostiteljem ali omrežnim protokolom.
Tu pridejo v poštev filtri tcpdump. Ukazu tcpdump lahko dodate določene zastavice, da filtrirate omrežni promet in zajamete določene pakete. Te pakete lahko nato shranite in jih pozneje analizirate, da pridete do vzroka težav, povezanih z omrežjem. Naučimo se uporabljati filtre v tcpdump.
Filtrirajte pakete na podlagi uporabljenega omrežnega protokola
Če želite filtrirati pakete, ki se prenašajo prek določenega protokola, vnesite ime protokola z ukazom tcpdump in zajel bo le pakete, ki potujejo prek definiranega omrežnega protokola.
Na primer, če želite zajeti pakete, ki temeljijo na ICMP, bi preprosto priložili icmp na koncu ukaza tcpdump. Postopek je enak, če želite zajeti samo pakete UDP ali TCP.
sudo tcpdump -c 5 icmp
Ta ukaz bo vrnil izhod samo, če pride do izmenjave podatkov prek protokola ICMP.
Filtrirajte pakete glede na gostitelja
Konfigurirate lahko tcpdump za zajemanje paketov, povezanih z enim gostiteljem, z gostitelj parameter. To je še posebej uporabno, ko delujejo vsi sistemi vašega omrežja razen enega. Ta filter vam omogoča izvajanje ciljne preiskave in pospeši celoten potek dela pri odpravljanju težav, saj vas ne motijo nepotrebni podatki.
Če želite zajeti pakete, povezane z določenim gostiteljem, določite omrežni naslov gostitelja z gostitelj parameter:
sudotcpdump-c 5 gostitelj 192.168.2.1
Podobno kot filter omrežnega protokola bo ta ukaz vrnil izhod samo, če je kakršen koli tekoči prenos povezan z definiranim gostiteljem.
Filtrirajte pakete na podlagi aktivnih vrat
tcpdump je opremljen s parametrom, ki vam omogoča filtriranje omrežnega prometa in zajemanje samo paketov, ki so poslani na ali iz določenih vrat.
Če želite zajeti pakete, ki prihajajo iz določenih vrat, dodajte pristanišče zastavico ukazu tcpdump in zraven določite številko vrat. Če želite na primer zajeti dohodni ali odhodni promet HTTP, definirajte vrata 80:
sudo tcpdump -c 5 vrata 80
tcpdump bo poslušal na vratih 80 in čakal na prenose HTTP. Ko zazna pakete HTTP v omrežju, jih bo zajel.
Združite filtre za napredno razvrščanje
Prejšnji razdelki so razpravljali o tem, kako lahko filtrirate promet na podlagi vrat, protokola ali gostitelja, a kaj če želeli ste zajeti promet iz enega samega pristanišča določenega gostitelja z uporabo določenega omrežja protokol? No, imate srečo, ker je to mogoče, pripisujemo zmožnosti uporabe logičnih operatorjev z ukazom tcpdump.
Če želite zajeti pakete iz posameznega gostitelja prek vrat 443, uporabite ta ukaz:
sudotcpdump-c 5 gostitelj 192.168.2.1inpristanišče 443
Preglejte vsebino zajetih paketov
Privzeto tcpdump prikaže glave paketa v izhodu. Čeprav je v večini primerov več kot dovolj, boste včasih morda želeli ali morali pogledati globlje v zajete podatke. Z ukazom tcpdump lahko posredujete določene parametre, da pregledate vsebino zajetega paketa.
Vsebino paketov si ogledate tako:
sudo tcpdump -c 5 -x
Ta ukaz vrne šestnajstiško različico vsebine v zajetem paketu. Če si želite ogledati obliko ASCII podatkov, lahko posredujete -A parameter z:
sudo tcpdump -A
Shrani izhod tcpdump v datoteko
Kot skoraj vsako drugo orodje ukazne vrstice Linux lahko shranite izhod, ki ga ustvari tcpdump, v datoteko, na katero se lahko pozneje sklicujete.
To lahko storite tako, da dodate -w zastavico na ukaz. Po izvedbi bo tcpdump shranil zajete podatke v a .pcap datoteko, ki jo je mogoče pozneje analizirati s tcpdump ali drugimi orodji za nadzor omrežja, kot je Wireshark.
Vnesite ta ukaz, da shranite izhod ukaza tcpdump v datoteko:
sudotcpdump-wzajemanje.pcap
Za branje a .pcap lahko uporabite tcpdump z -r parameter:
sudotcpdump-rzajemanje.pcap
Linux je opremljen z obilico omrežnih orodij, ki lahko rešijo vsako omrežno težavo, če je na strani programske opreme. Če boste vedeli, kako uporabljati nekaj najboljših omrežnih orodij v Linuxu, vam bo zagotovo prišlo prav, ne glede na to, ali ste sistemski skrbnik, ki se preživlja z upravljanjem omrežij, ali le vsakdanji uporabnik Linuxa.
Ker je dejanskega seznama razpoložljivih omrežnih ukazov lahko preveč, da bi ga razumeli, je tukaj seznam nekaterih najpomembnejših omrežnih orodij Linux, ki bi jih morali poznati.