تکنولوژی

tcpdump چیست؟ آموزش کامل Capture بسته‌های شبکه در لینوکس

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

در دنیای شبکه و امنیت، تحلیل ترافیک شبکه (Packet Analysis) ابزار اصلی برای عیب‌یابی، تشخیص حملات، بررسی عملکرد پروتکل‌ها و بررسی امنیت شبکه است. دو ابزار مهم در این حوزه عبارت‌اند از:

✔️ Wireshark : ابزار گرافیکی تحلیل بسته‌ها با فیلترهای حرفه‌ای و قابلیت بررسی دقیق پروتکل‌ها.

✔️ Tcpdump : ابزار خط فرمان برای Capture  بسته‌ها در لینوکس. عالی برای سرورهای بدون رابط گرافیکی یا اسکریپت‌نویسی و ذخیره Capture.

این مقاله از Hellodigi به شما می‌آموزد چگونه از tcpdump در لینوکس برای Capture بسته‌ها استفاده کنید و سپس آن‌ها را با Wireshark تحلیل کنید یا به‌صورت مستقیم ترافیک را بررسی کنید.

tcpdump  ، ابزار Capture در لینوکس

فرض کنید روی یک سرور لینوکسی در دیتاسنتر لاگین کرده‌اید. سرویس وب کند شده، بعضی کاربران Timeout می‌گیرند، اما:

✔️ هیچ رابط گرافیکی ندارید

✔️ نصب Wireshark روی سرور مجاز نیست

✔️ فقط SSH و ترمینال در اختیار شماست

در چنین شرایطی، تنها ابزاری که به شما امکان می‌دهد ببینید واقعاً روی شبکه چه اتفاقی می‌افتد، tcpdump است.

🧰  tcpdump چیست؟

Tcpdump  یک ابزار قدرتمند خط فرمان (CLI) برای Capture و بررسی بسته‌های شبکه در سیستم‌های یونیکسی (به‌ویژه لینوکس) است. این ابزار مستقیماً روی اینترفیس شبکه گوش می‌دهد و بسته‌ها را قبل از رسیدن به لایه‌های بالاتر سیستم‌عامل دریافت می‌کند.

Tcpdump  بر پایه‌ی کتابخانه‌ی معروف libpcap  ساخته شده است، همان کتابخانه‌ای که ابزارهایی مثل Wireshark  نیز از آن استفاده می‌کنند. به همین دلیل، فایل‌هایی که با tcpdump ذخیره می‌شوند (.pcap) کاملاً با Wireshark سازگار هستند و می‌توان آن‌ها را بعداً به‌صورت گرافیکی و دقیق تحلیل کرد.

🔍  tcpdump دقیقاً چه کاری انجام می‌دهد؟

Tcpdump  به شما اجازه می‌دهد:

✔️ بسته‌های عبوری از یک Interface خاص را Capture کنید

✔️ فقط ترافیک موردنظر (مثلاً یک IP، پورت یا پروتکل مشخص) را ضبط کنید

✔️ بسته‌ها را به‌صورت Real-Time  روی ترمینال ببینید

✔️ یا آن‌ها را در یک فایل ذخیره کنید تا بعداً با Wireshark تحلیل شوند

این یعنی شما می‌توانید روی یک سرور Production، حداقل دخالت و حداکثر دید را داشته باشید.

📦  مثال:

فرض کنید می‌خواهید بررسی کنید آیا سرور شما واقعاً درخواست‌های HTTPS را دریافت می‌کند یا نه:

sudo tcpdump -i eth0 tcp port 443

در این حالت:

Tcpdump ✔️  روی کارت شبکه eth0 گوش می‌دهد

✔️ فقط ترافیک TCP مربوط به پورت 443 (HTTPS) را نمایش می‌دهد

✔️ شما می‌توانید SYN، ACK و جریان واقعی ارتباط را ببینید

اگر بخواهید همین ترافیک را برای تحلیل عمیق‌تر ذخیره کنید:

sudo tcpdump -i eth0 tcp port 443 -w https_traffic.pcap


فایل خروجی را بعداً در Wireshark باز می‌کنید و دقیقاً می‌بینید:

Handshake ✔️  به‌درستی انجام شده یا نه

✔️ آیا Reset اتفاق افتاده

Latency ✔️  کجای مسیر ایجاد شده

⚙️  چرا tcpdump برای متخصص امنیت و شبکه حیاتی است؟

Tcpdump  دقیقاً در جایی استفاده می‌شود که:

✔️ سرور GUI ندارد

✔️ نصب ابزار اضافی مجاز نیست

✔️ نیاز به تحلیل سریع و کم‌هزینه دارید

✔️ می‌خواهید Capture را به تیم SOC یا Incident Response بدهید

به همین دلیل، tcpdump یکی از ابزارهای الزامی در جعبه‌ابزار مهندسین شبکه، SOC Analyst ها و Blue Team محسوب می‌شود.

🔗  ارتباط tcpdump با Wireshark (پل بین CLI و GUI)

اگر در مقاله‌ی قبلی شما تحلیل Packet با Wireshark را بررسی کرده‌ایم، tcpdump  دقیقاً نقش مرحله‌ی قبل را بازی می‌کند:

tcpdump    Capture دقیق روی لینوکس
Wireshark
 تحلیل عمیق و بصری روی سیستم تحلیل

این ترکیب، استاندارد حرفه‌ای در دنیای امنیت شبکه است.

📦  نصب و آماده‌سازی tcpdump  

در اکثر توزیع‌های لینوکس، می‌توانید tcpdump را به‌راحتی نصب کنید:

sudo apt install tcpdump     # Debian/Ubuntu

sudo dnf install tcpdump     # RHEL/CentOS/Fedora

 

(در صورت نیاز Wireshark نیز به همین صورت نصب می‌شود.)

📌  چرا tcpdump؟

 سبک و سریع
 مناسب سرورهای بدون GUI
 قابل اسکریپت‌نویسی و زمان‌بندی
 همکاری قوی با Wireshark برای تحلیل حرفه‌ای
(مثلاً Capture با tcpdump و آنالیز در Wireshark).

🧪  بخش چهارم: دستورات پایه tcpdump

🛑 شروع یک Capture ساده

sudo tcpdump -i any -w capture.pcap

  • -i any : گوش دادن به تمام اینترفیس‌ها
  • -w capture.pcap : ذخیره در فایل با پسوند pcap برای تحلیل بعدی.

⚙️ گزینه‌های مهم tcpdump

Flag

توضیحات

-i <iface>

انتخاب کارت شبکه

-n

عدم ترجمه IP به نام‌ها

-s 0

ضبط کامل بسته‌ها (بدون کوتاه‌سازی)

-c N

ضبط N بسته و خروج

-v

نمایش بیشتر اطلاعات

 

📍  مثال‌های کاربردی

🔹  فقط ترافیک HTTP (پورت 80):

sudo tcpdump -i any tcp port 80 -w http.pcap

🔹  فقط ترافیک به یک IP مشخص:

sudo tcpdump -i any host 192.168.1.10 -w host.pcap

این فیلترها بسیار شبیه به فیلترهای Wireshark هستند و در tcpdump نیز قابل استفاده‌اند. (

🔍 بخش پنجم: استفاده از Wireshark برای تحلیل فایل‌های tcpdump

پس از اینکه توسط tcpdump فایل Capture (مثلاً capture.pcap) را ذخیره کردید، می‌توانید آن را در Wireshark باز کنید:

📌  مراحل

  1. Wireshark اجرا کنید.
  2. از منوی File    Open فایل .pcap را باز کنید.
  3. از Display Filters برای دیدن بسته‌های موردنظر استفاده کنید (مثلاً http, tcp, ip.addr == 192.168.1.10).

🧠  بخش ششم: Best practice و نکات حرفه‌ای

🧩 نکته ۱:  Snap Length را کامل بگیرید

برای بررسی کامل بسته‌ها، همیشه از:

tcpdump -s 0

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

🧩 نکته ۲:  Capture هدفمند با فیلترهای BPF

استفاده از فیلترهای Berkeley Packet Filter (BPF)  باعث بهینه‌سازی Capture می‌شود و فقط بسته‌های مورد نیاز ضبط می‌شوند، مثال:

sudo tcpdump -i any 'tcp and port 443'

فیلتر BPF عملکرد را بسیار بهبود می‌دهد.

🧩 نکته ۳:  Capture از راه دور

می‌توانید با SSH به سرور وصل شوید و روی سرور Capture کنید، سپس فایل را به سیستم خود منتقل و در Wireshark تحلیل کنید.

📌  جمع‌بندی

ابزار

نقش

tcpdump

ضبط هدفمند و سبک بسته‌ها روی لینوکس (CLI)

Wireshark

تحلیل دقیق، فیلتر حرفه‌ای و نمایش بصری

 

با ترکیب این دو ابزار، می‌توانید در هر سناریویی، از سرورهای بدون گرافیک تا تحلیل عمیق امنیتی، ترافیک شبکه را ضبط، ذخیره و تحلیل حرفه‌ای کنید.

 

تمام حقوق سایت برای سلام دیجی و نويسندگان آن محفوظ می باشد