Ar bandote užfiksuoti duomenų paketus, kad galėtumėte analizuoti srautą savo tinkle? Galbūt esate serverio administratorius, kuris susidūrė su problema ir nori stebėti perduotus duomenis tinkle. Kad ir kokia būtų situacija, „tcpdump Linux“ įrankis yra tai, ko jums reikia.
Šiame straipsnyje mes išsamiai aptarsime komandą tcpdump, kartu su keletu vadovų, kaip įdiegti ir naudoti tcpdump jūsų „Linux“ sistemoje.
Kas yra komanda „tcpdump“?
Tcpdump yra galingas tinklo stebėjimo įrankis, leidžiantis vartotojui efektyviai filtruoti paketus ir srautą tinkle. Galite gauti išsamią informaciją, susijusią su TCP / IP ir jūsų tinkle perduodamais paketais. „Tcpdump“ yra komandinės eilutės įrankis, o tai reiškia, kad galite jį paleisti „Linux“ serveriuose be ekrano.
Sistemos administratoriai taip pat gali integruoti „tcpdump“ įrankį su kronas siekiant automatizuoti įvairias užduotis, tokias kaip registravimas. Kadangi dėl daugybės funkcijų jis yra gana universalus, „tcpdump“ veikia kaip trikčių šalinimo ir saugos įrankis.
Kaip įdiegti tcpdump „Linux“
Nors dažniausiai sistemoje rasite iš anksto įdiegtą „tcpdump“, kai kurie „Linux“ paskirstymai nepateikiami kartu su paketu. Todėl gali tekti rankiniu būdu įdiegti įrankį sistemoje.
Galite patikrinti, ar tcpdump yra įdiegtas jūsų sistemoje, naudodami kuri komandą.
kuris tcpdump
Jei išvestyje rodomas katalogo kelias (/usr/bin/tcpdump), tada jūsų sistemoje yra įdiegtas paketas. Tačiau jei ne, galite tai padaryti lengvai naudodamiesi numatytuoju sistemos paketų tvarkytuvu.
Norėdami įdiegti „tcpdump“ Debiano pagrindu veikiančiuose paskirstymuose, pvz., „Ubuntu“
sudo apt-get install tcpdump
Taip pat lengva įdiegti „tcpdump“ „CentOS“.
sudo yum įdiekite tcpdump
„Arch“ pagrindu veikiančiuose paskirstymuose:
sudo pacman -S tcpdump
Norėdami įdiegti „Fedora“:
sudo dnf įdiekite tcpdump
Atminkite, kad paketui tcpdump reikia libcap kaip priklausomybę, todėl būtinai įdiekite ją ir savo sistemoje.
„Tcpdump“ pavyzdžiai, kaip užfiksuoti tinklo paketus sistemoje „Linux“
Dabar, kai sėkmingai įdiegėte „tcpdump“ savo „Linux“ kompiuteryje, atėjo laikas stebėti kai kuriuos paketus. Kadangi „tcpdump“ reikia didžiojo vartotojo teisių, kad būtų galima atlikti daugumą operacijų, turėsite pridėti sudo į savo komandas.
1. Išvardinkite visas tinklo sąsajas
Norėdami patikrinti, kurias tinklo sąsajas galima užfiksuoti, naudokite -D vėliava su komanda tcpdump.
tcpdump -D
Pravažiavimas - sąrašas-sąsajos vėliava kaip argumentas grąžins tą pačią išvestį.
tcpdump --list-interface
Išvestis bus visų tinklo sąsajų, esančių jūsų sistemoje, sąrašas.
Gavę tinklo sąsajų sąrašą, laikas stebėti savo tinklą, užfiksuodami paketus savo sistemoje. Nors galite nurodyti, kurią sąsają norite naudoti, bet koks argumentas komandomis tcpdump užfiksuoti tinklo paketus naudodamas bet kurią aktyvią sąsają.
tcpdump - bet kuri sąsaja
Sistema parodys šią išvestį.
Susijęs: Kas yra atvirų sistemų sujungimo modelis?
2. „Tcpdump“ išvesties formatas
Pradedant nuo trečios eilutės, kiekviena išvesties eilutė žymi konkretų paketą, užfiksuotą tcpdump. Štai kaip atrodo vieno paketo išvestis.
17: 00: 25.369138 wlp0s20f3 Out IP localsystem.40310> kul01s10-in-f46.1e100.net.https: Flags [P.], sek 196: 568, ack 1, win 309, options [nop, nop, TS val 117964079 ecr 816509256], ilgis 33
Atminkite, kad ne visi paketai yra užfiksuoti tokiu būdu, tačiau tai yra bendras formatas, kurio laikosi dauguma jų.
Išvestyje yra tokia informacija.
- Gauto paketo laiko žymė
- Sąsajos pavadinimas
- Paketų srautas
- Tinklo protokolo pavadinimas
- IP adresas ir uosto informacija
- TCP vėliavos
- Paketo duomenų eilės numeris
- Ack duomenys
- Lango dydis
- Paketo ilgis
Pirmasis laukas (17:00:25.369138) rodo laiko žymą, kai jūsų sistema išsiuntė arba gavo paketą. Įrašytas laikas gaunamas iš jūsų sistemos vietos laiko.
Antrasis ir trečiasis laukai žymi naudojamą sąsają ir paketo srautą. Viršutiniame fragmente wlp0s20f3 yra bevielio ryšio sąsajos pavadinimas ir Išeina yra paketų srautas.
Ketvirtame lauke pateikiama informacija, susijusi su tinklo protokolo pavadinimu. Paprastai rasite du protokolus - IP ir IP6, kur IP žymi IPV4, o IP6 - IPV6.
Kitame lauke yra IP adresai arba šaltinio ir paskirties sistemos pavadinimas. Po IP adresų nurodomas prievado numeris.
Šeštą išvesties lauką sudaro TCP žymos. Yra įvairios žymos, kurios naudojamos tcpdump išvestyje.
Vėliavos pavadinimas | Vertė | apibūdinimas |
---|---|---|
SYN | S | Prisijungimas pradėtas |
FIN | F | Ryšys baigtas |
PUSH | P | Duomenys stumiami |
RST | R | Ryšys nustatomas iš naujo |
ACK | . | Pripažinimas |
Išvestyje taip pat gali būti kelių TCP vėliavų derinys. Pavyzdžiui, VĖLIAVĖ [f.] reiškia FIN-ACK paketą.
Toliau judant išvesties fragmente, kitame lauke yra eilės numeris (196: 568) pakete esančių duomenų. Pirmasis paketas visada turi teigiamą sveikojo skaičiaus vertę, o paskesni paketai naudoja santykinį eilės numerį, kad pagerintų duomenų srautą.
Kitame lauke yra patvirtinimo numeris (ack 1), arba paprastas Ack numeris. Siuntėjo mašinoje užfiksuotame pakete patvirtinimo numeris yra 1. Imtuvo gale Ack numeris yra kito paketo vertė.
Devintasis laukas lauke talpina lango dydį (laimėk 309), kuris yra gaunamų buferių baitų skaičius. Yra keletas kitų laukų, kurie atitinka lango dydį, įskaitant maksimalų segmento dydį (MSS).
Paskutinis laukas (ilgis 33) nurodomas viso tcpdump užfiksuoto paketo ilgis.
3. Apribokite užfiksuotų paketų skaičių
Pirmą kartą vykdydami komandą tcpdump, galite pastebėti, kad sistema toliau fiksuoja tinklo paketus, kol neperduosite pertraukimo signalo. Galite pakeisti šią numatytąją elgseną nurodydami paketų, kuriuos norite užfiksuoti, skaičių prieš tai naudodami -c vėliava.
tcpdump - sąsaja su bet kuriuo -c 10
Minėta komanda užfiksuos dešimt paketų iš bet kurios aktyvios tinklo sąsajos.
4. Filtruokite paketus pagal laukus
Kai išsprendžiate problemą, tai, kad gausite didelę teksto išvesties bloką savo terminale, nepadės to lengviau. Štai kur prasideda „tcpdump“ filtravimo funkcija. Galite filtruoti paketus pagal įvairius laukus, įskaitant pagrindinį kompiuterį, protokolą, prievado numerį ir kt.
Norėdami užfiksuoti tik TCP paketus, įveskite:
tcpdump - sąsaja su bet kuriuo -c 5 tcp
Panašiai, jei norite filtruoti išvestį naudodami prievado numerį:
tcpdump - sąsaja su bet kuriuo -c 5 prievadu 50
Minėta komanda atgaus tik paketus, perduodamus per nurodytą prievadą.
Norėdami gauti išsamią informaciją apie konkretų pagrindinį kompiuterį:
tcpdump - sąsaja su bet kuriuo -c 5 kompiuteriu 112.123.13.145
Jei norite filtruoti paketus, kuriuos siuntė ar gavo konkretus pagrindinis kompiuteris, naudokite src arba dst argumentas su komanda.
tcpdump - sąsaja su bet kuria -c 5 src 112.123.13.145
tcpdump - bet kurio sąsaja -c 5 dst 112.123.13.145
Taip pat galite naudoti loginius operatorius ir ir arba sujungti dvi ar daugiau išraiškų. Pavyzdžiui, norint gauti paketus, priklausančius šaltinio IP 112.123.13.145 ir naudotis uostu 80:
tcpdump - sąsaja su bet kuriuo -c 10 src 112.123.13.145 ir 80 prievadu
Sudėtingus posakius galima sugrupuoti naudojant skliausteliuose taip:
tcpdump - sąsaja su bet kokiu -c 10 "(src 112.123.13.145 arba src 234.231.23.234) ir (45 arba 80 prievadu)"
5. Peržiūrėkite paketo turinį
Galite naudoti -A ir -x pažymi komandą tcpdump, kad būtų galima išanalizuoti tinklo paketo turinį. -A vėliava reiškia ASCII formatas ir -x žymi šešioliktainis formatas.
Norėdami peržiūrėti kito sistemos užfiksuoto tinklo paketo turinį:
tcpdump - sąsaja su -c 1 -A
tcpdump - sąsaja su bet kuriuo -c 1 -x
Susijęs: Kas yra paketų praradimas ir kaip pašalinti jo priežastis?
6. Išsaugokite fiksavimo duomenis faile
Jei norite išsaugoti fiksavimo duomenis nuorodų tikslais, „tcpdump“ yra jums padėti. Tiesiog praeiti -w pažymėkite numatytąją komandą, kad įrašytumėte išvestį į failą, o ne rodytumėte ją ekrane.
tcpdump - sąsaja su bet kokiais -c 10 -w duomenimis.pcap
.pcap failo plėtinys reiškia paketų gaudymas duomenis. Taip pat galite išduoti minėtą komandą išsamiu režimu naudodami -v vėliava.
tcpdump - sąsaja su bet kokiais -c 10 -w duomenimis.pcap -v
Norėdami perskaityti a .pcap failą naudodami tcpdump, naudokite -r vėliava ir failo kelias. -r reiškia Perskaityk.
tcpdump -r data.pcap
Taip pat galite filtruoti tinklo paketus iš faile išsaugotų paketinių duomenų.
tcpdump -r data.pcap 80 prievadas
Tinklo srauto stebėjimas sistemoje „Linux“
Jei jums paskirta „Linux“ serverio administravimo užduotis, komanda tcpdump yra puikus įrankis, kurį norite įtraukti į savo arsenalą. Galite lengvai išspręsti su tinklu susijusias problemas, realiuoju laiku užfiksuodami tinkle perduodamus paketus.
Tačiau prieš visa tai jūsų įrenginys turi būti prijungtas prie interneto. Pradedantiesiems „Linux“ net prisijungimas prie „Wi-Fi“ per komandinę eilutę gali būti šiek tiek sudėtingas. Bet jei naudojate tinkamus įrankius, tai viskas.
Norite prisijungti prie „Wi-Fi“ tinklo naudodami „Linux“ komandų eilutę? Štai ką turite žinoti apie komandą nmcli.
Skaitykite toliau
- „Linux“
- Saugumas
- Tinklo kriminalistika
Deepesh yra MUO „Linux“ jaunesnysis redaktorius. Jis daugiau nei 3 metus rašė informacinį turinį internete. Laisvalaikiu jam patinka rašyti, klausytis muzikos ir groti gitara.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.