وایرشارک (Wireshark) در حقیقت یکی از ابزارهای آنالیز شبکه میباشد که رایگان و به صورت opensource ارایه گردیده است و با اکثر توزیع های لینوکس موجود کار میکند. همچنین wireshark روی انواع سیستم عامل های شبیه به unix مانند Mac OS ،BSD ،Solaris و سیستم عامل Windows راه اندازی میشود.
wireshark بسیار شبیه به ابزار tcpdump میباشد با این تفاوت که وایرشارک محیط گرافیکی به علاوه ی گزینه های بسیار خوبی برای filtering و sorting را شامل میشود. در این پست wireshark را با استفاده از دستور YUM در سیستم عامل RHEL 6.3 نصب میکنیم.
ابزار مورد نیاز برای wireshark
شما قبل از نصب این ابزار باید پکیچ های زیر را در سیستم خود نصب کنید:
GTK+ :
یک ابزار Multi-platform برای ایجاد interface گرافیکی
Glib :
یک ابزار Cross-Platform برای اپلیکیشن های نوشته شده به زبان C
Libpcap :
برای capture کردن پکت User-level و فراهم کردن یک فریم ورک portable برای مانیتور شبکه
GCC :
ابزاری برای کامپایل اپلیکیشن های C و ++C تحت GNU Compiler Collection
دستور العمل زیر نصب wireshark روی سیستم عامل های RHEL 6.3/6.2/6.1/6/5.8 - CentOS 6.3/6.2/6.1/6/5.8 و Fedora 17,16,15,14,13,12 با استفاده از دستور YUM میباشد.
با استفاده از دستور yum تمامی پکیج های پیش نیاز بالا به صورت اتوماتیک نصب خواهد شد و این است زیبایی دستور yum :)
نصب wireshark در RHEL/CentOS 6/5 and Fedora 17-12 :
مرحله 1 : نصب wireshark با استفاده از yum
برای نصب پکیج wireshark شما نیاز دارید دسترسی root داشته باشید. مراحل زیر طریق نصب را به شما نشان میدهد:
مرحله 2 : نصب گرافیک wireshark-gnome با استفاده از yum
مرحله 3 : راه اندازی وایرشارک
برای start کردن wireshark دستور زیر را اجرا کنید :
مرحله 4 : تنظیمات wireshark و کاربرد آن
به محض اینکه وایرشارک نصب شد آن را اجرا کنید و شروع به کپچر بنمایید. یک interface دلخواه را انتخاب و سپس کلید start را فشار دهید. شما پنجره pop-up شبیه به تصویر زیر خواهید دید:
همانطور که در زیر مشاهده میکنید 3 بخش بالایی میانی و پایینی موجود است :
بخش بالایی :
در بخش بالایی از پنجره wireshark که مربوط به یک پکت مجزا در شبکه میباشد که میتوانید اطلاعات بیشتری با کلیک روی آن ردیف به دست بیاورید و اطلاعات مربوطه روی دو پنجره بعدی به نمایش در میاید.
بخش میانی :
بخش میانی شامل جزییات پکت انتخاب شده در frame بالایی میباشد.
بخش پایانی :
پنجره پایین نمایشگر محتویات پکت به قالب hexadecimal و ASCII میباشد.
مرحله 5 : فیلتر کردن از طریق ip address مبدا (source)
همانطور که در دستور زیر مشاهده میکنید میتوانید پکت ها را تنها از طریق source ip در wireshark فیلتر کنید:
مرحله 6 : فیلتر از طریق ip address مقصد (destination)
همانطور که مشاهده میکنید میتوان نمایش پکت در wireshark را به تنها پکت هایی که destination ip آنها مورد نظر است filter کرد :
مرحله 7 : فیلتر پکت ها در وایرشارک از طریق protocol
میتوان نمایش پکت ها در وایرشارک را به تنها آن دسته از پکت هایی که پکت http هست فیلتر نمود :
مرحله 8 : فیلتر از طریق عبارت شرطی (OR) که دو عدد pipe "||" نشانگر "یا" میباشد
میتوان پکت ها را با عبارات شرطی که مثلا با یک شرطی match باشند و یا با شرط دیگر هم فیلتر کرد :
مرحله 9 : فیلتر از طریق عبارت شرطی (AND) که دو عدد "&&" نمایشگر شرط "and" میباشد
میتوان نمایش پکت ها در wireshark را به پکت هایی که tcp باشند و همچنین source ip آنها 192.168.0.2 باشد فیلتر کرد :
مرحله 10 : فیلتر پکت ها با استفاده از شماره port
مثلا فیلتر کردن شماره پورت 80 برای tcp
ترفند :
علاوه بر مثال های بالا شما میتوانید روی دکمه "Expression ..." کلیک کنید تا تمامی فیلتر ها را ببینید. همچنین شما میتوانید اطلاعات capture شده را برای انالیزهای بعدی ذخیره کنید.
همچنین توصیه میشود مطالعه کنید :
12 دستور tcpdump برای شنود یا مانیتورینگ پکت ها در شبکه در لینوکس
دستور netstat برای مدیریت شبکه در لینوکس
این مقاله برای آن دسته از افرادی که قصد در debug و analyze پکت های ورودی و خروجی interface شبکه شان دارند مناسب است. شما هم میتوانید این نرم افزار را امتحان کرده و مشاهدات خودتون رو به اشتراک بگذارید.
wireshark بسیار شبیه به ابزار tcpdump میباشد با این تفاوت که وایرشارک محیط گرافیکی به علاوه ی گزینه های بسیار خوبی برای filtering و sorting را شامل میشود. در این پست wireshark را با استفاده از دستور YUM در سیستم عامل RHEL 6.3 نصب میکنیم.
ابزار مورد نیاز برای wireshark
شما قبل از نصب این ابزار باید پکیچ های زیر را در سیستم خود نصب کنید:
GTK+ :
یک ابزار Multi-platform برای ایجاد interface گرافیکی
Glib :
یک ابزار Cross-Platform برای اپلیکیشن های نوشته شده به زبان C
Libpcap :
برای capture کردن پکت User-level و فراهم کردن یک فریم ورک portable برای مانیتور شبکه
GCC :
ابزاری برای کامپایل اپلیکیشن های C و ++C تحت GNU Compiler Collection
دستور العمل زیر نصب wireshark روی سیستم عامل های RHEL 6.3/6.2/6.1/6/5.8 - CentOS 6.3/6.2/6.1/6/5.8 و Fedora 17,16,15,14,13,12 با استفاده از دستور YUM میباشد.
با استفاده از دستور yum تمامی پکیج های پیش نیاز بالا به صورت اتوماتیک نصب خواهد شد و این است زیبایی دستور yum :)
نصب wireshark در RHEL/CentOS 6/5 and Fedora 17-12 :
مرحله 1 : نصب wireshark با استفاده از yum
برای نصب پکیج wireshark شما نیاز دارید دسترسی root داشته باشید. مراحل زیر طریق نصب را به شما نشان میدهد:
کد PHP:
[root@linux-zone ~]#yum -y install wireshark
مرحله 2 : نصب گرافیک wireshark-gnome با استفاده از yum
کد PHP:
[root@linux-zone ~]#yum -y install wireshark-gnome
مرحله 3 : راه اندازی وایرشارک
برای start کردن wireshark دستور زیر را اجرا کنید :
کد PHP:
[root@linux-zone ~]#wireshark
مرحله 4 : تنظیمات wireshark و کاربرد آن
به محض اینکه وایرشارک نصب شد آن را اجرا کنید و شروع به کپچر بنمایید. یک interface دلخواه را انتخاب و سپس کلید start را فشار دهید. شما پنجره pop-up شبیه به تصویر زیر خواهید دید:
همانطور که در زیر مشاهده میکنید 3 بخش بالایی میانی و پایینی موجود است :
بخش بالایی :
در بخش بالایی از پنجره wireshark که مربوط به یک پکت مجزا در شبکه میباشد که میتوانید اطلاعات بیشتری با کلیک روی آن ردیف به دست بیاورید و اطلاعات مربوطه روی دو پنجره بعدی به نمایش در میاید.
بخش میانی :
بخش میانی شامل جزییات پکت انتخاب شده در frame بالایی میباشد.
بخش پایانی :
پنجره پایین نمایشگر محتویات پکت به قالب hexadecimal و ASCII میباشد.
مرحله 5 : فیلتر کردن از طریق ip address مبدا (source)
همانطور که در دستور زیر مشاهده میکنید میتوانید پکت ها را تنها از طریق source ip در wireshark فیلتر کنید:
کد PHP:
ip.src==192.168.0.2
مرحله 6 : فیلتر از طریق ip address مقصد (destination)
همانطور که مشاهده میکنید میتوان نمایش پکت در wireshark را به تنها پکت هایی که destination ip آنها مورد نظر است filter کرد :
کد PHP:
ip.dst==69.171.228.70
مرحله 7 : فیلتر پکت ها در وایرشارک از طریق protocol
میتوان نمایش پکت ها در وایرشارک را به تنها آن دسته از پکت هایی که پکت http هست فیلتر نمود :
کد PHP:
http
مرحله 8 : فیلتر از طریق عبارت شرطی (OR) که دو عدد pipe "||" نشانگر "یا" میباشد
میتوان پکت ها را با عبارات شرطی که مثلا با یک شرطی match باشند و یا با شرط دیگر هم فیلتر کرد :
کد PHP:
http||arp
مرحله 9 : فیلتر از طریق عبارت شرطی (AND) که دو عدد "&&" نمایشگر شرط "and" میباشد
میتوان نمایش پکت ها در wireshark را به پکت هایی که tcp باشند و همچنین source ip آنها 192.168.0.2 باشد فیلتر کرد :
کد PHP:
tcp&&ip.src==192.168.0.2
مرحله 10 : فیلتر پکت ها با استفاده از شماره port
مثلا فیلتر کردن شماره پورت 80 برای tcp
کد PHP:
tcp.port eq 80
ترفند :
علاوه بر مثال های بالا شما میتوانید روی دکمه "Expression ..." کلیک کنید تا تمامی فیلتر ها را ببینید. همچنین شما میتوانید اطلاعات capture شده را برای انالیزهای بعدی ذخیره کنید.
همچنین توصیه میشود مطالعه کنید :
12 دستور tcpdump برای شنود یا مانیتورینگ پکت ها در شبکه در لینوکس
دستور netstat برای مدیریت شبکه در لینوکس
این مقاله برای آن دسته از افرادی که قصد در debug و analyze پکت های ورودی و خروجی interface شبکه شان دارند مناسب است. شما هم میتوانید این نرم افزار را امتحان کرده و مشاهدات خودتون رو به اشتراک بگذارید.