Agar siz Linuxda tarmoq paketlarini tahlil qilsangiz yoki uni to'xtatib qo'yishingiz kerak bo'lsa, buning uchun konsol dasturidan foydalaning. tcpdump. Ammo bu muammoni murakkab boshqaruvda paydo bo'ladi. Oddiy foydalanuvchi uchun foyda bilan ishlash uchun noqulay ko'rinadi, ammo bu faqat birinchi qarashda. Maqolada tcpdump qanday tashkil qilinganligi, qanday sintaksisi mavjudligi, uni qanday ishlatish va ulardan foydalanishning ko'plab misollari keltirilgan.
Shuningdek qarang: Ubuntu, Debian, Ubuntu Serverda internet aloqasini o'rnatish uchun qo'llanmalar
O'rnatish
Linux-asosidagi operatsion tizimlarning aksariyatini ishlab chiquvchilar oldindan o'rnatilganlar ro'yxatidagi tcpdump yordam dasturini o'z ichiga oladi, ammo ba'zi sabablarga ko'ra u sizning tarqatishda mavjud bo'lmasa, uni har doim yuklab olishingiz va o'rnatishingiz mumkin. "Terminal". Operatsion tizimingiz Debian-ga asoslangan bo'lsa va u Ubuntu, Linux Mint, Kali Linux va shunga o'xshash bo'lsa, quyidagi buyruqni bajarishingiz kerak:
sudo apt o'rnatish tcpdump
O'rnatish paytida siz parolni kiritishingiz kerak. Iltimos, ushbu yozuvni kiritishda, shuningdek, o'rnatishni tasdiqlash uchun ham belgini kiritish kerakligini unutmang "D" tugmasini bosing va Kirish.
Red Hat, Fedora yoki CentOS bo'lsa, o'rnatish buyrug'i quyidagi tarzda ko'rinadi:
sudo yam o'rnatish tcpdump
Foydali dastur o'rnatilgandan so'ng darhol foydalanishingiz mumkin. Bu va yana ko'p narsalar keyinroq matnda muhokama qilinadi.
Shuningdek qarang: Ubuntu Server uchun PHP O'rnatish Kılavuzu
Matnni sintaksisi
Boshqa har qanday buyruq kabi, tcpdump da o'z sintaksisiga ega. Uni bilish uchun buyruqni bajarishda hisobga olinadigan barcha parametrlarni belgilashingiz mumkin. Matnni sintaksisi:
tcpdump imkoniyatlari -i interfeysi filtrlari
Buyruqdan foydalanganda siz izlayotgan interfeysni ko'rsatishingiz kerak. Filtrlar va variantlar majburiy o'zgaruvchan emas, lekin ular yanada moslashuvchan konfiguratsiyaga imkon beradi.
Tanlovlar
Variantni belgilashga hojat bo'lmasa-da, mavjud bo'lganlarni ro'yxatga olish kerak. Jadval o'zlarining to'liq ro'yxatini ko'rsatmaydi, faqat eng ommabop bo'lganlar, ammo ular ko'pgina vazifalarni hal qilish uchun etarli.
Variant | Ta'rif |
---|---|
-A | Siz paketlarni ASCII formatida tartiblash imkonini beradi |
-l | O'tkazish funktsiyasini qo'shadi. |
-i | Siz kiritganingizdan so'ng siz kuzatiladigan tarmoq interfeysini aniqlang. Barcha interfeyslarni kuzatishni boshlash uchun variantdan so'ng "har qanday" so'zini kiriting. |
-c | Belgilangan miqdordagi paketlarni tekshirgandan so'ng kuzatuv jarayonini bajaradi. |
-w | Tekshirish hisoboti bilan matn fayli hosil qiladi. |
-e | Ma'lumotlar paketining Internetga ulanish darajasini ko'rsatadi. |
-L | Faqat ko'rsatilgan tarmoq interfeysi tomonidan qo'llab-quvvatlanadigan protokollarni ko'rsatadi. |
-C | Agar uning kattaligi belgilangan hajmdan katta bo'lsa, paketni yozayotganda yana bir fayl hosil qiladi. |
-r | -W-ni parametr bilan yaratilgan faylni o'qish uchun faylni ochadi. |
-j | To'plamlarni yozish uchun TimeStamp formati ishlatiladi. |
-J | Vaqtinchalik barcha mavjud formatlarni ko'rish imkonini beradi |
-G | Kundaliklar bilan fayl yaratish uchun foydalaniladi. Variantga shuningdek, vaqtinchalik qiymat talab etiladi, undan so'ng yangi jurnal tuziladi |
-v, -vv, -vvv | Variantdagi belgilar soniga qarab, buyruqlar chiqishi batafsilroq ko'rinadi (ortish belgilar soniga to'g'ridan-to'g'ri proportsionaldir) |
-f | Chiqish IP manzilining domen nomini ko'rsatadi |
-F | Tarmoq interfeysidan emas, balki ko'rsatilgan fayldan ma'lumotlarni o'qishga ruxsat beradi |
-D | Foydalanilishi mumkin bo'lgan barcha tarmoq interfeyslarini namoyish etadi. |
-n | Domen nomlarining ekranini o'chiradi |
-Z | Barcha fayllar yaratiladigan hisobdan foydalanuvchi identifikatsiyalanadi. |
-K | Eksport summalarini tahlil qiling |
-q | Qisqacha axborotni namoyish qilish |
-H | 802.11s sarlavhalarini aniqlaydi |
- Men | Kuzatuv rejimida paketlarni olishda ishlatiladi. |
Variantlarni ko'rib chiqib, quyida biz to'g'ridan-to'g'ri ularning ilovalariga murojaat qilamiz. Shu bilan birga, filtrlar ko'rib chiqiladi.
Filtrlar
Maqolaning boshida aytib o'tilganidek, tcpdump sintaksisiga filtrlarni qo'shishingiz mumkin. Endi ularning eng mashhurlari hisobga olinadi:
Filtrni tanlang | Ta'rif |
---|---|
mezbon | Xost nomini bildiradi. |
aniq | IP-tarmoq va tarmoqni belgilaydi |
ip | Protokol manzilini bildiradi |
src | Ko'rsatilgan manzildan yuborilgan paketlarni ko'rsatadi |
dst | Ko'rsatilgan manzil tomonidan qabul qilingan paketlarni ko'rsatadi. |
arp, udp, tcp | Protokollardan biriga ko'ra filtrlash |
port | Muayyan portga tegishli ma'lumotlarni ko'rsatadi. |
va, yoki | Buyruqdagi bir nechta filtrlarni birlashtirish uchun ishlatiladi. |
kamroq, katta | Belgilangan hajmdan kichikroq yoki kattaroq chiqdi paketlari |
Yuqoridagi filtrlarning barchasi bir-biri bilan birlashtirilishi mumkin, shuning uchun siz buyruq berayotganda faqat siz ko'rmoqchi bo'lgan ma'lumotlarni kuzata olasiz. Yuqoridagi filtrlardan foydalanishni batafsilroq tushunish uchun misollar berish kerak.
Shuningdek qarang: Linux Terminalida tez-tez ishlatiladigan buyruqlar
Foydalanish misollar
Tez-tez ishlatiladigan tcpdump sintaksisi imkoniyatlari endi ro'yxatda keltirilgan. Ularning barchasi ro'yxatga olinmaydi, chunki ularning o'zgarishlari cheksiz bo'lishi mumkin.
Xabarlar ro'yxatini ko'rish
Har bir foydalanuvchi dastlab o'zlarining barcha tarmoq interfeyslari ro'yxatini tekshirib ko'rishlari tavsiya etiladi. Yuqoridagi jadvaldan biz bu variantni ishlatishingiz kerakligini bilamiz -D, shuning uchun terminalda quyidagi buyruqni bajaring:
sudo tcpdump -D
Misol:
Ko'rib turganingizdek, misolda tcpdump buyrug'i yordamida ko'rish mumkin bo'lgan sakkiz interfeys mavjud. Maqolada misollar keltiriladi ppp0, boshqa har qanday foydalanishingiz mumkin.
Oddiy traffikni olish
Agar siz bitta tarmoq interfeysini kuzatib borishingiz kerak bo'lsa, uni variant bilan qilishingiz mumkin -i. Undan keyin interfeys nomini kiritishni unutmang. Mana shunday buyrug'i bajarishning namunasi:
sudo tcpdump -i ppp0
Iltimos, diqqat qiling: "sudo" ni komandaning o'zi oldiga kiritishingiz kerak, chunki u superuserning haqini talab qiladi.
Misol:
Eslatma: "Terminal" da Enter ni bosgandan so'ng, ushlangan paketlar doimiy ravishda ko'rsatiladi. Oqimlarni to'xtatish uchun Ctrl + C tugmalarini bosish kerak.
Buyruqni qo'shimcha parametr va filtrlarsiz ishlatsangiz, kuzatilgan paketlarni ko'rsatish uchun quyidagi formatni ko'rasiz:
22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Bayroqlar [P.], seq 1: 595, ack 1118, 6494 yutuqlari, variantlar [nop, nop, vagon val 257060077 ekr 697597623], uzunligi 594
Rangni ta'kidlagan joy:
- ko'k - paketni qabul qilish vaqti;
- apelsin - protokol versiyasi;
- yashil jo'natuvchining manzili;
- binafsha - qabul qiluvchining manzili;
- kul - tcp haqida qo'shimcha ma'lumot;
- qizil paketi hajmi (baytlarda ko'rsatiladi).
Ushbu sintaksis oynada chiqishi mumkin "Terminal" qo'shimcha variantlardan foydalanishsiz.
-V parametr bilan trafikni qo'lga oling
Jadvalda ma'lum bo'lganidek, variant -v ma'lumotlar hajmini oshirishga imkon beradi. Keling, bir misolni ko'rib chiqaylik. Xuddi shu interfeysni tekshiring:
sudo tcpdump -v -i ppp0
Misol:
Bu erda siz chiqishda quyidagi chiziq paydo bo'lishini ko'rishingiz mumkin:
IP (toks 0x0, ttl 58, id 30675, ofset 0, bayroqlar [DF], proto TCP (6), uzunlik 52
Rangni ta'kidlagan joy:
- apelsin - protokol versiyasi;
- ko'k - protokolning hayoti;
- yashil - dala boshlang'ich uzunligi;
- purple - tcp to'plami versiyasi;
- qizil - paketi hajmi.
Bundan tashqari, buyruqlar sintaksisida variantni yozishingiz mumkin -vv yoki -vvv, bu esa ekranda aks etadigan ma'lumot miqdorini yanada oshiradi.
-W va -r variant
Variantlar jadvali barcha chiqdi ma'lumotlarini alohida faylda saqlash imkoniyatini nazarda tutib, ular keyinroq ko'rib chiqilishi mumkin. Buning sababi variant. -w. Buni ishlatish juda oson, faqat buyruqga kiritib, kengaytma bilan kelajakdagi fayl nomini kiriting ".pcap". Quyidagi misolni ko'rib chiqaylik:
sudo tcpdump -i ppp0 -w fayl.pcap
Misol:
Iltimos, diqqat: faylga jurnal yozish paytida, "Terminal" ekranda hech qanday matn ko'rsatilmaydi.
Saqlangan chiqishni ko'rishni xohlasangiz, ushbu parametrdan foydalanishingiz kerak -rundan keyin qayd etilgan faylning nomi. Boshqa variantlar va filtrlarsiz qo'llaniladi:
sudo tcpdump -r fayl.pcap
Misol:
Keyingi variantlarni tahlil qilish uchun katta miqdordagi matnni tejash kerak bo'lgan holatlarda ikkalasi ham yaxshi.
IP-filtrlash
Filtr stolidan bilamiz dst konsol ekranda faqat buyruq sintaksisida ko'rsatilgan manzil tomonidan olingan paketlarni aks ettirishga imkon beradi. Shunday qilib, kompyuteringiz tomonidan olingan paketlarni ko'rish juda qulay. Buni amalga oshirish uchun guruh faqat sizning IP manzilingizni belgilashi kerak:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Misol:
Ko'rib turganingizdek, bundan tashqari dst, jamoada biz filtrni ham ro'yxatdan o'tkazdik ip. Boshqacha qilib aytadigan bo'lsak, biz kompyuterga paketlarni tanlashda boshqa parametrlarga emas, ularning IP-adresiga e'tibor berishini aytdik.
IP orqali siz filtrlarni yuborishingiz va yuborishingiz mumkin. Misol tariqasida bizning IP-ni yana beramiz. Boshqacha qilib aytadigan bo'lsak, hozirda biz kompyuterdan boshqa paketlarga qanday paketlar yuborilishini kuzatamiz. Buni amalga oshirish uchun quyidagi buyruqni bajaring:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Misol:
Ko'rib turganingizdek, biz filtrni buyruqlar sintaksisida o'zgartirdik. dst ochiq src, shuning uchun mashina IP-jo'natuvchini qidirishga ishora qiladi.
HOST filtrlash
Jamoada IP bilan taqqoslaganda biz filtrni belgilashimiz mumkin mezbonqiziqish uyg'otuvchi paketlarni tashish uchun. Ya'ni, sintaksisida, jo'natuvchi / qabul qiluvchining IP-manzili o'rniga uning uy egasini ko'rsatishingiz kerak bo'ladi. Bu quyidagicha ko'rinadi:
sudo tcpdump -i ppp0 dst xosti google-public-dns-a.google.com
Misol:
Rasmda siz uni ko'rishingiz mumkin "Terminal" Faqat IP-dan google.com-ga yuborilgan paketlar ko'rsatiladi. Ko'rib turganingizdek, google xost o'rniga boshqasini kiritishingiz mumkin.
IP filtrlashda bo'lgani kabi, sintaksis: dst bilan almashtirilishi mumkin srcKompyuteringizga yuborilgan paketlarni ko'rish uchun:
sudo tcpdump -i ppp0 src domeni google-public-dns-a.google.com
Eslatma: host filtri dst yoki srcdan keyin bo'lishi kerak, aks holda buyruq xato hosil qiladi. IP-filtrlashda, aksincha, dst va src ip filtrining old tomonida.
Filtrni va va / yoki
Bir buyruqda bir vaqtning o'zida bir nechta filtrdan foydalansangiz, filtr qo'llashingiz kerak. va yoki yoki (vaziyatga bog'liq). Sintaksisdagi filtrlarni belgilab, ularni ushbu operatorlar bilan ajratib, ularni "ish" qilyapsiz. Masalan, quyidagi misolda ko'rinadi:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 yoki ip src 95.47.144.254
Misol:
Buyruqning sintaksisidan ko'rsatishni xohlayotganimizni ko'rishingiz mumkin "Terminal" 95.47.144.254 manziliga yuborilgan barcha paketlar va bir xil manzil bo'yicha olingan paketlar. Bu ifodada ba'zi o'zgaruvchilarni o'zgartirishingiz mumkin. Masalan, IP o'rniga HOSTni belgilang yoki to'g'ridan-to'g'ri manzillarni o'zgartiring.
Filtrni port va portret
Filtrni tanlang port muayyan portga ega paketlar haqida ma'lumot olish kerak bo'lganda juda yaxshi. Shunday qilib, javoblarni yoki DNS so'rovlarini ko'rishingiz kerak bo'lsa, siz 53-raqamli nuqtani ko'rsatishingiz kerak:
sudo tcpdump -vv -i ppp0 porti 53
Misol:
Http paketlarini ko'rishni istasangiz, 80 portini kiritishingiz kerak:
sudo tcpdump -vv -i ppp0 port 80
Misol:
Boshqa narsalar bilan bir qatorda, darhol port oralig'ini kuzatib borish mumkin. Buning uchun filtrni qo'llang portentizatsiya:
sudo tcpdump portrange 50-80
Ko'rib turganingizdek, filtr bilan birga portentizatsiya Qo'shimcha variantlarni ko'rsatish shart emas. Faqat oraliqni o'rnating.
Protokollarni filtrlash
Bundan tashqari faqat har qanday protokolga mos keladigan trafikni ko'rishingiz mumkin. Buni amalga oshirish uchun ushbu protokol nomini filtr sifatida foydalaning. Keling, bir misolni ko'rib chiqaylik udp:
sudo tcpdump -vv -i ppp0 udp
Misol:
Rasmda ko'rib turganingizdek, buyruqni bajarganingizdan so'ng "Terminal" Faqat protokoli bo'lgan paketlar ko'rsatildi udp. Shunga ko'ra, boshqalar tomonidan filtrlashingiz mumkin, masalan, arp:
sudo tcpdump -vvv -i ppp0 arp
yoki tcp:
sudo tcpdump -vv -i ppp0 tcp
Filtrni aniq
Operator aniq tarmoqlarini belgilash asosida paketlarni filtrlashga yordam beradi. Qolganlari kabi foydalanish osonroq bo'ladi - sintaksisdagi xususiyatni ko'rsatish kerak aniq, keyin tarmoq manzilini kiriting. Mana, bunday buyruqning namunasi:
sudo tcpdump -i ppp0 aniq 192.168.1.1
Misol:
Paket hajmi bo'yicha filtrlash
Biz yana ikkita qiziqarli filtrani ko'rib chiqmadik: kamroq va katta. Filtrlarga ega jadvaldan biz ko'proq ma'lumot paketlarini ishlab chiqarishga xizmat qilamiz (kamroq) yoki undan kamkatta) xususiyati kiritilgandan keyin belgilangan hajmi.
Biz faqat 50 bitdan oshmagan paketlarni tomosha qilishni xohlaymiz deb taxmin qilamiz, shunda buyruqlar quyidagicha ko'rinadi:
sudo tcpdump -i ppp0 50 dan kam
Misol:
Endi keling "Terminal" 50 bitdan katta paketlar:
sudo tcpdump -i ppp0 50 dan ortiq
Misol:
Ko'rib turganingizdek, ular teng ishlatiladi, faqat farq filtr nomi bilan belgilanadi.
Xulosa
Maqolaning oxirida biz jamoa degan xulosaga kelishimiz mumkin tcpdump - Internet orqali uzatiladigan har qanday ma'lumot paketini kuzatib borishingiz mumkin bo'lgan ajoyib vositadir. Lekin buning uchun buyruqni o'zi kiritish etarli emas "Terminal". Istalgan natijaga erishish uchun siz faqat har xil variantlar va filtrlardan foydalangan holda va ularning kombinatsiyasidan foydalansangiz bo'ladi.