نحوه استفاده از Wireshark برای تحلیل ترافیک شبکه‌های محلی بی‌سیم

از آزمایشگاه آپا
پرش به: ناوبری, جستجو

Wireshark به دلیل قابلیت‌هایی چون استفاده در شبکه‌های سیمی و بی‌سیم، واسط گرافیکی خیلی قوی و غیره مورد توجه زیاد قرار گرفته و به عنوان محبوب‌ترین ابزار در زمینه‌ی تحلیل بسته‌های شبکه شناخته شده است. در این مقاله به نحوه‌ی نصب و روش کار با واسط گرافیکی آن می‌پردازیم.

محتویات

مقدمه

ابزار Wireshark یک استراق سمع کننده و تحلیل‌گر بسته‌های شبکه است. یک تحلیل گر بسته های شبکه تلاش می کند تا بسته ها را به دست آورده و جرئیات داده های آن ها را تا حد امکان نمایش دهد. این ابزار یکی از بهترین تحلیل‌گرهای بسته با کد منبع باز است که امروزه وجود دارد و در سطح گسترده ای (هم در شبکه های سیمی و هم در شبکه-های بی سیم) از آن استفاده می شود. نسخه ی اصلی این ابزار با نام Ethereal وجود داشت که از سال 2006 به بعد این پروژه به Wireshark تغییر نام یافت. Wireshark بسیار شبیه ابزار tcpdump است با این تفاوت که ابزار Wireshark واسط گرافیکی بسیار قوی داشته و اطلاعات خیلی بیشتری در زمینه‌ی مرتب‌سازی و فیلتر کردن بسته ها در اختیار کاربر قرار می-دهد.

نصب

مراحل نصب ابزار Wireshark در سیستم عامل لینوکس در زیر آمده است: تذکر: فایل منبع ابزار Wireshark از سایت آن (http://www.wireshark.org) به صورت رایگان قابل دانلود است.

  • با استفاده از فرمان زیر فایل منبع را از حالت فشرده باز کنید.
  • tar zxvf wireshark-1.2.0-tar.gz
  • مسیر خود را به پوشه ی منبع wireshark تغییر دهید.
  • فایل منبع خود را پیکربندی کنید. این کار با استفاده از فرمان زیر انجام می گیرد:
  • با فرمان زیر فایل های منبع را به صورت باینری درآورید.
  • نرم افزار را در مقصد نهایی نصب کنید. این کار با فرمان زیر انجام می پذیرد:
                                                                                                                        ./configure
  • با فرمان زیر فایل های منبع را به صورت باینری درآورید.
                                                                                                                               make
  • پس از نصب Wireshark می توان آن را با وارد کردن فرمان wireshark از طریق خط فرمان اجرا کرد.
                                                                                                                       make install

واسط کاربر

پس از اجرای Wireshark پنجره ی اصلی واسط کاربر آن نمایان می شود. این پنجره در شکل نمایش داده شده است. صفحه ی اصلی Wireshark شامل قسمت های زیر است:

  • Menu : برای شروع فعالیت ها استفاده می شود.
  • Main Toolbar : امکان دسترسی سریع به آیتم هایی از منوها که بیشتر استفاده می شوند را فراهم می کند.
  • Filter Toolbar : برای فیلتر کردن بسته های ضبط شده ی نشان داده شده در قسمت لیست بسته ها استفاده می شود.
  • Packet List Pane : بسته های ضبط شده را به صورت خلاصه نشان می-دهد. با کلیک کردن بر روی هر بسته در این قسمت می توان جزئیات آن را در دو قسمت بعد مشاهده کرد.
  • Packet Details Pane : بسته ی انتخاب شده از قسمت قبل را با جزئیات بیشتر نشان می دهد.
  • Packet Bytes Pane : داده ی بسته ی انتخاب شده در قسمت لیست بسته-ها را نشان می دهد و فیلدهای انتخاب شده در قسمت جزئیات بسته را به صورت پررنگ تر نمایش می دهد.
  • Statusbar : جزئیات اطلاعات در مورد وضعیت برنامه ی فعلی و داده های ضبط شده را نشان می دهد.

سه قسمت اصلی این واسط در ادامه با جزئیات بیشتر آمده است.

Packet List

تمام بسته های موجود در فایل بسته های ضبط شده ی فعلی را نشان می-دهد. جزئیات این قسمت در شکل 2 نمایش داده شده است. هر خط در لیست بسته ها یکی از بسته های موجود در فایل بسته های ضبط شده را نشان می دهد. اگر یک خط از این قسمت را انتخاب کنیم، جزئیات بیشتر در قسمت های Packet Details و Packet Bytes نشان داده می-شود.


ستون های پیش فرضی که در این قسمت نشان داده می شود به شرح زیر است:

  • No: تعداد بسته های موجود در فایل بسته های ضبط شده.
  • Time: مهر زمانی هر بسته. فرمت نمایش این برچسب زمان را می توان تغییر داد.
  • Source: آدرس منبع بسته.
  • Destination: آدرس مقصد بسته.
  • Protocol: نام پروتکل به صورت مخفف. چون پروتکل های سطح بالاتر اطلاعات پروتکل های سطح پایین تر را در بر می گیرند، در این ستون تنها نام سطح بالاترین پروتکل می آید.
  • Info: اطلاعات اضافی در مورد محتوای بسته.

Packet Details

این بخش (شکل 3) جزئیات بسته ی انتخاب شده در قسمت لیست بسته ها را نمایش می دهد.


شکل 3: قسمت Packet Details از صفحه ی اصلی پروتکل ها و فیلدهای آن ها به ازای بسته ی انتخاب شده در قسمت لیست بسته ها در این قسمت نشان داده می شوند. این نمایش در یک ساختار درختی انجام می شود.

  • Generated fields: Wireshark خود نیز فیلدهای پروتکلی اضافه ای را تولید خواهد کرد که این فیلدها داخل براکت قرار می گیرند. به عنوان مثال Wireshark یک تحلیل sequence/acknowledge از هر جریان TCP انجام می دهد که در فیلدهای [SEQ/ACK analysis] از پروتکل TCP نشان داده می شود.
  • Links: اگر Wireshark رابطه ای بین بسته ی فعلی و بسته ی دیگری در فایل بسته های ضبط شده پیدا کند، یک لینک به آن بسته ایجاد می کند. لینک ها با رنگ آبی نشان داده می شوند که با کلیک بر روی آن ها Wireshark به بسته ی مورد نظر می‌رود.

Packet Bytes

این بخش (شکل 4) داده ی بسته ی انتخاب شده در قسمت لیست بسته ها را در مبنای 16 نشان می دهد.


شکل 4: قسمت Packet Bytes از صفحه ی اصلی سمت چپ آفست بسته، قسمت وسط داده در مبنای 16 و سمت راست کاراکترهای اسکی را نمایش می دهد.

ضبط کردن بسته‌ها

ضبط کردن بسته‌های دلخواه، یکی از مهم ترین خصوصیات Wireshark است. موتور ضبط کننده در این ابزار دارای خصوصیات زیر است:

  • ضبط بسته از انواع مختلف سخت افزارهای شبکه.
  • امکان توقف ضبط با معیارهایی مانند: مقدار داده ی ضبط شده، زمان ضبط، تعداد بسته های ضبط شده.
  • به طور همزمان می تواند بسته های رمزگشایی شده را در حین انجام عملیات ضبط نشان دهد.
  • فیلتر کردن بسته ها و کاهش مقدار داده ی ضبط شده.
  • ضبط کردن بسته ها در چندین فایل (وقتی عملیات ضبط به مدت زیادی طول بکشد).

با انتخاب گزینه ی Interfaces از منوی Capture، واسط ضبط کردن بسته ها باز می شود. این واسط (در سیستم عامل لینوکس) در شکل 5 نمایش داده شده است.


واسط ضبط کردن بسته ها شامل قسمت های زیر است:

  • Device: نام وسیله ی واسط.
  • Description: توصیف واسط که توسط سیستم عامل ایجاد می شود. البته کاربر می تواند به دلخواه این عبارت را تغییر دهد.
  • IP: اولین آدرس IP که Wireshark بتواند از این واسط بگیرد. اگر Wireshark نتواند هیچ آدرس IP بگیرد (سرویس‌دهنده ی DHCP موجود نباشد)، عبارت unknown در این ستون نشان داده می شود. اگر بیشتر از یک آدرس IP نیز گرفته شود فقط آدرس اول نمایش داده می شود.
  • Packets: تعداد بسته های ضبط شده از این واسط.
  • Packets/s: تعداد بسته های ضبط شده در آخرین ثانیه.
  • Stop: اجرای ضبط فعلی را متوقف می کند.
  • Start: عملیات ضبط در این واسط را فوراً آغاز می کند (با استفاده از تنظیمات آخرین عملیات ضبط انجام شده).
  • Options: پنجره ی Capture Options را باز می کند. این پنجره در شکل 6 نمایش داده شده است.
  • Help: صفحه ی help را نمایش می دهد.
  • Close: پنجره را می بندد.



در حین اجرای عملیات ضبط بسته ها پنجره ی Capture Info (شکل 7) به کاربر نمایش داده می شود.




این پنجره کاربر را از تعداد بسته های ضبط شده، زمان گذشته شده از آغاز ضبط بسته ها و غیره مطلع می کند.

فیلتر کردن بسته‌ها

عملیات فیلتر کردن بسته ها در Wireshark به دو صورت قابل انجام است: یکی در هنگام انجام عملیات ضبط بسته‌ها و دیگری در هنگام مشاهده‌ی بسته‌ها (پس از اتمام عملیات ضبط).

فیلتر کردن در هنگام ضبط بسته‌ها

به این منظور باید عبارت فیلتر را در فیلد Filter از پنجره ی Capture Options (نمایش داده شده در شکل 6) وارد کرد. یک فیلتر ضبط کننده به شکل مجموعه ای از عبارات اولیه که با عملگرهای الحاقی (and یا or) به هم متصل شده اند، می باشد. به صورت اختیاری می توان از عملگر not در ابتدای عبارات اولیه استفاده کرد. شکل کلی یک فیلتر ضبط کننده به صورت زیر است: [not] primitive [and|or [not] primitive ...] مثالی از یک فیلتر ضبط کننده به صورت زیر می تواند باشد: tcp port 23 and host 10.0.0.5 این مثال ترافیک telnet به/از میزبان 10.0.0.5 را ضبط می کند. مثال دیگری که در ادامه آمده است نشان می دهد که چگونه همه ی ترافیک telnet به جز بسته هایی که از میزبان 10.0.0.5 می آیند را ضبط کنیم. tcp port 23 and not src host 10.0.0.5

فیلتر کردن در هنگام نمایش بسته‌ها

فیلتر کردن در هنگام نمایش بسته ها به ما این امکان را می دهد که روی بسته های مورد نظر خود متمرکز شویم و بقیه ی بسته ها غیر از بسته های مورد نظر از دید ما پنهان می شوند. در این نوع فیلتر کردن امکان انتخاب بسته ها به وسیله ی معیارهای زیر وجود دارد:

  • پروتکل
  • وجود یک فیلد خاص در بسته
  • مقدار فیلدها
  • مقایسه ی بین فیلدها
  • و ...

به عنوان مثال برای انتخاب بسته ها بر مبنای نوع پروتکل، به سادگی می توان نام پروتکل مورد نظر را در قسمت Filter از نوارابزار فیلتر در پنجره ی اصلی Wireshark وارد کرد و پس از فشردن کلید Enter عملیات فیلتر کردن بسته ها بر روی آن پروتکل خاص انجام می شود. شکل 8 مثالی از فیلتر کردن بسته ها بر روی پروتکل tcp را نمایش می دهد. همان گونه که در شکل مشاهده می شود تعداد بسته ها تغییری نکرده و اولین بسته از شماره ی 11 شروع می شود (بسته های 10-1 پنهان شده اند). نکته: زمانی که از فیلتر کردن در هنگام نمایش بسته ها استفاده می کنیم، همه ی بسته ها در فایل بسته های ضبط شده باقی می مانند. این نوع فیلتر کردن فقط نمایش بسته های ضبط شده را تغییر می دهد نه محتوای فایل را.



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

  • Summary: خلاصه ای در مورد فایل بسته های ضبط شده.
  • Protocol Hierarchy: ساختار سلسله مراتبی پروتکل ها در بسته های ضبط شده.
  • Conversations: مانند ترافیک بین آدرس های IP خاص.
  • Endpoints: مانند ترافیک به/از یک آدرس IP خاص.
  • IO Graphs: نمایش تعداد بسته ها (یا مقادیری از این قبیل) در واحد زمان.
  • Service Response Time: زمان پاسخگویی سرویس بین درخواست و پاسخ بعضی از پروتکل ها.
  • و ...

WLAN Traffic Statistics

یکی از گزینه های موجود در منوی Statistics از صفحه ی اصلی Wireshark، گزینه ی WLAN Traffic Statistics است. در این قسمت اطلاعات آماری ترافیک-های شبکه های محلی بی سیم ضبط شده نشان داده می شود. این پنجره ترافیک شبکه های بی سیم پیدا شده در حین عملیات ضبط کردن را به صورت خلاصه نشان می دهد. پنجره ی WLAN Traffic Statistics در شکل 9 نمایش داده شده است.


هر سطر در لیست نشان داده شده در شکل فوق، نشان دهنده ی مقادیر آماری برای یک شبکه ی بی سیم خاص است.

  • Name resolution: در صورتی انجام خواهد شد که علاوه بر انتخاب شدن در این صفحه، در لایه ی MAC نیز فعال شده باشد.
  • Only show existing networks: با انتخاب این گزینه درخواست های تفحصی که SSID آن ها با یکی از SSIDهای موجود در لیست منطبق نیست، نادیده گرفته می شوند.

مراجع

ابزارهای شخصی

گویش‌ها
فضاهای نام
عملکردها
گشتن
جعبه‌ابزار