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
۲ – آدرس و پورت مبدا و مقصد :
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
