تبليغاتX
Notes On Computer Networks - TCPDUMP

TCPDump  نرم افزاری برای آنالیز ترافیک شبکه است که می توانید کد منبع آن را از tcpdump.org  دریافت نمایید . اگر چه توصیه می کنم از بسته های rpm  یا deb  برای نصب آن استفاده کنید . برای نصب TCPDump  به پکیج پیشنیاز libpcap نیاز است که در خود وبسایت TCPDump  موجود است . libpcap  را نیز با سه دستور همیشگی ./configure  و make  و make install  به راحتی کامپایل و نصب کنید .

 libpcap  نیزبه بسته های Flex و bison  نیاز دارد که روند نصب کاملا مشابهی دارند .

( پیشنهاد می کنم در هنگام نصب لینوکس این بسته ها را انتخاب کنبد )

TCPDump می تواند جهت ضبط و مانیتور کردن تعداد یا همه پکت های عبوری از یک اینترفیس استفاده شود . این پکت ها را با استفاده از عبارات منطقی و پارامتر ها از جمله آی پی یا آدرس mac  مبدا و مقصد . نوع پروتکل ( مانند IP  یا  ethernet ) و پورت TCP  یا پورت UDP می توان محدود کرد .( خوب طبق معمول هر آموزشی فکر کنم نیاز نباشه بگم که تعداد این پارامترها آنقدر زیاده که در این آموزش مجالی برای پرداختن به همه آنها نیست . ولی خوب کار از محکم کاری عیب نمی کنه )

خوب شروع کنید :

 

خروجی tcpdump  می تواند علاوه بر صفحه نمایش در فایل نیز ذخیره شود . این قابلیت امکان می دهد تا با اعمال پارامتر های مناسب و ضبط پکت های عبوری مورد نظر ( حتی تا 98% ) از اینترفیس در فایل به بررسی آنها بپردازید .

فرمت خروجی این دستوربرای پروتوکل های UDP  و TCP به صورت زیر است :

 


۱ – فرمت خروجی  دستور  برای datagram  در پروتوکل UDP  :

15:22:41.400299 linux-notes.vru.ac.ir.1052 > 224.2.156.220.57392: udp 110

برچسب زمان (  Timestamp) : 15:22:41.400299

آدرس مبدا : linux-notes.vru.ac.ir

پورت مبدا : 1052

پورت مقصد :57392

پروتوکل : udp

اندازه ) size ) : 110


۲ – فرمت خروجی دستور برای datagram  در پروتوکل TCP  : 

16:23:01.079553 linux-notes.vru.ac.ir.33635 > vrux.vru.ac.ir.32772: P 12765:12925(160) ack 19829 win 24820 (DF)

 

برچسب زمان : 16:23:01.079553

 آدرس مبدا : linux-notes.vru.ac.ir

آدرس مقصد : vrux.vru.ac.ir

پورت مبدا : 33635

پورت مقصد : 32772

فلگ PUSH  : با P  مقداردهی شده است .

Squence number ( همچنین بایت شروع ( : 12765

12925 : محتوی بایت ها با squence number  متوالی از 12765  تا 12925  البته بجز خود 12925

 : (160)تعداد بایت های داده کاربر در datagram  

و در آخر جزئیات acknowledgements شامل اندازه پنجره windows size )  )  و هدر فلگ ack


( اگر بر برخی از اصطلاحات تسلط ندارید زیاد نگران نباشید بندرت به تمامی این اطلاعات و مفاهیم نیاز پیدا خواهید کرد. در صورت علاقه مندی به این مفاهیم ساختار پکت های Tcp و udp  را می توانید به راحتی با جستجو بیابید .یا از کتاب های فارسی موجود از جمله شبکه های کامپیوتری و انتقال داده از احسان ملکیان یاکتاب جامع شبکه های کامپیوتری از تننباوم استفاده کنید  . )
اگر جزئیاتی بیشتر از پکت های عبوری نیاز دارید از پارامتر های –v  ، -vv  و –vvv  استفاده کنید .
همانطور که گفتم به ندرت به تمامی این اطلاعات نیاز پیدا خواهید کرد . در مراحل بعدی چگونگی اختصاصی کردن پکت های ضبط شده با استفاده از پارامتر ها را توضیح خواهم داد . )

۱ – TimeStamp  :

برای حذف پرچسب زمان از ابتدای پکت از پارامتر –t  استفاده کنید .

خروجی :  linux-notes.vru.ac.ir.1052 > 224.2.156.220.57392: udp 597

- tttt  : زمان بین رسیدن یک پکت و پکت بعدی را به ثانیه چاپ می کند .

358020 linux-notes.vru.ac.ir.1052 > 224.2.156.220.57392: udp 586
328704 linux-notes.vru.ac.ir.1052 > 224.2.156.220.57392: udp 893
391361 linux-notes.vru.ac.ir.1052 > 224.2.156.220.57392: udp 491

۲ – آدرس و پورت مبدا و مقصد :

 مثال ۱ : ضبط کردن تمامی ترافیکی که مبدا و مقصد آنها کامپیوتری به نام samba  است : 

tcpdump host samba

 

مثال ۲  : ضبط کردن ترافیک عبوری با پروتوکل tcp  یا udp  با پورت مبدا یا مقصد 53 : 

tcpdump port 53

 

مثال ۳ : ضبط کردن ترافیک عبوری با آدرس مبدا کامپیوتری به نام samba   

tcpdump src host samba

 

مثال ۴ : ضبط کردن ترافیک عبوری با پورت مقصد 53  ( برای هر دو پروتوکل udp  و tcp  ) :  

tcpdump dst port 53

 

مثال ۵ : ضبط کردن ترافیک عبوری از نوع tcp  با آدرس مبدا کامپیوتری به نام samba   

tcpdump tcp src host samba

 

مثال ۶ : ضبط کردن ترافیک عبوری با پورت مقصد شماره 53 از پروتوکل udp  :

tcpdump udp dst port 53

تعداد این پارامترها زیاد است و بهترین منبع صفحه man  خود tcpdump  است .  

۳ – عملگر های منطقی )  logical operators  ) :

برای اختصاصی کردن هر چه بیشتر خروجی  دستور tcpdump  می توان از سه عملگر منطقی AND  ، OR  و NOT  بهره برد .

مثال ۱ : ضبط کردن ترافیک عبوری با آدرس مبدا کامپیوتری به نام samba  و با پورت مقصد 53 ( از نوع پروتوکل udp  ) :

tcpdump src host samba and udp dst port 53

مثال 2 : ضبط کردن ترافیک با آدرس مقصد 224.2.127.254  یا آدرس مقصد شبکه ای به مسک 239.255.255.255 :

tcpdump dst 224.2.127.254 or dst 239.255.255.255

مثال 3 : ضبط کردن ترافیک با آدرس مقصد  224.2.127.254 که آدرس مبدا آن 139.133.204.110 نباشد :

tcpdump dst 224.2.127.254 and not src 139.133.204.110


ثبت خروجی در فایل  :

 

برای نوشتن خروجی دستور tcpdump  در فایل از پارامتر - w  استفاده می شود .  

tcpdump -w  

می توان از پارامتر های مختلف ذکر شده در قسمت های قبلی برای فیلتر کردن خروجی و سپس ثبت آن در فایل بهره برد . 

مثال :

tcpdump -w dns-file udp dst port 53

برای خواندن اطلاعات از یک فایل نیز می توان از پارامتر  - r  استفاده کرد :

tcpdump -r

مثال : می توان از این پارامتر برای خواندن نوع خاصی ترافیک از فایل استفاده کرد :

tcpdump -r dns-file src host samba and udp

این دستور هر پکت udp  را که توسط کامپیوتری با نام samba  ارسال شده است را از فایل dns-file  می خواند .

خوب این فقط اصول کلی استفاده Tcpdump  است . امید وارم بتوانم کار کردن حرفه ای تر با این نرم افزار دوست داشتنی را در پست های بعدی برا تون بنویسم . 


Omid dot mohajerani at gmail dot com

+ نوشته شده توسط امید مهاجرانی در چهارشنبه بیست و سوم خرداد 1386 و ساعت 22:25 |