Wireshark: دیدن بستهها
جواب کوتاه
Wireshark (وایرشارک) برنامهای رایگان و متنباز برای دیدن بستههای شبکه است: هر بستهای را که از کارت شبکهی شما میگذرد میگیرد و با همهی جزئیات، لایهبهلایه، نشان میدهد. پنجرهاش سه بخش دارد: فهرست بستهها، جزئیات بستهی انتخابشده، و خود بایتها. با فیلتر نمایش (مثلا dns یا ip.addr == …) فقط بستههای مورد نظر را میبینید. Wireshark فقط میبیند و به شبکه دست نمیزند؛ آن را فقط روی شبکهی خودتان به کار ببرید.
نام
Wireshark، که فارسیزبانها وایرشارک میگویند، برنامهای برای دیدن بستههای شبکه است. هر بستهای که از کارت شبکهی رایانهی شما میگذرد، میگیرد و با بیشترین جزئیات نشان میدهد.
رایگان و متنباز است، روی ویندوز، مک و لینوکس کار میکند، و برای نصبش کلید یا پولی لازم نیست. مدیران شبکه برای عیبیابی از آن استفاده میکنند، و دانشجوها برای اینکه ببینند پروتکلهایی که در این مسیر خواندید، واقعا چطور کار میکنند.
دوربین عوارضی
دوربین عوارضی بزرگراه را تصور کنید. هر خودرویی که رد میشود، با ساعت، پلاک، و اینکه از کجا آمده و به کجا میرود، در دفتر دوربین ثبت میشود. دوربین به خودروها دست نمیزند؛ فقط میبیند و مینویسد:
Wireshark همین دوربین است، روی راهی که بستهها از رایانهی شما رد میشوند. هر خط دفترش یک بسته است: زمان، از کجا، به کجا، و با کدام پروتکل. اگر دنبال یک پلاک باشید، در فیلمها میگردید؛ این فیلتر نمایش است. اگر از اول فقط کامیونها را ثبت کنید، این فیلتر گرفتن است.
نصب و شروع
- نصب: Wireshark را از سایت خودش، wireshark.org، برای ویندوز یا مک بگیرید؛ در لینوکس از مخزن برنامههای همان لینوکس نصب میشود.
- کارت شبکه را انتخاب کنید: در صفحهی اول، فهرست کارتها میآید، مثلا Wi-Fi یا Ethernet. همانی را که با آن به اینترنت وصلاید انتخاب کنید؛ کنار هر کدام خط کوچکی نشان میدهد ترافیک دارد یا نه.
- شروع: روی دکمهی بالهی آبی کوسه (Start) بزنید. بستهها یکییکی در فهرست میآیند.
- کاری بکنید: یک سایت را باز کنید یا یک نشانی را ping کنید، تا بستهای برای دیدن باشد.
- توقف: دکمهی مربع قرمز (Stop) را بزنید. حالا میتوانید با خیال راحت بگردید و فیلتر بگذارید.
در چند ثانیه صدها بسته میآید، چون رایانه حتی وقتی کاری نمیکنید با شبکه حرف میزند. نگران نشوید؛ فیلتر برای همین است.
سه بخش پنجره
پنجرهی Wireshark از بالا به پایین سه بخش دارد. روی هر خط فهرست بزنید، دو بخش پایین جزئیات همان بسته را نشان میدهند:
ستونهای فهرست بستهها:
| ستون | یعنی |
|---|---|
| No. | شمارهی بسته در فایل؛ با فیلتر عوض نمیشود |
| Time | زمان، از شروع گرفتن، به ثانیه |
| Source | از کجا آمد |
| Destination | به کجا میرود |
| Protocol | نام کوتاه پروتکل |
| Length | اندازهی بسته |
| Info | خلاصهی محتوای بسته |
یک بسته، لایهبهلایه
بخش جزئیات، بسته را همانطور که در درس کپسولهسازی دیدید، لایهبهلایه باز میکند؛ مثل باز کردن یک کامیون: خود کامیون، کانتینر درونش، جعبهی درون کانتینر، و نامهی درون جعبه:
روی هر لایه بزنید تا باز شود و فیلدهایش را ببینید: نشانیها، درگاهها، TTL، و هر چیزی که در درسهای این مسیر خواندید. این بهترین راه برای دیدن درسها در کار واقعی است.
فیلتر نمایش
در نوار بالای پنجره، فیلتر را بنویسید و Enter بزنید. فقط بستههای جور میمانند و بقیه پنهان میشوند؛ فایل دست نمیخورد:
چند فیلتر پرکاربرد:
| فیلتر | چه نشان میدهد |
|---|---|
| dns | فقط بستههای DNS |
| tcp | فقط بستههای TCP |
| ip.addr == 192.168.1.20 | بستههایی که این نشانی مبدأ یا مقصدشان است |
| tcp.port == 443 | بستههای TCP با درگاه ۴۴۳ |
| icmp | پیامهای ping |
| dns and ip.src == 192.168.1.20 | دو شرط با هم |
نام پروتکلها و فیلدها با حروف کوچک نوشته میشوند. == یعنی برابر، != نابرابر، و شرطها با and، or و not با هم جمع میشوند.
فیلتر گرفتن
فیلتر گرفتن پیش از شروع، در پنجرهی Capture Options، نوشته میشود و از اول فقط بستههای جور را میگیرد. زبانش با فیلتر نمایش فرق دارد:
host 192.168.1.20 port 53 tcp port 443 and host 203.0.113.10
host یعنی این نشانی، port یعنی این درگاه، و اینها هم با and، or و not جمع میشوند. وقتی ترافیک زیاد است و فقط یک چیز را میخواهید، فیلتر گرفتن فایل را کوچک نگه میدارد؛ ولی آنچه گرفته نشد، بعدا هم نیست.
سه تمرین
- یک پرسش DNS (فیلتر dns): گرفتن را شروع کنید، nslookup example.com بزنید، و فیلتر dns بگذارید. دو بسته میبینید: پرسش از رایانهی شما و جواب از سرور DNS. جزئیات جواب را باز کنید و نشانی را پیدا کنید.
- دست دادن TCP (فیلتر tcp): سایتی را باز کنید و فیلتر tcp بگذارید. اولین سه بستهی یک گفتوگو را پیدا کنید: SYN، بعد SYN و ACK، بعد ACK؛ همان دست دادن سهمرحلهای.
- ping (فیلتر icmp): یک نشانی را ping کنید و فیلتر icmp بگذارید. برای هر پیام Echo Request یک Echo Reply میبینید، و فاصلهی زمانشان همان زمان رفت و برگشت است.
هر سه را در درسهای nslookup، دست دادن TCP و ping خواندید؛ حالا خودشان را میبینید.
شبکهی خودتان، و رمزها
Wireshark را فقط روی شبکهی خودتان، یا شبکهای که مسئولش هستید و اجازه دارید، به کار ببرید. بستهها مال کسانیاند که آنها را فرستادهاند.
ترافیک HTTPS رمزگذاریشده است؛ در Wireshark میبینید بستهها از کجا به کجا رفتند، ولی محتوایشان خواندنی نیست. این همان امنیتی است که HTTPS میدهد. و فایلهایی که از گرفتن بستهها ذخیره میکنید ممکن است چیزهای خصوصی داشته باشند؛ آنها را برای کسی نفرستید.
سه اشتباه
- «فیلتر نمایش بستههای دیگر را پاک میکند.»فقط پنهانشان میکند؛ فیلتر را بردارید، همه برمیگردند. فیلتر گرفتن است که از اول بستههای دیگر را نمیگیرد.
- «Wireshark حمله را خبر میدهد.»Wireshark سامانهی تشخیص نفوذ نیست و هشدار نمیدهد؛ فقط نشان میدهد. فهمیدنش با شماست.
- «با Wireshark محتوای هر سایتی را میبینم.»ترافیک HTTPS رمزگذاری شده است؛ میبینید بستهها از کجا به کجا رفتند، نه آنچه درونشان است.
جمعبندی. آنچه از این درس با خودتان میبرید.
- Wireshark: دیدن بستهها، رایگان و متنباز.
- کارت شبکه، Start، کاری بکنید، Stop.
- سه بخش: فهرست، جزئیات لایهبهلایه، بایتها.
- فیلتر نمایش پنهان میکند؛ فیلتر گرفتن نمیگیرد.
- تمرین: DNS، دست دادن TCP، ping.
- فقط شبکهی خودتان؛ HTTPS رمزگذاریشده است.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.