Agar Linux-da tarmoq paketlarini tahlil qilish yoki to'sish kerak bo'lsa, u holda konsol yordam dasturidan foydalanish yaxshidir tcpdump. Muammo uni ancha murakkab boshqarishda yuzaga keladi. O'rtacha foydalanuvchiga yordamchi dastur bilan ishlash noqulay bo'lib tuyuladi, ammo bu faqat bir qarashda. Maqolada tcpdump qanday ishlashi, qanday sintaksisi borligi, uni qanday ishlatish va qanday foydalanish haqida ko'plab misollar keltiriladi.
Shuningdek qarang: Ubuntu, Debian, Ubuntu Server-da Internet aloqasini o'rnatish bo'yicha ko'rsatmalar
O'rnatish
Linux-ga asoslangan operatsion tizimlarning aksariyat ishlab chiqaruvchilari oldindan o'rnatilganlar ro'yxatiga tcpdump yordam dasturini kiritadilar, ammo agar biron sababga ko'ra u sizning tarqatishingizda bo'lmasa, uni har doim yuklab olishingiz va o'rnatishingiz mumkin. "Terminal". Agar sizning operatsion tizimingiz Debian-ga asoslangan bo'lsa va bular Ubuntu, Linux Mint, Kali Linux va shunga o'xshashlar bo'lsa, siz ushbu buyruqni bajarishingiz kerak:
sudo apt o'rnatish tcpdump
O'rnatishda siz parolni kiritishingiz kerak. Esda tutingki, terayotganingizda u ko'rsatilmaydi, shuningdek siz kiritishingiz kerak bo'lgan sozlamani tasdiqlaydi D va bosing Kirish.
Agar sizda Red Hat, Fedora yoki CentOS bo'lsa, unda o'rnatish buyrug'i quyidagicha ko'rinadi:
sudo yam o'rnatish tcpdump
Yordamchi dastur o'rnatilgandan so'ng darhol foydalanish mumkin. Bu va boshqa ko'p narsalar keyinchalik matnda muhokama qilinadi.
Shuningdek qarang: Ubuntu serverida PHP o'rnatish qo'llanmasi
Sintaksis
Har qanday boshqa buyruq singari, tcpdump ham o'z sintaksisiga ega. Uni bilib, buyruqni bajarishda hisobga olinadigan barcha kerakli parametrlarni o'rnatishingiz mumkin. Sintaksis quyidagicha:
tcpdump variantlari -i interfeys filtrlari
Buyruqdan foydalanganda kuzatuv uchun interfeysni ko'rsatishingiz kerak. Filtrlar va parametrlar ixtiyoriy o'zgaruvchilardir, ammo ular moslashuvchan moslashishga imkon beradi.
Tanlovlar
Variantni ko'rsatish kerak bo'lmasa-da, siz hali ham mavjudlarini ro'yxatlashingiz kerak. Jadval ularning to'liq ro'yxatini ko'rsatmaydi, faqat eng mashhurlari, ammo ular ko'pgina vazifalarni hal qilish uchun etarli.
Variant | Ta'rif |
---|---|
-A | ASCII formatida paketlarni saralashga imkon beradi |
-l | O'tkazish funktsiyasini qo'shadi. |
-i | Kirishdan keyin siz kuzatiladigan tarmoq interfeysini ko'rsatishingiz kerak. Barcha interfeyslarni kuzatishni boshlash uchun, tanlovdan so'ng "istalgan" so'zini kiriting |
-c | Belgilangan paketlarning soni tekshirilgandan keyin kuzatuv jarayonini tugatadi |
-w | Tekshirish hisoboti bilan matnli faylni yaratadi |
-e | Internetga ulanish darajasida ma'lumot ulanishini ko'rsatadi |
-L | Faqat belgilangan tarmoq interfeysi qo'llab-quvvatlaydigan protokollarni ko'rsatadi. |
-C | Paketni yozish paytida, agar uning hajmi belgilanganidan kattaroq bo'lsa, boshqa faylni yaratadi |
-r | -W opsiyasi yordamida yaratilgan faylni ochadi |
-j | Paketlarni yozish uchun TimeStamp formatidan foydalaniladi |
-J | TimeStamp-ning barcha formatlarini ko'rishga imkon beradi |
-G | Jurnal faylini yaratishga xizmat qiladi. Variant vaqtinchalik qiymatni ham talab qiladi, shundan so'ng yangi jurnal yaratiladi |
-v, -vv, -vvv | Variantdagi belgilar soniga qarab, buyruq chiqishi batafsilroq bo'ladi (o'sish belgilar soni bilan to'g'ridan-to'g'ri mutanosib) |
-f | Chiqarishda IP manzillarining domen nomi ko'rsatilgan |
-F | Tarmoq interfeysidan emas, balki ko'rsatilgan fayldan ma'lumotlarni o'qishga imkon beradi |
-D | Ishlatilishi mumkin bo'lgan barcha tarmoq interfeyslarini namoyish etadi. |
-n | Domen nomlarini ko'rsatishni faolsizlantiradi |
-Z | Hisob ostida barcha fayllar yaratiladigan foydalanuvchini bildiradi. |
-K | Chexsum tahlilini o'tkazib yuborish |
-q | Vitrinalar haqida qisqacha ma'lumot |
-H | 802.11s sarlavhalarini aniqlaydi |
-Men | Monitor rejimida paketlarni ushlashda foydalaniladi |
Variantlarni o'rganib chiqib, biroz pastroq, biz to'g'ridan-to'g'ri ularning ilovalariga o'tamiz. Shu vaqt ichida filtrlar ko'rib chiqiladi.
Filtrlar
Maqolaning boshida aytib o'tilganidek, tcpdump sintaksisiga filtrlar qo'shishingiz mumkin. Endi ulardan eng mashhurlari ko'rib chiqiladi:
Filtrlash | Ta'rif |
---|---|
mezbon | Xost nomini belgilaydi |
aniq | IP pastki tarmoqlari va tarmoqlarini bildiradi |
ip | Protokol manzilini belgilaydi |
src | Belgilangan manzildan yuborilgan paketlarni ko'rsatadi |
dst | Belgilangan manzil tomonidan qabul qilingan paketlarni ko'rsatadi |
arp, udp, tcp | Protokollardan biri bo'yicha filtrlash |
port | Muayyan portga tegishli ma'lumotlarni ko'rsatadi |
va, yoki | Buyruqda bir nechta filtrlarni birlashtiradi. |
kamroq katta | Chiqish paketlari belgilangan hajmdan kichikroq yoki kattaroq |
Yuqoridagi barcha filtrlar bir-biri bilan birlashtirilishi mumkin, shuning uchun buyruqni chiqarishda siz faqat ko'rishni xohlagan ma'lumotni ko'rasiz. Yuqoridagi filtrlardan foydalanishni batafsilroq tushunish uchun misollar keltirish kerak.
Shuningdek qarang: Linux terminalida tez-tez ishlatiladigan buyruqlar
Foydalanish bo'yicha misollar
Endi tcpdump buyrug'i uchun tez-tez ishlatiladigan sintaktik parametrlar ko'rsatiladi. Ularning barchasini sanab bo'lmaydi, chunki ularning cheksiz sonlari bo'lishi mumkin.
Interfeyslar ro'yxatini ko'rish
Har bir foydalanuvchiga dastlab kuzatilishi mumkin bo'lgan barcha tarmoq interfeyslarining ro'yxatini tekshirish tavsiya etiladi. Yuqoridagi jadvaldan bilamizki, buning uchun siz variantni ishlatishingiz kerak -D, shuning uchun terminalda quyidagi buyruqni bajaring:
sudo tcpdump -D
Misol:
Ko'rib turganingizdek, misolda tcpdump buyrug'i yordamida ko'rilishi mumkin bo'lgan sakkizta interfeys mavjud. Maqolada quyidagi misollar keltirilgan ppp0Siz har qanday boshqa foydalanishingiz mumkin.
Oddiy tirbandlik
Agar bitta tarmoq interfeysini kuzatib borish kerak bo'lsa, siz ushbu imkoniyatdan foydalanib amalga oshirishingiz mumkin -i. Unga kirgandan keyin interfeys nomini kiritishni unutmang. Mana bunday buyruqqa misol:
sudo tcpdump -i ppp0
Iltimos, diqqat qiling: buyruqdan oldin siz "sudo" ni kiritishingiz kerak, chunki u superuser huquqlarini talab qiladi.
Misol:
Eslatma: "Terminal" ga Enter tugmachasini bosgandan so'ng, ushlangan paketlar doimiy ravishda ko'rsatiladi. Ularning oqimini to'xtatish uchun siz Ctrl + C tugmalar birikmasini bosishingiz kerak.
Agar siz buyruqni qo'shimcha parametrlarsiz va filtrlarsiz bajarsangiz, kuzatiladigan paketlarni namoyish qilish 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, akk 1118, g'alaba 6494, variantlar [nop, nop, TS val 257060077 ecr 697597623], uzunligi 594
Rang ta'kidlangan joy:
- ko'k - paketni qabul qilish vaqti;
- to'q sariq - protokol versiyasi;
- yashil - jo'natuvchining manzili;
- binafsha rang - qabul qiluvchining manzili;
- kulrang - tcp haqida qo'shimcha ma'lumot;
- qizil - paket hajmi (baytlarda ko'rsatilgan).
Ushbu sintaksis oynada aks ettirish qobiliyatiga ega. "Terminal" qo'shimcha imkoniyatlardan foydalanmasdan.
-V varianti bilan trafikni suratga olish
Jadvaldan ma'lum bo'lganidek, variant -v ma'lumotlar hajmini oshirishga imkon beradi. Bir misolni olaylik. Xuddi shu interfeysni tekshiring:
sudo tcpdump -v -i ppp0
Misol:
Bu erda siz chiqishda quyidagi chiziq paydo bo'lganligini ko'rishingiz mumkin:
IP (tos 0x0, ttl 58, id 30675, ofset 0, bayroqlar [DF], proto TCP (6), uzunligi 52
Rang ta'kidlangan joy:
- to'q sariq - protokol versiyasi;
- ko'k - protokolning ishlash muddati;
- yashil - maydon sarlavhasining uzunligi;
- binafsha rang - tcp paketining versiyasi;
- qizil - paket hajmi.
Shuningdek, buyruq sintaksisida siz variant yozishingiz mumkin -vv yoki -vvv, bu ekranda ko'rsatiladigan ma'lumotlar miqdorini yanada oshiradi.
Variantlar -w va -r
Parametrlar jadvalida barcha natijalarni alohida faylda saqlash imkoniyati qayd etilgan, shunda uni keyinroq ko'rishingiz mumkin. Variant bunga javobgardir. -w. Uni ishlatish juda oddiy, uni buyruqda ko'rsating va keyin kengaytma bilan kelajakdagi fayl nomini kiriting ".pcap". Bir misolni ko'rib chiqaylik:
sudo tcpdump -i ppp0 -w file.pcap
Misol:
E'tibor bering: jurnalga fayllarni yozishda "Terminal" ekranida hech qanday matn ko'rinmaydi.
Yozib olingan natijani ko'rishni xohlasangiz, siz variantni ishlatishingiz kerak -r, shundan keyin ilgari yozilgan fayl nomini yozing. Boshqa variantlar va filtrlarsiz ishlatiladi:
sudo tcpdump -r file.pcap
Misol:
Ushbu ikkala variant ham keyinchalik tahlil qilish uchun katta hajmdagi matnni saqlash kerak bo'lgan holatlarda juda yaxshi.
IP filtrlash
Buni biz filtr jadvalidan bilamiz dst konsol ekranida faqat buyruq sintaksisida ko'rsatilgan manzil tomonidan qabul qilingan paketlarni ko'rsatishga imkon beradi. Shunday qilib, sizning kompyuteringiz tomonidan qabul qilingan paketlarni ko'rish juda qulaydir. Buning uchun jamoa faqat uning IP-manzilini ko'rsatishi kerak:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Misol:
Ko'rib turganingizdek, bundan tashqari dst, shuningdek, jamoada filtrni ro'yxatdan o'tkazdik ip. Boshqacha qilib aytganda, biz kompyuterga paketlarni tanlashda boshqa parametrlarga emas, balki ularning IP-manzillariga e'tibor berishini aytdik.
IP orqali siz chiquvchi paketlarni ham filtrlashingiz mumkin. Biz yana IP-ni misolda beramiz. Ya'ni, endi biz qaysi paketlar kompyuterimizdan boshqa manzillarga yuborilishini kuzatamiz. Buning uchun quyidagi buyruqni bajaring:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Misol:
Ko'rib turganingizdek, buyruq sintaksisida filtrni o'zgartirdik dst yoqilgan src, shu bilan mashinadan IP orqali yuboruvchini qidirishni aytadi.
HOST filtrlash
Buyruqdagi IP bilan taqqoslash orqali biz filtrni belgilashimiz mumkin mezbonpaketlarni qiziqish uyg'unligi bilan filtrlash. Ya'ni, sintaksisda, jo'natuvchi / qabul qiluvchining IP-manzili o'rniga, siz uning egasini ko'rsatishingiz kerak. Bu quyidagicha:
sudo tcpdump -i ppp0 dst xost google-public-dns-a.google.com
Misol:
Rasmda siz buni ko'rishingiz mumkin "Terminal" faqat bizning IP-dan google.com xostiga yuborilgan paketlar ko'rsatiladi. Siz tushunganingizdek, google-ning xosti o'rniga boshqa har qanday narsani kiritishingiz mumkin.
IP-filtrlashda bo'lgani kabi, sintaksis dst bilan almashtirilishi mumkin srcKompyuteringizga yuborilgan paketlarni ko'rish uchun:
sudo tcpdump -i ppp0 src xost google-public-dns-a.google.com
Eslatma: host filtri dst yoki src-dan keyin bo'lishi kerak, aks holda buyruq xato qiladi. IP bo'yicha filtrlash holatida, aksincha, dst va src ip filtri oldida bo'ladi.
Filtrni va / yoki filtrni qo'llash
Agar siz birdaniga bitta buyruqda bir nechta filtrlardan foydalanishingiz kerak bo'lsa, unda siz filtrni qo'llashingiz kerak va yoki yoki (vaziyatga bog'liq). Sintaksisdagi filtrlarni aniqlab, ularni ushbu operatorlar bilan ajratib, siz ularni bitta vazifani bajarishga majbur qilasiz. Masalan, u quyidagicha ko'rinadi:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 yoki ip src 95.47.144.254
Misol:
Buyruq sintaksisi biz namoyish qilishni istagan narsani ko'rsatadi "Terminal" 95.47.144.254 manziliga yuborilgan barcha paketlar va xuddi shu manzilda olingan paketlar. Ushbu iborada ba'zi o'zgaruvchilarni ham o'zgartirishingiz mumkin. Masalan, IP-ning o'rniga HOST-ni belgilang yoki manzillarni to'g'ridan-to'g'ri o'zgartiring.
Port va portrange filtri
Filtrlash port aniq portga ega paketlar haqida ma'lumot olish kerak bo'lgan holatlarda juda yaxshi. Shunday qilib, siz faqat javoblarni yoki DNS so'rovlarini ko'rishingiz kerak bo'lsa, 53-portni ko'rsatishingiz kerak:
sudo tcpdump -vv -i ppp0-port 53
Misol:
Agar siz http paketlarini ko'rishni xohlasangiz, 80-portni kiritishingiz kerak:
sudo tcpdump -vv -i ppp0-port 80
Misol:
Boshqa narsalar qatori, darhol portlar oralig'ini kuzatish mumkin. Buning uchun filtr qo'llaniladi. portret qilmoq:
sudo tcpdump 50-80 ni tashkil qiladi
Ko'rib turganingizdek, filtr bilan birgalikda portret qilmoq majburiy bo'lmagan variantlar talab qilinadi. Faqat diapazonni sozlang.
Protokolni filtrlash
Bundan tashqari, siz har qanday protokolga mos keladigan trafikni namoyish qilishingiz mumkin. Buning uchun ushbu protokol nomini filtr sifatida ishlating. Bir misolni ko'rib chiqaylik udp:
sudo tcpdump -vvv -i ppp0 udp
Misol:
Rasmda ko'rinib turibdiki, in buyrug'ini bajargandan so'ng "Terminal" faqat protokoli bo'lgan paketlar ko'rsatildi udp. Shunga ko'ra, siz boshqalar tomonidan filtrlashingiz mumkin, masalan, arp:
sudo tcpdump -vvv -i ppp0 arp
yoki tcp:
sudo tcpdump -vvv -i ppp0 tcp
Sof filtr
Operator aniq paketlarni tarmoq belgilariga qarab filtrlashga yordam beradi. Undan foydalanish qolganlari kabi oddiy - sintaksisda atributni ko'rsatish kerak aniq, keyin tarmoq manzilini kiriting. Mana bunday buyruqqa misol:
sudo tcpdump -i ppp0 aniq 192.168.1.1
Misol:
Paket hajmini filtrlash
Biz yana ikkita qiziqarli filtrni ko'rib chiqmadik: kamroq va katta. Filtrlar bilan jadvaldan bilamizki, ular ma'lumot paketlarini ko'proq chiqarishga xizmat qiladi (kamroq) yoki undan kam (katta) atributni kiritgandan keyin ko'rsatilgan hajm.
Aytaylik, biz faqat 50 bitli belgidan oshmaydigan paketlarni kuzatmoqchimiz, keyin buyruq quyidagicha bo'ladi:
sudo tcpdump -i ppp0 50 dan kam
Misol:
Endi ko'raylik "Terminal" 50 bitdan katta paketlar:
sudo tcpdump -i ppp0 katta 50
Misol:
Ko'rib turganingizdek, ular xuddi shunday qo'llaniladi, farq faqat filtr nomida bo'ladi.
Xulosa
Maqolaning oxirida biz jamoa degan xulosaga kelishimiz mumkin tcpdump - Bu siz Internet orqali uzatiladigan har qanday ma'lumot paketini kuzatishingiz mumkin bo'lgan ajoyib vositadir. Buning uchun buyruqni o'zi ichiga kiritishning o'zi etarli emas "Terminal". Istalgan natija faqat barcha turdagi variantlar va filtrlardan, shuningdek ularning kombinatsiyalaridan foydalansangiz bo'ladi.