„Linux“ yra aprūpinta daugybe tinklo paslaugų, iš kurių galima rinktis. tcpdump yra vienas iš tokių galingų tinklo įrankių, galinčių užfiksuoti ir analizuoti tinklo srautą, jei jums prireiktų šalinti tinklo klaidas sistemoje „Linux“.
Susipažinkime su komanda tcpdump ir išsiaiškinkime, kaip ją naudoti tinklo srautui užfiksuoti.
Tcpdump diegimas Linux sistemoje
tcpdump paprastai būna iš anksto įdiegtas visi pagrindiniai Linux platinimai ir saugumu pagrįstų alternatyvų. Taigi jūs turėtumėte turėti galimybę jį naudoti iš karto, įvesdami tcpdump su sudo priešdėlis.
Jei negalite paleisti komandos tcpdump ir įstrigote „tcpdump: komanda nerasta“ klaidą, sužinokime, kaip įdiegti „tcpdump“ savo „Linux“ kompiuteryje.
Norėdami įdiegti tcpdump, paleiskite terminalą ir paleiskite komandą, atitinkančią šiuo metu naudojamą Linux distribuciją:
Debian/Ubuntu dariniuose paleiskite:
sudo apt-gauti įdiegti tcpdump
Įjungta Arkos pagrįstos sistemos, paleisti:
sudo pacman -S tcpdump
Norėdami įdiegti tcpdump įrankį Fedora, CentOS ir RHEL, išduokite šią komandą:
sudo dnf diegti tcpdump
Atminkite, kad jei jūsų paprašys įdiegti libcap, Įrašykite Taip arba Y nes tai yra pagrindinė priklausomybė, be kurios tcpdump atsisakys paleisti. Tai turėtų įdiegti „tcpdump“ programą ir išspręsti „komanda nerasta“ klaidą.
Dabar, kai tcpdump įdiegtas jūsų sistemoje, panagrinėkime įvairias jo siūlomas parinktis ir funkcijas.
Tinklo srauto fiksavimas naudojant tcpdump
„tcpdump“ siūlo daugybę vėliavėlių, kad pakeistų jos vykdymą, tačiau ją galima paleisti ir kaip atskirą komandą. Tačiau paleidus tcpdump be jokių vėliavėlių ar argumentų būtų nepaisoma viso jo potencialo. Visada geriau naudoti kelias vėliavėles, kad prireikus pakoreguotų vykdymą ir išvestį.
Įveskite šią komandą, kad stebėtumėte tinklo perdavimą naudodami tcpdump:
sudo tcpdump
Dabar tcpdump pradės automatiškai fiksuoti tinklo paketus iki pertraukimo signalas siunčiamas su Ctrl + Z Norėdami nutraukti procesą rankiniu būdu. Norėdami apriboti bendrą užfiksuotų paketų skaičių, naudokite -c pažymėkite ir šalia jo įveskite norimą paketų limitą:
sudo tcpdump -c 5
Jei šiuo metu negalite suprasti išvesties, turite tai padaryti susipažinkite su tcpdump išvesties formatu Pirmas.
Patikrinkite galimas tinklo sąsajas naudodami tcpdump
Pagal numatytuosius nustatymus tcpdump fiksuoja srautą iš bet kurios galimos tinklo sąsajos. Jei naudojate kelias aktyvias tinklo sąsajas, galbūt norėsite apibrėžti tinklo sąsają, iš kurios tcpdump turėtų fiksuoti paketus. Norėdami paleisti tcpdump konkrečioje sąsajoje, pirmiausia turėsite sužinoti apie sąsajos pavadinimą.
Štai kaip išvardyti visas galimas tinklo sąsajas su tcpdump:
sudo tcpdump -D
Arba galite pridėti --list-sąsajos vėliavėlė prie komandos:
sudo tcpdump --sąrašą- sąsajos
Grąžintame išvestyje yra visų aktyvių tinklo sąsajų, kurių gali klausytis tcpdump, sąrašas. Norėdami sukonfigūruoti tcpdump fiksuoti perdavimus iš tam tikros tinklo sąsajos, įveskite šią komandą:
sudo tcpdump -i sąsajos_id
Arba galite pridėti --sąsaja vėliavėlė prie komandos:
sudo tcpdump --sąsajasąsajos_id
Dabar, kai užfiksavome keletą paketų, atidžiai išnagrinėkime juos ir sužinokime, kaip galite pakoreguoti išvestį, kad ji būtų lengviau skaitoma.
Tcpdump filtrų tyrinėjimas
tcpdump gali užfiksuoti didžiulį srautą per vieną paleidimą. Toks informacijos perteklius gali išmušti iš vėžių tiriant ar šalinant konkretaus pagrindinio kompiuterio ar tinklo protokolo problemas.
Štai čia pradeda veikti tcpdump filtrai. Galite pridėti komandą tcpdump su tam tikromis vėliavėlėmis, kad filtruotumėte tinklo srautą ir užfiksuotumėte konkrečius paketus. Tada galite saugoti tuos paketus ir vėliau juos analizuoti, kad išsiaiškintumėte bet kokių su tinklu susijusių problemų esmę. Išmokime naudoti filtrus tcpdump.
Filtruokite paketus pagal naudojamą tinklo protokolą
Norėdami filtruoti paketus, perduodamus per tam tikrą protokolą, įveskite protokolo pavadinimą naudodami komandą tcpdump ir ji užfiksuos tik paketus, keliaujančius per apibrėžtą tinklo protokolą.
Pavyzdžiui, norėdami užfiksuoti ICMP paketus, tiesiog pridėkite icmp tcpdump komandos pabaigoje. Procesas yra tas pats, jei norite užfiksuoti tik UDP arba TCP paketus.
sudo tcpdump -c 5 icmp
Ši komanda grąžins išvestį tik tuo atveju, jei bus keičiamasi duomenimis per ICMP protokolą.
Filtruoti paketus pagal pagrindinį kompiuterį
Galite sukonfigūruoti tcpdump, kad fiksuotų paketus, susijusius su vienu pagrindiniu kompiuteriu, naudodami šeimininkas parametras. Tai ypač naudinga, kai veikia visos tinklo sistemos, išskyrus vieną. Šis filtras leidžia atlikti tikslinį tyrimą ir pagreitina bendrą trikčių šalinimo darbo eigą, nes jūsų neblaško nereikalingi duomenys.
Norėdami užfiksuoti paketus, susijusius su konkrečiu pagrindiniu kompiuteriu, nustatykite pagrindinio kompiuterio tinklo adresą su šeimininkas parametras:
sudotcpdump-c 5 šeimininkas 192.168.2.1
Panašiai kaip tinklo protokolo filtras, ši komanda pateiks išvestį tik tuo atveju, jei bet koks vykstantis perdavimas yra susijęs su apibrėžtu pagrindiniu kompiuteriu.
Filtruokite paketus pagal aktyvųjį prievadą
tcpdump turi parametrą, leidžiantį filtruoti tinklo srautą ir užfiksuoti tik paketus, kurie perduodami į konkretų prievadą arba iš jo.
Norėdami užfiksuoti paketus, gaunamus iš konkretaus prievado, pridėkite uostas pažymėkite komandą tcpdump ir šalia jos nurodykite prievado numerį. Pavyzdžiui, norėdami užfiksuoti bet kokį gaunamą arba išeinantį HTTP srautą, apibrėžkite 80 prievadą:
sudo tcpdump -c 5 prievadas 80
tcpdump klausysis 80 prievado ir lauks HTTP perdavimo. Kai tinkle aptiks HTTP paketus, jis juos užfiksuos.
Sujunkite filtrus, kad galėtumėte išplėsti rūšiavimą
Ankstesniuose skyriuose buvo aptarta, kaip filtruoti srautą pagal prievadą, protokolą ar pagrindinį kompiuterį, bet kas, jei norėjote užfiksuoti srautą iš vieno konkretaus pagrindinio kompiuterio prievado naudodami tam tikrą tinklą protokolas? Na, jums pasisekė, nes tai įmanoma, priskiriant galimybę naudoti loginius operatorius su komanda tcpdump.
Norėdami užfiksuoti paketus iš atskiro pagrindinio kompiuterio naudodami 443 prievadą, naudokite šią komandą:
sudotcpdump-c 5 šeimininkas 192.168.2.1iruostas 443
Patikrinkite užfiksuotų paketų turinį
Pagal numatytuosius nustatymus tcpdump išvestyje rodo paketo antraštes. Nors daugeliu atvejų to yra daugiau nei pakankamai, kartais galbūt norėsite arba reikės pažvelgti į užfiksuotus duomenis giliau. Tam tikrus parametrus galite perduoti naudodami komandą tcpdump, kad patikrintumėte užfiksuoto paketo turinį.
Štai kaip peržiūrėti paketų turinį:
sudo tcpdump -c 5 -x
Ši komanda grąžina šešioliktainę turinio versiją užfiksuotame pakete. Jei norite peržiūrėti ASCII duomenų formą, galite perduoti -A parametras su:
sudo tcpdump -A
Išsaugokite tcpdump išvestį į failą
Kaip ir beveik bet kurį kitą „Linux“ komandinės eilutės įrankį, „tcpdump“ sukurtą išvestį galite išsaugoti faile, į kurį vėliau bus pateikta nuoroda.
Tai galima padaryti pridedant -w vėliava prie komandos. Vykdant, tcpdump išsaugos užfiksuotus duomenis į a .pcap failą, kurį vėliau galima analizuoti naudojant tcpdump arba kitus tinklo stebėjimo įrankius, tokius kaip Wireshark.
Įveskite šią komandą, kad išsaugotumėte komandos tcpdump išvestį į failą:
sudotcpdump-wužfiksuoti.pcap
Norėdami perskaityti a .pcap failą, galite naudoti tcpdump su -r parametras:
sudotcpdump-ružfiksuoti.pcap
„Linux“ tiekiama su daugybe tinklo įrankių, kurie gali išspręsti kiekvieną tinklo problemą, jei tik tai susiję su programine įranga. Žinojimas, kaip naudoti kelis geriausius tinklo įrankius sistemoje „Linux“, tikrai pravers, nesvarbu, ar esate sistemos administratorius, tvarkantis tinklus pragyvenimui, ar tiesiog kasdienis „Linux“ vartotojas.
Kadangi tikrasis galimų tinklo komandų sąrašas gali būti per didelis, čia pateikiamas kai kurių svarbiausių „Linux“ tinklo įrankių, kuriuos turėtumėte žinoti, sąrašas.