Svetainės skyriai
Redaktoriaus pasirinkimas:
- „FlashFire“ yra nauja programa, skirta atnaujinti „Android“ neprarandant šaknies
- Kaip paleisti „Xiaomi“ telefoną naudojant „MiFlash“.
- Išsami Xiaomi Mi4i apžvalga
- Kaip atrakinti „Xiaomi“ įkrovos tvarkyklę: nuoseklios instrukcijos „Xiaomi atrakinimas“ pateikia klaidą jūsų įrenginiui
- Kaip atrakinti „Xiaomi“ įkrovos įkroviklį ir kodėl to reikia „Xiaomi“ įkrovos tvarkyklės atrakinimo priežasčių pavyzdžiai anglų kalba
- Greitas įkrovimas įrenginiuose iš Xiaomi Kaip išjungti greitą įkrovimą Xiaomi
- Kaip tinkamai įkrauti naują „Xiaomi“ telefoną Greitas įkrovimas qc 3
- Jiayu g4 išplėstinė 2 32 programinė įranga
- Kaip atsisiųsti ir įdiegti „Xiaomi Paid“ temų, skirtų miui 8, temas
- Ką daryti, jei „Xiaomi“ nenori įsijungti?
Reklama
Įdiegti ir naudoti tcpdump. Filtruokite orą! Mes tikriname tinklo srautą naudodami tcpdump Tcpdump, kaip sustabdyti po nurodyto laiko |
Todėl nusprendžiau susikurti savo cheat sheet, kad būtų... Nes be tcpdump daugiau nei vienas adminas yra ne administratorius Įvadas Labai dažnai jie naudojasi norėdami rasti problemų tinkle tinklo srauto analizatoriai . tcpdump yra vienas iš šios klasės programų atstovų, leidžiantis klausytis (rodyti/išsaugoti) ir analizuoti tinklo veikimą perduodamų tinklo paketų, kadrų ir kitų tinklo srauto perdavimo vienetų lygyje. Priklausomai nuo tinklo konfigūracijos, tcpdump gali klausytis ne tik paketai, skirti tam tikram MAC adresui, bet ir transliuojami paketai. Pasiklausymas tinklo paketų perėmimas yra pagrįstas „išlaidus“ režimas tinklo adapterio veikimas. Priklausomai nuo tinklo įrangos, naudojamos kompiuteriams prijungti prie Ethernet tinklo, yra: eismo klausymosi galimybės:
Taigi, tcpdump įrankisįtraukta į daugumą Unix paskirstymų ir leidžia perimti ir rodyti / išsaugoti tinklo srautą į failą. Komunalinė programa naudoja libpcap biblioteka. Taip pat yra prievadas, skirtas „Windows“. Tai būtina, kad komunalinė paslauga veiktų. Pavyzdžiui, „Debian“ jis įdiegiamas naudojant komandą: Debian: ~# apt-get install tcpdump Komunalinės paslaugos yra būtinos darbui (kadangi tinklo sąsajos nustatymai yra pakeisti - jis perjungiamas į „promiscuous“ režimą). Apskritai tcpdump komandos formatas turi tokią formą: Debianas: ~# tcpdump<опции> <фильтр> tcpdump paslaugų parinktys-i sąsaja Nurodoma sąsaja, iš kurios turi būti analizuojamas srautas (nenurodant sąsajos – „pirmojo pasitaikiusio“ analizė). Išjungiamas IP vertimas į domenų vardai. Jei nurodyta -nn, prievadų numerių konvertavimas į protokolų pavadinimus yra draudžiamas. Dažniausiai naudojamos tcpdump komandos filtro parinktys yra šios:dst šeimininkas Patikrina, ar IP paketo paskirties adresas atitinka nurodytą reikšmę. Galima nustatyti ir IP, potinklį 10.0.0.1/24 formatu ir pagrindinio kompiuterio pavadinimą. src priegloba Patikrina, ar IP paketo šaltinio adresas atitinka nurodytą reikšmę. Galima nustatyti ir IP, potinklį 10.0.0.1/24 formatu ir pagrindinio kompiuterio pavadinimą. priimančioji šeimininkė Patikrina, ar siuntėjo arba gavėjo adresas atitinka nurodytą reikšmę. Galima nustatyti ir IP, potinklį 10.0.0.1/24 formatu ir pagrindinio kompiuterio pavadinimą. tinklo tinklo_pavadinimas Patikrina, ar siuntėjo/gavėjo adresas yra nurodytame tinkle. Galima nurodyti tinklą CIDR formatu (pvz., 10.0.0.1/22), arba nurodyti tinklo pavadinimą, nurodytą . ip | arp | rarp | tcp | udp | icmp [host] Patikrina, ar paketas priklauso vienam iš nurodytų protokolų ir, nurodydamas pagrindinio kompiuterio adresą, patikrina, ar siuntėjo/gavėjo adresas sutampa su nurodytu. Galima nustatyti ir IP, potinklį 10.0.0.1/24 formatu ir pagrindinio kompiuterio pavadinimą. dst prievado prievado_numeris Patikrinama, ar paketas priklauso TCP/UDP protokolui ir ar paskirties prievadas yra lygus nurodytam. Galite nurodyti prievado numerį arba pavadinimą, nurodytą faile /etc/services. src prievado prievado_numeris Patikrinama, ar paketas priklauso TCP/UDP protokolui ir ar šaltinio prievadas yra lygus nurodytam. Galite nurodyti prievado numerį arba pavadinimą, nurodytą faile /etc/services. prievado prievado_numeris Patikrinama, ar paketas priklauso TCP/UDP protokolui ir ar paskirties ar šaltinio prievadas yra lygus nurodytam. Galite nurodyti prievado numerį arba pavadinimą, nurodytą faile /etc/services. ip transliacija Patikrina, ar IP paketas yra transliacijos paketas. eteris ( src | dst | pagrindinis kompiuteris ) MAC_adresas Patikrina, ar tinklo paketas priklauso šaltiniui, paskirties vietai, šaltiniui ar paskirties vietai, turinčiai nurodytą MAC_adresą. eterio transliacija Patikrina, ar ARP paketas yra transliacijos paketas. Komandos tcpdump naudojimo pavyzdžiaiSrauto analizė tinklo lygiu (ARP, ICMP) naudojant tcpdumpTarkime, kad turime 2 šeimininkus. 1 pagrindinis kompiuteris su sąsaja eth0 ir šiais parametrais: Host1:~# ip addr rodyti dev eth0 5: eth0: Taip pat host2 su sąsaja eth1 Host2:~# ip addr rodyti dev eth1 3: eth1: Tarkime, kad iki šiol nebuvo tinklo duomenų mainų tarp hostų, o jei paleisite komandą ip neigh show host 2, pamatysite, kad ARP lentelėje nėra įrašų. Padarykime nedidelį eksperimentą. Paleiskite tcpdump įrankį vienoje iš host1 virtualiųjų sąsajų: Host1: ~# tcpdump -ne -i eth0 tcpdump: žodinė išvestis nuslopinta, naudokite -v arba -vv, norėdami iššifruoti visą protokolą eth0, nuorodos tipas EN10MB (Ethernet), fiksavimo dydis 65535 baitai 1 priegloba: ~ # ping -c 1 192.168.56.33 PING 192.168.56.33 (192.168.56.33) 56 (84) baitai duomenų. 64 baitai nuo 192.168.56.33: icmp_req=1 ttl=64 time=1.06 ms --- 192.168.56.33 ping statistika --- 1 paketas perduotas, 1 gautas, 0 % paketų praradimas, laikas 0ms rttmax/mdevg/v. = 1,067 / 1,067 / 1,067 / 0,000 ms Po to host1 sistemos ARP lentelėje pasirodė įrašas apie host2 IP adresą: Host1:~# ip kaimyninis šou dev eth0 192.168.56.33 lladdr 01:00:27:77:e5:00 HOST2 Virtualioje konsolėje tcpdump mums parodė šią informaciją: Host1:~# tcpdump -ne -i eth0 tcpdump: išsami išvestis slopinama, naudokite -v arba -vv, norėdami iššifruoti visą protokolą eth0, nuorodos tipas EN10MB (Ethernet), fiksavimo dydis 65535 baitai 12:16:29.465780 0a:00 :27:00:00:00 > ff:ff:ff:ff:ff:ff, eterinio tipo ARP (0x0806), ilgis 42: užklausa, kas turi 192.168.56.33 pasakyti 192.168.56.1, ilgis 28 12:16:29.4617 :00:27:77:e5:00 > 0a:00:27:00:00:00, eterinis ARP tipas (0x0806), ilgis 42: Atsakyti 192.168.56.33 is-at 01:00:27:77:e5:00 , ilgis 28 12:16:29.466815 0a:00:27:00:00:00 > 01:00:27:77:e5:00, eterio tipas IPv4 (0x0800), ilgis 98: 192.168.56.1 > 192.168.56.1 > 192.168.56.1 > 192.168.56.1 > 192.168.56.1. aido užklausa, id 5284, seka 1, ilgis 64 12:16:29.467934 01:00:27:77:e5:00 > 0a:00:27:00:00:00, eterio tipas IPv4 (0x0800), ilgis 98,1619 .56.33 > 192.168.56.1: ICMP aido atsakymas, id 5284, seka 1, ilgis 64 ^C 4 paketai užfiksuoti 4 paketai gauti filtro 0 paketų atmesta branduolio Kiekviename šio formato tinklo paketo įraše yra laikas, kai paketas buvo perimtas, šaltinio ir paskirties MAC adresai, protokolo tipas, paketo ilgis ir informacija apie paketo turinį. Pirmas įrašas aprašo ARP transliacijos užklausą iš sistemos host1 sąsajos eth0 MAC adreso (" Kas turi adresą 192.168.56.33, jis sako 192.168.56.1"). Antras įrašas- atsakymas iš host2 MAC adreso į host1 MAC adresą (" 192.168.56.33 MAC adresas yra 01:00:27:77:e5:00"). Trečias ir ketvirtas įrašai (ICMP užklausa Ir ICMP atsakymas) yra ping komandos, vykdomos host1, rezultatas. Tada tcpdump buvo nutrauktas. Prieš išjungdamas tcpdump išspausdina operacijų statistiką: perimtų, filtro gautų ir branduolio atmestų paketų skaičių. Taigi, host1 sistema, norėdama išsiųsti standartinę aido užklausą į host2 mašiną, pirmiausia gavo host2 mašinos MAC adresus naudodama ARP protokolą ir įvedė juos, susietą su IP adresu, į savo ARP lentelę. Srauto analizė transporto lygmenyje (TCP, UDP) naudojant tcpdumpTarkime, kad host2 sistemoje yra įdiegtas tam tikras WEB serveris. Pabandykime atidaryti puslapį iš šio žiniatinklio serverio host1 įrenginyje naudodami lynx konsolės naršyklę: 1 šeimininkas: ~# lūšis 192.168.56.33 Kitoje konsolėje pirmiausia paleiskite tcpdump su filtravimo parametrais: Host1: ~# tcpdump -n -i eth0 priegloba 192.168.56.33 ir prievadas 80 tcpdump: žodinė išvestis nuslopinta, naudokite -v arba -vv viso protokolo dekodavimo klausymui eth0, nuorodos tipo EN10MB (Ethernet), fiksavimo dydis 61535 bytes :44:37.837393 IP 192.168.56.1.41533 > 192.168.56.33.80: vėliavėlės [S], seka 1209026235, win 5840, parinktys , ilgis 0 15:44:17.30.38.38.18.18.18. > 1 92.168.56.1.41533 : vėliavėlės , sek. 370041518, ack 1209026236, win 5792, parinktys , ilgis 0 15:44:37.838157 IP 192.168.56.1.41533 > 192.168.56.1.41533 > 192.168.56.1.41533 > 192.168.56., 6. lags. , ilgis 0 1 5: 44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: vėliavėlės , seka 1:222, ack 1, laimėti 46, parinktys , ilgis 221 15:43:95.368 IP 15:43:95.368. > 192 .168.56 .1.41533 : vėliavėlės [.], ack 222, win 1716, parinktys , ilgis 0 15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: q1,2 win 7,2 , parinktys , ilgis 445 15:44:37.848156 IP 192.168.56.1.41533 > 192.168.56.33.80: vėliavėlės [.], ack 446, laimėti 54, parinktys , ilgis 0 15:44:37.38 IP 15:44:938.38.38. > 192. 168.56.1. 41533: vėliavėlės, SEQ 446, ACK 222, Win 1716, Parinktys, ilgis 0 15: 44: 37.850366 IP 192.168.56.1.41533> 192.168.56.1.41533> 192.168.1.41533> Win , Options, leen GTH 0 15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: vėliavėlės [.], ack 223, laimėti 1716, parinktys , ilgis 0 ... IN šiame pavyzdyje klientas (192.168.56.1) iš TCP prievado 41533 užmezga ryšį su serveriu (192.168.56.33), klausančiu 80 prievade, pateikia užklausą, gauna reikiamus duomenis ir ryšys baigiasi. Be to, TCP segmento antraštė gavėjo ir siuntėjo prievadų numeriai yra keletas parametrų:
Dvikrypčio TCP ryšio užmezgimo procesas atsispindi pirmuosiuose trijuose tcpdump įrašuose:
Po to ryšys laikomas užmegztu. Kitoje įrašų poroje klientas siunčia programos lygmens protokolo užklausą (221 baitas) į serverį segmento duomenų skiltyje ir iš serverio gauna patvirtinimą apie jos gavimą: 15:44:37.839254 IP 192.168.56.1.41533 > 192.168.56.33.80: vėliavėlės , seka 1:222, ack 1, laimėti 46, parinktys , ilgis 221 15:43:95.368 IP 15:43:95.368. > 192.168.56.1 .41533: vėliavėlės [.], ack 222, laimėti 1716, parinktys , ilgis 0 Šiuo atveju PSH (P) vėliavėlė naudojama siunčiančiajai pusei pranešti, kad priimančioji pusė yra pasirengusi priimti duomenis. Tada serveris siunčia duomenis klientui (445 baitai) ir iš jo gauna gavimo patvirtinimą: 15:44:37.848118 IP 192.168.56.33.80 > 192.168.56.1.41533: vėliavėlės , seka 1:446, ack 222, laimėti 1716, parinktys , ilgis 445 37 15.16:448 15.16.1848. .4 1533 > 192.168. 56,33 .80: vėliavėlės [.], ack 446, laimėti 54, parinktys , ilgis 0 Tada serverio iniciatyva ryšys nutraukiamas. Serveris siunčia paketą su nustatyta FIN vėliava: 15:44:37.849738 IP 192.168.56.33.80 > 192.168.56.1.41533: vėliavėlės , seka 446, ack 222, laimėti 1716, parinktys , ilgis 0 Klientas taip pat atsako išsiųsdamas paketą su nustatyta FIN vėliava; šis paketas taip pat yra užklausos nutraukti ryšį iš serverio gavimo patvirtinimas: 15:44:37.850366 IP 192.168.56.1.41533 > 192.168.56.33.80: vėliavėlės , seka 222, ack 447, laimėti 54, parinktys , ilgis 0 Serveris gali patvirtinti tik FIN segmento gavimą iš kliento: 15:44:37.851267 IP 192.168.56.33.80 > 192.168.56.1.41533: vėliavėlės [.], ack 223, laimėti 1716, parinktys , ilgis 0 tcpdump reakcija į bandymą prisijungti prie uždaro prievado 23/tcp:21:56:14.381091 IP 192.168.56.1.54040 > 192.168.56.33.23: vėliavėlės [S], sek. 2956835311, win 5840, parinktys , ilgis 0 21.36.18.18.186148. 23 > 192.168.56.1.54040 : vėliavėlės, seka 0, ack 2956835312, laimėti 0, ilgis 0Šiame pavyzdyje iš sistemos 192.168.56.1 bandoma prisijungti prie neegzistuojančios TCP paslaugos mazge 192.168.56.33. Nuotolinė sistema reaguoja siųsdama segmentą su nustatyta RST (reset) vėliava. tcpdump atsakymas į UDP datagramos siuntimą į uždarą 53/udp prievadą: 21:55:16.925906 IP 192.168.56.1.41979 > 192.168.56.33.53: 6561+ A? www.tut.by. (28) 21:55:16.926615 IP 192.168.56.33 > 192.168.56.1: ICMP 192.168.56.33 udp prievadas 53 nepasiekiamas, ilgis 64 Šiuo pavyzdžiu bandoma nusiųsti UDP datagramą į neegzistuojantį nuotolinės sistemos prievadą. UDP paprastai atsako išsiųsdamas ICMP pranešimą šaltinio prieglobai, kad prievadas nepasiekiamas. Kiti komandos tcpdump naudojimo pavyzdžiai:# tcpdump -n -i ppp0 eteris src 11:20:b3:d8:d8:2cRodyti tinklo statistiką iš ppp0 sąsajos (-i ppp0) nekeičiant IP į DNS (-n) tiems kadrams, kurių šaltinio MAC adresas yra 11:20:b3:d8:d8:2c. # tcpdump -n -e -i vlan0 eterio transliacija Transliacijos srauto išvestis iš vlan0 sąsajos. # tcpdump -n -i eth0 src 192.168.66.1 Filtruojama tinklo paketai, kurio antraštėje šaltinio laukelyje nurodomas IP adresas 192.168.66.1. # tcpdump -n -i eth0 priegloba 192.168.66.1 Paketai, kuriuose šis IP adresas nurodytas kaip paketo šaltinis arba paskirties vieta, yra filtruojami. # tcpdump -n -i eth0 src net 10.0.0.0 mask 255.0.0.0 Paketai, kurių šaltinis nurodo tinklo mazgus 10.0.0.0/8, yra filtruojami. # tcpdump -n -i eth0 icmp Iš eth0 sąsajos išveda tik ICMP paketus. Tuo, manau, baigsiu dabartinį straipsnį. Atsiradus naujų pavyzdžių, atnaujinsiu straipsnį. Tikiuosi, kad medžiaga bus naudinga ne tik man Straipsnyje panaudoti pavyzdžiai ir kai kurios medžiagos iš intuityvių paskaitų. Pagarbiai, McSim! 2011 m. gruodžio 19 d. Henris Van Stynas Paketų fiksavimas yra vienas iš galingiausių būdų analizuoti tinklo procesus. Galite daug sužinoti apie tai, kas vyksta tinkle, perimdami ir ištyrę neapdorotus duomenis tinklo jungtys. Šiuolaikinės srauto analizės priemonės leidžia užfiksuoti, interpretuoti ir aprašyti duomenų srautus žmonėms suprantamu stiliumi. tcpdump yra esminis srauto klausymo arba uostymo įrankis, jis suteikia daug analizės galimybių ir netgi gali eksportuoti interpretuotus paketų laukus į kitas programas. Jei manote, kad tokios paslaugos kaip tcpdump praranda savo vertę atsiradus grafiniams įrankiams, pvz., Wireshark, pagalvokite dar kartą. Wireshark yra puiki programa, tačiau ji nėra universali priemonė absoliučiai visoms situacijoms. Kaip universalus lengvas sprendimas įvairioms programoms (pvz., Unix tools cat, less ir hexdump), tcpdump atrodo daug šauniau. O įspūdingiausia jo savybė – paprastas naudojimas. Kaip elgsenos stilius, jis atitinka apytikslę „vienos eilutės komandos“ koncepciją, kad gautų greitus, vieno žingsnio atsakymus. Be to, jis gali būti naudojamas ssh seanso metu, nereikalaujant grafikos. Su sintaksės konvencijų palaikymu komandinė eilutė(pavyzdžiui, duomenų srauto išvedimas į standartinę išvestį, kurią galima nukreipti) tcpdump gali būti naudojamas visų tipų vamzdynuose, siekiant sukurti įdomių ir naudingų paslaugų. Šiame straipsnyje apžvelgsiu kai kuriuos pagrindinius tcpdump naudojimo principus ir jo sintaksės pagrindus. Pagrindai Prieš tapdami tcpdump naudojimo meistru, turėtumėte suprasti keletą pagrindinių sąvokų. Pirma, paketų fiksavimas yra pasyvus procesas, jis niekaip nekeičia srauto ir nieko netransliuoja į tinklą iš savęs. Antra, galite užfiksuoti tik paketus, kuriuos gauna jūsų sistema. Jei bet kurie du pagrindiniai kompiuteriai tiesiogiai keičiasi paketais ir tas srautas apeina jūsų kompiuterį, nieko nematysite, nepaisant stebėjimo įrankio. Trečia, galite užfiksuoti tik tuos paketus, kurie yra skirti jūsų sistemai, nebent tinklo sąsaja įjungta neteisėtu režimu. Kadangi daroma prielaida, kad jus domina ne tik jūsų sistemos paketai, tcpdump automatiškai įjungs pirmąją sistemos sąsają (jei kita nėra aiškiai nurodyta) į neteisėtą režimą. Šiai operacijai reikia supervartotojo privilegijų. Tcpdump komandų anatomija Komanda tcpdump susideda iš dviejų dalių: parinkčių ir filtro išraiškos (1 pav.). 1 pav. tcpdump komandos pavyzdys Filtro išraiška nustato, kuriuos paketus fiksuoti, o parinktis – kuriuos iš jų rodyti išvestyje; parinktys taip pat nustato naudingumo elgseną. Galimybės Tcpdump parinktys atitinka standartines komandų eilutės nuostatas, todėl parinkties formatas yra vėliavėlės reikšmė. Kai kurios vėliavėlės neturi parametrų reikšmės, nes jos yra patys jungikliai. Pavyzdžiui, po -i rašomas sąsajos pavadinimas, o -n išjungia vardo skyrimą per DNS. Vyro puslapyje aprašoma daug parinkčių, tačiau yra keletas, be kurių neapsieisite: I sąsaja: sąsaja, kurioje tcpdump klausys srauto; V, -vv, -vvv: išvesties išsamumas; K: tylus režimas; E: spausdinti nuorodų sluoksnio rėmelių antraštes (Ethernet); N: išspręsti pagrindinių kompiuterių domenų vardus; T: nespausdinti laiko žymų; N: neišspręskite kompiuterių domenų vardų; S0 (arba -s 0): maksimalus fiksavimas, fiksuojami visi paketai; V naujausios versijos tcpdump yra numatytasis elgesys. Nė vienas iš variantų nereikalingas. Vartotojo nustatytos reikšmės pakeičia tik numatytąjį programos elgesį, ty fiksuoti pirmoje sąsajoje ir spausdinti paketo informaciją vienoje eilutėje. Filtruoti išraiškas Paketų filtro sintaksė yra galinga ir skaidri. Pradžioje jame yra raktažodžių, vadinamų „primityvais“, kurie yra skirtingi paketų kvalifikatoriai, tai gali būti protokolas, adresas, prievadas arba kryptis. Jie gali būti sujungti vienas su kitu grandinėmis naudojant operatorius ir (arba) sugrupuoti ir sujungti pagal paveldėjimo taisykles, surūšiuoti naudojant neigimą. Dėl savaime suprantamų kriterijų pavadinimų filtrų išraiškos paprastai atrodo savaime suprantamos, todėl jas gana lengva sukurti ir suprasti. Visa sintaksė aprašyta pcap-filtro vadovo puslapyje, o kai kurie pavyzdžiai pateikiami čia: ARP yra paprastas protokolas, jis naudojamas IP adresams pakeisti į MAC adresus tinklo plokštės. Kaip matote aukščiau, tcpdump šiuos paketus apibūdina gana primityviai. Kita vertus, DNS paketai bus aprašyti šiek tiek kitaip:
Iš pradžių tai gali atrodyti nepakankamai aišku, bet kai sužinosite, kaip veikia skirtingi protokolų sluoksniai, tai bus prasmingesnė. DNS yra daug sudėtingesnis protokolas nei ARP, tačiau jis taip pat veikia aukštesniu lygiu. Tai reiškia, kad pagrindiniai protokolo paketai taip pat rodomi išvestyje. Skirtingai nuo ARP, kuris nėra nukreipiamas tarp skirtingų fizinių tinklo segmentų, DNS yra viso interneto protokolas. IP sluoksnis naudojamas šiems paketams nukreipti; UDP naudojamas transportavimui. Dėl to DNS yra 5 sluoksnio protokolas (IP yra 3 sluoksnis, UDP yra 4 sluoksnis). UDP/IP sluoksnio informacija, kurioje yra šaltinio adresas ir prievadas, rodoma kairėje eilutės pusėje, o konkreti DNS informacija rodoma dešinėje. Nors sintaksė gana sutrumpinta, jos pakanka apibrėžti pagrindinius DNS elementus. Pirmasis paketas yra linuxjournal.com adreso užklausa, antrasis paketas yra atsakymas, nurodantis adresą 76.74.252.198. Tai yra įprasta paprastų DNS užklausų seka. Išsamų visų nuo protokolo priklausomų išvesties formatų aprašymą rasite tcpdump man puslapio skyriuje „IŠVESTIES FORMATAS“. Vienų protokolų paketai išvestyje matomi geriau, kitų blogiau, bet svarbi informacija paprastai lengva rasti. Užfiksuokite išvestį į failą Rašydamas į failą, tcpdump naudoja kitą formatą nei išvesdamas į ekraną. Tai vadinamoji neapdorota išvestis; ji neatlieka pirminės paketo analizės. Tada šie failai gali būti naudojami trečiųjų šalių programosįveskite Wireshark, nes failo įrašų formatas atitinka universalų „pcap“ formatą (toks failas gali būti pateiktas į tcpdump įvestį naudojant parinktį -r). Ši funkcija leidžia užfiksuoti paketus vienoje mašinoje ir analizuoti juos kitame. Pavyzdžiui, nešiojamajame kompiuteryje yra „Wireshark“. Norint nuskaityti anksčiau užfiksuotą failą, jo nereikia prijungti prie analizuojamo tinklo. TCP pagrindu veikiančių protokolų analizė TCP vartotojui skaidriai tvarko visą žemo lygio informaciją, reikalingą ryšio seansams seanso protokoluose. Čia į srautą orientuoti duomenys sujungiami į paketus (segmentus), kuriuos vėliau galima siųsti tinklu. Visos tokios detalės yra paslėptos po programos sluoksniu. Todėl norint užfiksuoti į ryšį orientuotų protokolų paketus, reikia atlikti papildomus veiksmus. Kadangi kiekvienas TCP segmentas yra programos lygio duomenų dalis, informacija apie jį negali būti naudojama tiesiogiai. Kad tai būtų prasminga, turite visiškai atkurti TCP seansą (srauto) iš atskirų paketų sekos. tcpdump šios funkcijos neturi. Norėdami analizuoti seanso protokolus, galite naudoti tai, ką aš vadinu "styginių triuku". Styginių triukas TCP segmentai paprastai yra chronologine tvarka; Viską sudėjus, gauname HTTP seanso duomenų fiksavimo įrankį. Be to, turėtumėte žinoti, kad išvestyje gali būti šiukšlių. Perteklių galima nupjauti naudojant strings utility parinktį, kuri riboja eilutės išvesties ilgį (žr. man strings). Šis triukas gana gerai tinka bet kokiems teksto protokolams. HTTP ir SMTP analizė Pavyzdžiui, galbūt norėsite patikrinti visų svetainių, kurių pavadinimuose yra „davepc“, prieinamumą realiuoju laiku. Ši komanda, paleista ugniasienėje, padės (darant prielaidą, kad vidinė sąsaja yra eth1): Tai tik du paprasti pavyzdžiai iliustruoti galimybes. Pavyzdžiui, galite parašyti „Perl“ scenarijų, kad gautumėte eilutes išsamiau. Taigi tikroji tcpdump galia atsiranda tada, kai norite greitai ir be didelių pastangų gauti atsakymus į kai kuriuos klausimus. Tai ypač svarbu derinant tinklo programas. Maršruto ir VPN jungčių derinimas Paimkime standartinę dviejų tinklų sujungimo VPN ryšiu schemą. Tinklai 10.0.50.0/24 ir 192.168.5.0/24 (2 pav.). 2 pav. VPN topologijos pavyzdys Jei tai veikia tinkamai, prieglobos serveriai skirtinguose tinkluose turėtų siųsti vieni kitiems ping. Jei ping nereaguoja (šiuo atveju, tarkime, kad jie nesiunčiami iš D į pagrindinį kompiuterį A), galime naudoti tcpdump, kad išsiaiškintume, kur dingsta daiktai. Jei užklausų paketai eina į pagrindinį kompiuterį C ( nuotolinis vartai), bet ne D, tai rodo VPN ryšys veikia, bet yra maršruto problemų. Jei pagrindinis kompiuteris D gauna užklausas, bet nesiunčia atsakymų, tai gali reikšti, kad ICMP užblokuotas. Jei atsakymai siunčiami, bet nepasiekia C, numatytasis šliuzas gali būti neteisingai sukonfigūruotas D.
KODĖL TCPDUMP? Tcpdump – pagrindinis įrankis tinklo analizė programinės įrangos specialistams informacijos saugumas. Tiems, kurie nori visiškai suprasti TCP/IP, būtina pakankamai suprasti šią svarbią programą. Daugelis žmonių nori naudoti aukštesnio lygio įrankius, tokius kaip „Wireshark“, bet manau, kad tai klaida. Kai naudojate įrankį, kuris tinklo srautą rodo natūralesniu (paprastesniu) būdu, analizės sudėtingumas tenka tiesiogiai asmeniui, o ne programai. Šis metodas lavina supratimą apie TCP/IP rinkinį, todėl primygtinai rekomenduoju naudoti tcpdump vietoj kitų įrankių, kai tik įmanoma. 15:31:34.079416 IP (tos 0x0, ttl 64, id 20244, poslinkis 0, vėliavėlės , proto: TCP (6), ilgis: 60) šaltinis.35970 > dest.80: S, cksum 0x0ac1 (teisinga), 22645:0 2647022145(0) win 5840 0x0000: 4500 003c 4f14 4006 7417 0afb 0257 E.. 0x0010: 4815 222a 8c82 0060 904dc... ZA.... 0x0020: a002 16d0 0ac1 0000 0204 05b4 0402 080a................0x0030: 14b4 1555 0000 0000 0103 0302 PAGRINDAI Žemiau yra keletas parinkčių, kurias galite naudoti konfigūruodami tcpdump. Juos galima lengvai pamiršti ir (arba) supainioti su kitų tipų filtrais, pvz., „Wireshark“, todėl šis puslapis gali būti jums kaip nuoroda. Priklausomai nuo to, ką žiūriu, norėčiau atsiminti šiuos pagrindinius dalykus. GALIMYBĖS
IŠRAIŠKOS tcpdump išraiškos leidžia apkarpyti Įvairių tipų srautą ir raskite būtent tai, ko ieškote. Išraiškų įvaldymas ir gebėjimas jas kūrybiškai derinti yra tai, kas daro tcpdump tikrai galingą. Yra trys pagrindiniai išraiškų tipai: tipas, dir ir proto. Parinkčių tipai: pagrindinis kompiuteris, tinklas ir prievadas. Katalogai leidžia atlikti src, dst ir jų derinius. Protokolas leidžia apibrėžti: tcp, udp, icmp, ah ir daugelį kitų. PAVYZDŽIAI Taigi dabar, kai pamatėme, kokias galimybes turime, pažvelkime į keletą realaus pasaulio pavyzdžių, kuriuos greičiausiai pamatysime savo kasdieniame darbe. PAGRINDINIS PRANEŠIMAS Tiesiog pažiūrėkite, kas atsitiks, žiūrėdami į visas sąsajas. # tcpdump -i bet koks SPECIALI SĄSAJA Pagrindinis supratimas apie tai, kas vyksta konkrečioje sąsajoje. # tcpdump -i eth0 PRISTATYMAS NEAPGYVINTAS IŠVESTIS Išsamus išvestis, neatskleidžiant pagrindinio kompiuterio pavadinimų ar prievadų numerių, absoliučių eilės numerių ar žmogaus skaitomų laiko žymų. # tcpdump -ttttnnvvS RASTI EISMĄ PAGAL IP Viena iš dažniausiai pasitaikančių užklausų parodys srautą iš 1.2.3.4, nesvarbu, ar tai šaltinis, ar paskirties vieta. # tcpdump host 1.2.3.4 ŽR. DAUGIAU INFORMACIJOS APIE HEX IŠVESTIES PAKETĄ Šešioliktainė išvestis yra naudinga, kai norite pamatyti atitinkamų paketų turinį, ir dažnai geriausia naudoti, kai išskiriate kelis kandidatus atidžiau apžiūrėti. # tcpdump -nnvXSs 0 -c1 icmp tcpdump: klausymasis eth0, nuorodos tipas EN10MB (Ethernet), 23:11:10.370321 IP (tos 0x20, ttl 48, id 34859, poslinkis 0: .6 vėliavėlės 44, .2 3 > 72.21.34.42: icmp 64: aido užklausa seq 0 0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T.+..0.|.E..+ 0x202015. 72a 0000 25ff d744 H. "..50"...%..D 0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213 .^.............. 0x0030: 1415 1617 1819 1a1b 1c02 2321d .......!"# 0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&"()*+,-./0123 0x0050: 3435 3637 4567 gautas filtras 10 paketų branduolio numesti paketai FILTRAVIMAS PAGAL ŠALTINĮ IR PASKIRTĮ Atskirti srautą pagal šaltinį arba paskirties vietą labai paprasta naudojant src ir dst. # tcpdump src 2.3.4.5 tcpdump dst 3.4.5.6 IEŠKOKITE PAKETŲ TINKLE Norėdami rasti paketus, einančius į konkretų tinklą arba iš jo, naudokite tinklo parinktį. Tai galite derinti su src arba dst parinktimis. # tcpdump net 1.2.3.0/24 RODYTI EISMĄ, SUSIJĘ SU SPECIALIU UOSTU tu gali rasti konkretus uostas srautą naudojant prievado parinktį, po kurios nurodomas prievado numeris. # tcpdump prievadas 3389 tcpdump src prievadas 1025 RODYTI VIENO PROTOKOLO EISMAS Jei ieškote konkretaus srauto tipo, galite naudoti tcp, udp, icmp ir daugelį kitų. # tcpdump icmp RODYTI TIK IP6 EISMĄ Taip pat galite rasti visą IP6 srautą naudodami protokolo parinktį. RASTI EISMĄ NAUDOJANT UOSTŲ JUOSTAS Norėdami rasti srautą, taip pat galite naudoti prievado diapazoną. # tcpdump portrange 21-23 RASTI EISMĄ PAGAL PAKELTŲ DYDĮ Jei ieškote konkretaus dydžio pakuočių, galite pasinaudoti šiomis parinktimis. Galite naudoti mažus, didelius arba atitinkamus simbolius, kurių tikitės iš matematikos. # tcpdump mažiau 32 tcpdump didesnis 64 tcpdump<= 128 RAŠYTI FAILŲ ĮRAŠAI Dažnai naudinga išsaugoti paketų rezultatus faile, kad būtų galima atlikti analizę ateityje. Šie failai yra žinomi kaip PCAP (PEE-cap) failai ir gali būti apdoroti šimtais skirtingų programų, įskaitant tinklo analizatorius, įsibrovimų aptikimo sistemas ir, žinoma, pačią tcpdump. Čia mes rašome failą, vadinamą capture_file, naudodami jungiklį -w. # tcpdump prievadas 80 -w capture_file PCAP FAILŲ SKAITYMAS Galite skaityti PCAP failus naudodami jungiklį -r. Atminkite, kad skaitydami failą galite naudoti visas įprastas tcpdump komandas; jus riboja tik tai, kad negalite užfiksuoti ir apdoroti nieko, ko nėra faile. # tcpdump -r capture_file IŠPLĖSTI Dabar, kai pamatėme, ką galime padaryti su pagrindiniais pavyzdžiais, pažvelkime į kai kuriuos sudėtingesnius dalykus. VISKAS APIE DERINIUS Šiuos skirtingus dalykus paversti individualiais yra galingas gebėjimas, tačiau tikroji tcpdump magija kyla iš gebėjimo kūrybiškai derinti parinktis, kad būtų galima tiksliai atskirti tai, ko ieškote. Yra trys derinių sudarymo būdai, ir jei iš viso studijavote programavimą, jie jums bus labai pažįstami. IR ARBA IŠSKYRUS Štai keletas kombinuotų komandų pavyzdžių. NUO KONKREČIO IP IR PRISKIRTA KONKREČIAM PRIESTAM Raskime visą srautą nuo 10.5.2.3 iki bet kurio pagrindinio kompiuterio 3389 prievade. Tcpdump -nnvvS src 10.5.2.3 ir dst prievadas 3389 NUO VIENO TINKLO PRIE KITO Pažiūrėkime į visą srautą, gaunamą iš 192.168.x.x ir į 10.x arba 172.16.x.x tinklus, ir parodysime šešioliktainę išvestį be prieglobos pavadinimo ir vieno lygio papildomos informacijos. Tcpdump -nvX src net 192.168.0.0/16 ir dst net 10.0.0.0/8 arba 172.16.0.0/16 NE ICMP SRAUTAS, VEIKIANTAS Į KONKRETĮ IP Tai parodys mums visą srautą, nukreiptą į 192.168.0.2, kuris nėra ICMP. Tcpdump dst 192.168.0.2 ir src net, o ne icmp EISMAS IŠ PAGRINDINĖS MEDŽIAGOS, KURIE NĖRA KONKREČIAME UOSTE Tai parodys mums visą srautą iš pagrindinio kompiuterio, kuris nėra SSH srautas (darant prielaidą, kad naudojamas numatytasis prievadas). Tcpdump -vv src mars, o ne dst prievadas 22 Kaip matote, galite kurti užklausas, kad rastumėte beveik viską, ko jums reikia. Svarbiausia yra pirmiausia tiksliai nustatyti, ko ieškote, o tada sukurti sintaksę, kad atskirtumėte konkretų srauto tipą. Sudėtingas grupavimas ir specialieji simboliai Taip pat atminkite, kad kuriant sudėtingas užklausas gali tekti sugrupuoti parametrus naudodami atskiras kabutes. Pavienės kabutės naudojamos nurodant tcpdump nepaisyti tam tikrų specialiųjų simbolių – šiuo atveju skliausteliuose esančio „()“. Tas pats metodas gali būti naudojamas grupuojant naudojant kitas išraiškas, tokias kaip pagrindinis kompiuteris, prievadas, tinklas ir kt. Pažvelkite į žemiau esančią komandą. # Srautas iš 10.0.2.4 IR skirtas 3389 arba 22 prievadams (neteisingas) tcpdump src 10.0.2.4 ir (dst prievadas 3389 arba 22) Jei bandėte paleisti šią labai naudingą komandą kitu atveju, gausite klaidą dėl skliaustų. Tai galite ištaisyti išmesdami skliaustus (prieš kiekvieną įdėdami \) arba įvesdami visą komandą į kabutes: # Srautas iš 10.0.2.4 IR skirtas 3389 arba 22 prievadams (teisingai) # tcpdump "src 10.0.2.4 and (dst port 3389 or 22)" Konkrečių TCP vėliavėlių išskyrimas Taip pat galite užfiksuoti srautą pagal konkrečias TCP vėliavėles. [PASTABA: Žemiau esantys filtrai randa šiuos skirtingus paketus, nes tcp pastebi poslinkį 13 TCP antraštėje, skaičius rodo baito vietą, eh! = 0 reiškia, kad ši vėliavėlė nustatyta į 1, t.y. Tai prasidėjo. ] Rodyti visus URGENT (URG) paketus... # tcpdump "tcp & 32!=0" Rodyti visus ACKNOWLEDGE paketus (ACK)... # tcpdump "tcp & 16!=0" Rodyti visus PUSH paketus (PSH)... # tcpdump "tcp & 8!=0" Rodyti visus RESET paketus (RST)... # tcpdump "tcp & 4!=0" Rodyti visus SYNCHRONIZE paketus (SYN)... # tcpdump "tcp & 2!=0" Rodyti visus FINISH (FIN) paketus... # tcpdump "tcp & 1!=0" Rodyti visus SYNCHRONIZE / ACKNOWLEDGE paketus (SYNACK) ... # tcpdump "tcp=18" [Pastaba: tcpdump lauko išvestyje rodomos tik PSH, RST, SYN ir FIN vėliavėlės. Rodomi URG ir ACK, bet jie rodomi kitoje išvesties vietoje nei vėliavėlių lauke. ] Tačiau, kaip ir naudojant galingiausius įrankius, yra daug būdų, kaip padaryti tai, ką reikia padaryti. Šiame pavyzdyje parodytas kitas būdas užfiksuoti paketus su konkrečiais TCP vėliavėlių rinkiniais. # tcpdump "tcp == tcp-syn" Išvalykite RST vėliavėles naudodami parametrą tcpflags... # tcpdump "tcp == tcp-rst" Išvalykite FIN vėliavėles naudodami parametrą tcpflags... # tcpdump "tcp == tcp-fin" [Pastaba: tą patį metodą galima naudoti ir kitoms vėliavėlėms; kosmoso labui jie buvo praleisti. ] Atpažinti vertą eismą Galiausiai, yra keletas greitų receptų, kuriuos norėsite atsiminti, kad gautumėte konkretų ir specializuotą srautą, pvz., blogus / galbūt kenkėjiškus paketus. PAKUOTĖS SU ĮRENGINIAIS RST IR SYN RINKINIAIS (TAIP NETURI BŪTI) # tcpdump "tcp = 6" RASTI HTTP PRANEŠĮ TEKSTĄ IR GAUKTI UŽKLAUSĄ # tcpdump "tcp = 0x47455420" RASTI SSH RYŠIUS PRIE BET KOKIO UOSTO (PER BANNER) # tcpdump "tcp[(tcp>>2):4] = 0x5353482D" PAKETAI, KURIŲ TTL MAŽESNIS nei 10 (PAprastai RODYTI PROBLEMĄ ARBA NAUDOKITE TRACEROUTE) # tcpdump "ip< 10" PAKUOTĖS SU EVIL BIT MONTAVIMU # tcpdump "ip & 128 != 0" Išvada tcpdump yra vertingas įrankis visiems, norintiems prisijungti prie tinklo ar informacijos saugumo. Kaip vyksta mokymai?
Taip pat padėsime: tcpdump įrankis yra labai galingas ir populiarus įrankis tinklo paketams perimti ir analizuoti. Tai leidžia peržiūrėti visus įeinančius ir išsiunčiamus paketus iš konkrečios sąsajos ir veikia komandinėje eilutėje. Žinoma, galite naudoti Wirshark analizuoti tinklo paketus, tai yra grafinis įrankis, tačiau kartais pasitaiko situacijų, kai reikia dirbti tik terminale. Tcpdump nėra prastesnis už Wireshark ir turi visas reikiamas galimybes analizuoti paketus, be to, visus perimtus paketus galite įrašyti į failą, kad vėliau galėtumėte juos analizuoti naudodami tą patį Wireshark. Šiame straipsnyje apžvelgsime, kaip naudoti tcpdump tinklo paketams perimti. Daugelis platinimų pagal numatytuosius nustatymus pateikiami su komanda tcpdump, bet jei jūsų platinimas jos neturi, galite labai lengvai ją įdiegti iš oficialių saugyklų. Pavyzdžiui, Ubuntu / Debian: sudo apt install tcpdum p „Fedora“ / „Red Hat“ / „CentOS“: sudo yum įdiegti tcpdump Kai diegimas bus baigtas, galite tęsti darbą. tcpdump komandaPrieš pereidami prie darbo su programa pavyzdžių, pažvelkime į jos sintaksę ir pagrindines parinktis. Komanda turi tokią sintaksę: $ tcpdump parinktys -i sąsajos filtrai Skambindami turite pereiti sąsają, kurią stebėsite. Jei sąsaja nenurodyta, bus naudojama pirmoji sąraše. Parinktys sukonfigūruoja ekraną ir pagrindines paslaugų programos galimybes, o filtrai leidžia filtruoti nereikalingus paketus. Dabar pažvelkime į pagrindines parinktis:
Tai ne visos galimybės, bet jų pakaks, kad išspręstumėte daugumą problemų. Filtrus naudosime dažniau. Naudodami filtrus galite filtruoti tik tuos paketų tipus, kuriuos norite matyti. Galite filtruoti pagal IP adresą, protokolą, tinklą, sąsają ir daugelį kitų parametrų. Bet mes pažvelgsime į tcpdump filtrus naudodami pavyzdžius. Kaip naudoti tcpdumpPrieš pradėdami naudoti tcpdump, turite išsiaiškinti, kokias tinklo sąsajas galite naudoti. Norėdami tai padaryti, paleiskite komandą su -D parinktimi: Pradėkime žiūrėti tcpdump pavyzdžius, fiksuodami srautą eth0 sąsajoje; man tai yra pagrindinė sąsaja, prijungta prie interneto. Programai paleisti reikalingos supervartotojo teisės, todėl nepamirškite naudoti sudo: sudo tcpdump -i eth0 Norėdami sustabdyti komandą, paspauskite Ctrl + C. Išvestyje iškart pamatysite visus perimtus paketus. Kiekvienos pakuotės įrašo formatas atrodys taip: 13:03:41.795599 IP udp032919uds.hawaiiantel.net.6881> 192.168.1.2.52055 : vėliavėlės [.], seka 640160396:640161844, ack 436677393, laimėti 2050, parinktys , ilgis 1448 Šis formatas būdingas duomenų paketams; priklausomai nuo protokolo, juodai paryškintas tekstas skirsis. Pirmiausia pasirodo laiko žyma, tada protokolas, tada siuntėjo IP adresas yra žalias, o gavėjo, šiuo atveju mūsų kompiuterio, adresas yra mėlynas. Toliau jie eina Papildomos parinktys tcp ir pabaigoje paketo dydis baitais. Išvesties detales galima valdyti naudojant -v parinktis. Pavyzdžiui: sudo tcpdump -v -i eth0 Informacija apie IP protokolą jau rodoma čia: IP (tos 0x0, ttl 64, id 50309, poslinkis 0, vėliavėlės, proto TCP (6), ilgis 64) Galime sužinoti informaciją apie TTL paketo galiojimo laiką, versiją TCP protokolas ir antraštės lauko ilgis. Parinktis -vv kai kuriais atvejais išves paketo kontrolinės sumos patikrinimą ir turinį. Po parinkčių galite nurodyti paketų filtrus. Štai pagrindiniai parametrai, pagal kuriuos galite filtruoti paketus:
Visa tai galite derinti tarpusavyje, kad gautumėte norimą rezultatą. Pažiūrėkime išsamiau naudodami pavyzdžius. Išfiltruokime tik į mūsų kompiuterį skirtus paketus: sudo tcpdump -i eth0 ip dst 192.168.1.2 Taip pat galime pasirinkti paketus, siunčiamus į konkretų mazgą: sudo tcpdump -i eth0 dst priegloba google-public-dns-a.google.com Kaip matote, tai yra DNS paketai ir juose yra vietoj TCP vėliavėlių naudingos informacijos, paprašykite pagrindinio kompiuterio IP adreso. Taip pat galite pasirinkti atsakymo paketus iš konkretaus pagrindinio kompiuterio: sudo tcpdump -i eth0 src priegloba google-public-dns-a.google.com Tai nėra visas paketo turinys, jei norite jį gauti, turite naudoti parinktį -v arba -vv: sudo tcpdump -vv -i eth0 priegloba dst google-public-dns-a.google.com Naudodami ir operatorių galite sujungti kelis filtrus į vieną: sudo tcpdump -i eth0 dst priegloba google-public-dns-a.google.com ir src priegloba google-public-dns-a.google.com Galimos sujungimo operacijos yra ir ir arba, taip pat galite naudoti skliaustus, kad nurodytumėte pirmenybę. Nereikia nurodyti host, daugeliu atvejų pakanka src arba dst, programa pati supras, kas buvo turėta omenyje. Lygiai tą patį dizainą galima naudoti prievadams. Pavyzdžiui, galime filtruoti visas užklausas ar atsakymus į DNS (53 prievade): sudo tcpdump -vv -i eth0 prievadas 53 Lygiai tą patį galima padaryti su http (80 prievadas): sudo tcpdump -vv -i eth0 prievadas 80 Žinoma, dst ir src čia taip pat gali būti naudojami konkretesniems rezultatams gauti. Galite filtruoti ne tik vieną prievadą, bet ir visą eilę prievadų: sudo tcpdump portrange 21-23 Jei nurodysite vieną iš protokolų, filtruosite tik to protokolo paketus, pvz., tcp, udp arba arp: sudo tcpdump -vv arp Taip pat galite pasirinkti visus udp paketus: sudo tcpdump -vv udp Taip pat galimas filtras pagal tinklo pavadinimą: sudo tcpdump net 129.168.1.1/24 Be to, galite filtruoti paketus pagal jų dydį, pavyzdžiui, mažesnius nei 32 baitai: sudo tcpdump mažesnis nei 32 Arba daugiau nei 128: tcpdump didesnis nei 128 sudo tcpdump -i eth0 -w failas.pcap Šį failą galima atidaryti naudojant bet kurią tokių failų skaitymo programą, pvz., Wireshark. Norėdami atidaryti faile išsaugotus paketus, naudokite parinktį -r: sudo tcpdump -r failas.pcap Yra dar vienas dalykas, į kurį verta atkreipti dėmesį. Tai yra paketų turinio rodymo formatas. Paketo turinį galite išvesti ASCII formatu naudodami parinktį -A: sudo tcpdump -A -i eth0 Taip pat galite rodyti turinį HEX ir ASCII formatu, naudokite -XX: sudo tcpdump -XX -i eth0 išvadasŠiame straipsnyje apžvelgėme, kaip naudoti tcpdump. Tai labai galingas tinklo analizatorius, veikiantis tik per komandinę eilutę. Tikiuosi, kad ši informacija jums buvo naudinga ir dabar naudoti tcpdump bus daug lengviau, jei turite klausimų, klauskite komentaruose! Norėdami užbaigti vaizdo įrašą paskaita apie tcpdump:
tcpdump yra galingas komandų eilutės analizatorius ir Libpcap, nešiojama biblioteka, skirta tinklo srautui užfiksuoti. Tcpdump spausdina atitinkamų paketų turinio aprašą tinklo sąsajoje loginė išraiška. Jis taip pat gali būti paleistas naudojant jungiklį -w, dėl kurio jis išsaugo paketinius duomenis į failą, kad būtų galima vėliau analizuoti, ir (arba) su vėliava -r, dėl kurios jie nuskaitomi iš išsaugoto paketinio failo. Naudodamiesi šia programa galite perimti ir analizuoti tinklo srautą, einantį per kompiuterį, kuriame veikia ši programa. Šioje temoje „tcpdump diegimas ir naudojimas“ norėčiau pakalbėti apie tcpdump diegimą, kaip jį naudoti ir kam jis reikalingas. Naudodami tcpdump galite:
Norėdami įdiegti tcpdump debian/ubuntu/linux mint, turite paleisti: # sudo apt-get install tcpdump Norėdami įdiegti „tcpdump“ „RedHat“ / „CentOS“ / „Fedora“, naudokite: # sudo yum install tcpdump Norėdami įdiegti „tcpdump“ „MacOS“, naudokite. # brew įdiegti tcpdump Naudojant tcpdump.Norėdami patikrinti, ar tcpdump mums tinka, galite paleisti komandą: # tcpdump -i eth0 80 prievadas Yra nemažai jungiklių, skirtų pačiam tcpdump įrankiui naudoti, čia pateikiamas įprastų sąrašas: Jei reikia išsiaiškinti, kokiais paketais keičiasi 21 serveris (pavyzdžiui, jūsų_serveris_1 ir jūsų_serveris_2), naudokite komandą: # tcpdump priegloba jūsų_serveris_1 ir jūsų_serveris_2 Jei jums reikia tik stebėti siunčiamus paketus iš pagrindinio kompiuterio, paleiskite: # tcpdump src priegloba jūsų_serveris Jei jums reikia tik stebėti gaunamus paketus iš pagrindinio kompiuterio, paleiskite: # tcpdump dst priegloba jūsų_serveris Taip pat galite klausytis išeinančių ar gaunamų paketų iš serverio ir tam tikrame prievade. Norėdami tai padaryti, tiesiog pridėkite prievadą, kurio norite klausytis (dažniausiai naudojamas 80, 8080). Peržiūrėkite sąsajų, kuriose galite klausytis tcpdumt, sąrašą: # tcpdump -D Klausytis sąsajos eth0: # tcpdump -i eth0 Klausykite naudodami bet kurią pasiekiamą sąsają (reikalinga Linux branduolio versija 2.2 arba naujesnė): # tcpdump -i bet koks Rodyti viską ekrane (viską, ką vykdo programa): # tcpdump -v Rodyti daug dalykų ekrane (viską, ką vykdo programa): # tcpdump -vv Daug dalykų išveda į ekraną (viską, ką vykdo programa): # tcpdump -vvv Nerodyti daug informacijos, kai fiksuojami paketai (ne taip, kaip standartinis): # tcpdump -q Apriboti paketų fiksavimą iki 100: # tcpdump -c 100 Įrašykite visus duomenis (užfiksuotus paketus) į failą, pavadintą capture.cap: # tcpdump -w capture.cap Įrašykite visus duomenis (užfiksuotus paketus) į failą Capture.cap ir parodykite juos ekrane realiuoju laiku: # tcpdump -v -w capture.cap Paketų išėjimas iš Capture.cap failo: # tcpdump -r capture.cap Išveskite paketus iš Capture.cap failo naudodami kuo daugiau informacijos: # tcpdump -vvv -r capture.cap Išvesties IP ir prievadai vietoj domenų yra paketų fiksavimas: # tcpdump -n Užfiksuokite visus paketus, kurių paskirties kompiuteris yra 192.138.1.1. Rodyti IP ir prievadus ekrane: # tcpdump -n dst host 192.138.1.1 # tcpdump -n src host 192.138.1.1 Užfiksuokite visus paketus iš pagrindinio kompiuterio 192.138.1.1. Rodyti IP ir prievadus ekrane: # tcpdump -n priegloba 192.138.1.1 Užfiksuokite paketus, kai tinklas yra 192.138.1.0/24. Rodyti IP ir prievadus ekrane: # tcpdump -n dst net 192.138.1.0/24 # tcpdump -n src net 192.138.1.0/24 Užfiksuokite paketus iš tinklo 192.138.1.0/24. Rodyti IP ir prievadus ekrane: # tcpdump -n net 192.138.1.0/24 Užfiksuokite paketus iš 23 prievado. Rodyti IP ir prievadus ekrane: # tcpdump -n dst 23 prievadas Užfiksuokite paketus iš 1 iki 1023 prievadų. Ekrane rodykite IP ir prievadus: # tcpdump -n dst portrange 1-1023 Užfiksuokite tik TCP paketus, kurių paskirties vieta yra 1–1023 prievaduose. Ekrane rodykite IP ir prievadus: # tcpdump -n tcp dst portrange 1-1023 Užfiksuokite tik UDP paketus, kurių paskirties vieta yra 1–1023 prievaduose. Ekrane rodykite IP ir prievadus: # tcpdump -n udp dst portrange 1-1023 Užfiksuokite paketus iš paskirties vietos, kur IP yra 192.138.1.1, o paskirties prievadas yra 23. Rodymas ekrane: # tcpdump -n "dst host 192.138.1.1 ir dst prievadas 23" Užfiksuokite paketus iš paskirties vietos, kur IP yra 192.138.1.1, ir per 80 arba 443 prievadus. Ekranas: # tcpdump -n "dst prievadas 192.138.1.1 ir (dst prievadas 80 arba dst prievadas 443)" Užfiksuokite bet kokius ICMP paketus: # tcpdump -v icmp Užfiksuokite bet kokius ARP paketus: # tcpdump -v arp Užfiksuokite bet kokius ICMP arba ARP paketus: # tcpdump -v "icmp arba arp" Užfiksuokite bet kokius transliuojamus arba daugialypius siuntimus: # tcpdump -n "transliacija arba daugialypė transliacija" Užfiksuokite didelius paketus (500 baitų), o ne standartinį 68b: # tcpdump -s 500 Užfiksuokite visus duomenų baitus į paketą: # tcpdump -s 0 „Sunkių paketų“ peržiūra: # tcpdump -nnvvXSs 1514 Užfiksuokite ICMP paketus su ping ir pong: # tcpdump -nnvXSs 0 -c2 icmp Išvada be daugelio variantų: # tcpdump -nS Pagrindinės komunikacijos (labai žodinis režimas), galite matyti didelį srautą su daugžodžiu: # tcpdump -nnvvS Gilus žvilgsnis į eismą, pridedant -X naudingajam kroviniui: # tcpdump -nnvvXS Peržiūrėkite sunkų paketą ir padidinkite momentinį ilgį, užfiksuodami visą paketą: # tcpdump -nnvvXSs 1514 Taip pat galite filtruoti pagal konkrečias paketo dalis, taip pat sugrupuoti kelias sąlygas. Tai naudinga, pavyzdžiui, ieškant tik SYN arba PCT, o pastarųjų – norint dar labiau izoliuoti srautą. Rodyti visus URGENT (URG) paketus: # tcpdump "tcp & 32!=0" Rodyti visus ACKNOWLEDGE (ACK) paketus: # tcpdump "tcp & 16!=0" Rodyti visus PUSH (PSH) paketus: # tcpdump "tcp & 8!=0" Rodyti visus RESET (RST) paketus: # tcpdump "tcp & 4!=0" Rodyti visus SYNCHRONIZE (SYN) paketus: # tcpdump "tcp & 2!=0" Rodyti visus FINISH (FIN) paketus: # tcpdump "tcp & 1!=0" Rodyti visus SYNCHRONIZE/ACKNOWLEDGE (SYNACK) paketus: # tcpdump "tcp=18" Užfiksuokite TCP vėliavėles naudodami tcpflags: # tcpdump "tcp & & tcp-syn != 0" Paketai su RST ir SYN vėliavėlėmis (patikrinkite): # tcpdump "tcp = 6" Eismas iš „Evil Bit“ (patikrinkite): # tcpdump "ip & 128 != 0" Čia aš užbaigsiu savo straipsnį „tcpdump diegimas ir naudojimas“, tikiuosi, kad viskas yra aišku ir suprantama. |
Skaityti: |
---|
Populiaru:
Nauja
- Kaip paleisti „Xiaomi“ telefoną naudojant „MiFlash“.
- Išsami Xiaomi Mi4i apžvalga
- Kaip atrakinti „Xiaomi“ įkrovos tvarkyklę: nuoseklios instrukcijos „Xiaomi atrakinimas“ pateikia klaidą jūsų įrenginiui
- Kaip atrakinti „Xiaomi“ įkrovos įkroviklį ir kodėl to reikia „Xiaomi“ įkrovos tvarkyklės atrakinimo priežasčių pavyzdžiai anglų kalba
- Greitas įkrovimas įrenginiuose iš Xiaomi Kaip išjungti greitą įkrovimą Xiaomi
- Kaip tinkamai įkrauti naują „Xiaomi“ telefoną Greitas įkrovimas qc 3
- Jiayu g4 išplėstinė 2 32 programinė įranga
- Kaip atsisiųsti ir įdiegti „Xiaomi Paid“ temų, skirtų miui 8, temas
- Ką daryti, jei „Xiaomi“ nenori įsijungti?
- Mano iPhone turi tik vieną garsiakalbį – ką turėčiau daryti?