تحليل حركة المرور عبر الشبكة باستخدام tcpdump و Wireshark CLI (TShark)


أهلاً يا شباب! كمهندسي أنظمة Linux، القدرة على فهم ما يحدث على شبكتنا أمر حيوي. اليوم، سنتعمق في أداتين لا غنى عنهما لتحليل حركة المرور: tcpdump و TShark (واجهة سطر الأوامر لـ Wireshark). جاهزين؟ هيا بنا!

tcpdump: ملك الالتقاط الفوري

tcpdump هي أداة سطر أوامر قوية لالتقاط وتحليل حزم الشبكة. إنها سريعة، خفيفة الوزن، ومثالية للمراقبة الفورية أو حفظ حركة المرور لتحليلها لاحقاً.

التقاط أساسي

لتبدأ بالتقاط حركة المرور على واجهة معينة (مثلاً، eth0):

sudo tcpdump -i eth0

لإيقاف الالتقاط، اضغط Ctrl+C. إذا لم تحدد واجهة، سيحاول tcpdump الالتقاط على أول واجهة غير loopback يجدها.

تصفية حركة المرور

هنا تكمن قوة tcpdump. يمكنك تصفية حسب المضيف، المنفذ، البروتوكول، والمزيد.

  • حسب المضيف (Host): التقاط حركة المرور من أو إلى IP معين:
  • sudo tcpdump -i eth0 host 192.168.1.100
  • حسب المنفذ (Port): التقاط حركة المرور على منفذ معين (مثلاً، HTTP على المنفذ 80):
  • sudo tcpdump -i eth0 port 80
  • حسب البروتوكول (Protocol): التقاط حركة مرور بروتوكول معين (مثلاً، ICMP لحزم Ping):
  • sudo tcpdump -i eth0 icmp
  • دمج الفلاتر: يمكنك دمج الفلاتر باستخدام and أو or:
  • sudo tcpdump -i eth0 host 192.168.1.100 and port 22

    هذا يلتقط حركة المرور من وإلى 192.168.1.100 على المنفذ 22 (SSH).

حفظ الالتقاط في ملف

لتحليل لاحق، يمكنك حفظ حركة المرور في ملف .pcap:

sudo tcpdump -i eth0 -w capture.pcap

الخيار -w يعني "write to file".

قراءة من ملف

لقراءة ملف .pcap قمت بحفظه سابقاً:

tcpdump -r capture.pcap

الخيار -r يعني "read from file".

ملاحظة مهمة: tcpdump يعرض رؤوس الحزم بشكل افتراضي. إذا أردت رؤية محتوى الحزم (payload)، استخدم الخيار -A لعرضها كـ ASCII، أو -X لعرضها كـ hex و ASCII.

sudo tcpdump -i eth0 -A port 80

TShark: قوة Wireshark في سطر الأوامر

TShark هو توأم Wireshark لسطر الأوامر. إنه ممتاز لأتمتة المهام، تحليل ملفات .pcap الكبيرة، أو العمل على خوادم بدون واجهة رسومية. تحتاج لتثبيته أولاً إذا لم يكن موجوداً:

sudo apt update
sudo apt install tshark
# أو على CentOS/RHEL
sudo yum install wireshark

التقاط أساسي باستخدام TShark

يشبه tcpdump في الالتقاط، لكن مع خيارات عرض أكثر تفصيلاً:

sudo tshark -i eth0

قراءة وتحليل ملفات pcap

قوة TShark الحقيقية تظهر عند تحليل الملفات. لقراءة ملف capture.pcap:

tshark -r capture.pcap

هذا سيعرض لك ملخصاً مفصلاً لكل حزمة، تماماً كما في واجهة Wireshark الرسومية.

فلاتر العرض (Display Filters)

على عكس فلاتر الالتقاط في tcpdump، فلاتر العرض في TShark (و Wireshark) يمكن تطبيقها بعد التقاط الحزم. إنها أكثر مرونة بكثير.

  • عرض حركة مرور HTTP فقط:
  • tshark -r capture.pcap -Y "http"
  • عرض حركة مرور SSH من أو إلى IP معين:
  • tshark -r capture.pcap -Y "ssh && ip.addr == 192.168.1.100"
  • عرض حزم تحتوي على نص معين (مثلاً، "password"):
  • tshark -r capture.pcap -Y "tcp contains password"

الخيار -Y يحدد فلتر العرض.

تصدير البيانات

يمكنك تصدير حقول معينة من الحزم إلى ملف CSV، وهو مفيد جداً للتحليل الإحصائي:

tshark -r capture.pcap -Y "http" -T fields -e ip.src -e ip.dst -e http.request.full_uri > http_requests.csv

هذا الأمر سيصدر المصدر والوجهة وURI الكامل لطلبات HTTP إلى ملف http_requests.csv.

نصيحة احترافية: استخدم tshark -G column-formats لرؤية جميع أسماء حقول TShark المتاحة التي يمكنك استخدامها مع الخيار -e.

الخلاصة

tcpdump و TShark أداتان قويتان، كل واحدة لها استخدامها الأمثل. tcpdump رائع للالتقاط السريع والتصفية الأساسية على الخادم مباشرة. بينما TShark يوفر عمق Wireshark في سطر الأوامر، مما يجعله مثالياً لتحليل ملفات .pcap المعقدة وأتمتة المهام. إتقان هاتين الأداتين سيجعلك مهندس أنظمة Linux أفضل بكثير في استكشاف أخطاء الشبكة وإصلاحها.

الآن، انطلقوا وطبقوا ما تعلمتموه! بالتوفيق!