دليل تحليل حركة الشبكة والتقاط الحزم عبر tcpdump في أوبونتو

نظرة عامة

تُعد أداة tcpdump حجر الزاوية لكل مهندس نظم ومسؤول شبكات يعمل في بيئات لينكس عند استكشاف الأخطاء وتتبع المشكلات البرمجية وتشخيص حركة المرور. بدلاً من الخوض في تفاصيل التوثيق الرسمي المطولة، يقدم هذا الدليل مساراً تطبيقياً متكاملاً؛ بدءاً من اكتشاف بطاقات الشبكة المتاحة، مروراً بتقنيات تصفية الحزم في الوقت الفعلي، ووصولاً إلى أرشفة البيانات وتفحص ملفات PCAP بدقة متناهية.

تثبيت أداة tcpdump واستكشاف واجهات الشبكة المتاحة

قبل الشروع في مراقبة البيانات واعتراض الحزم، يتعين علينا تجهيز بيئة العمل بحزم الفحص المطلوبة عبر تثبيت tcpdump مع أداة إرسال الطلبات curl.

تحديث المستودعات وتثبيت حزمتي tcpdump وcurl

يمكننا التحقق من جاهزية البرنامج وإصدار مكتبة المعالجة libpcap المعتمدة عبر تنفيذ الأمر tcpdump --version.
تتميز أداة tcpdump بقدرتها الفائقة على تتبع البيانات المتدفقة عبر بطاقات الشبكة في الزمن الحقيقي، مع تفكيك الترويسات وتحليل مختلف البروتوكولات عبر سطر الأوامر بمرونة عالية.
⚙️ [أهم المعاملات والخيارات التشغيلية]

-i : تحديد واجهة الشبكة المراد التقاط الحزم من خلالها.
-n : تعطيل الاستعلام العكسي لأسماء النطاقات وعرض عناوين IP الرقمية مباشرة لتسريع الأداء وتفادي التأخير.
-nn : منع تحويل كل من عناوين المضيفين وأرقام المنافذ إلى مسميات الخدمات القياسية، والإبقاء عليها كأرقام صريحة.
-c : إيقاف عملية الالتقاط تلقائياً بمجرد استلام العدد المحدد من الحزم.
-v : تفعيل وضع الإخراج المفصل لعرض مؤشرات مثل TTL والمعرّفات وترويسات البروتوكولات، مع إمكانية استخدام -vv أو -vvv لمزيد من التفاصيل الدقيقة.
-w : تصدير البيانات الخام الملتقطة إلى ملف بصيغة pcap متوافق مع أدوات التحليل المتقدمة مثل Wireshark.
-r : قراءة ملفات pcap المسجلة مسبقاً وعرض محتواها على شاشة الطرفية.
-A : إظهار حمولة الحزم (Payload) بتنسيق نصي مقروء ترميزه ASCII.
-X : فك تشفير الحزم وعرض الترويسات والحمولة بنظام السداسي عشر (Hex) وبترميز ASCII جنباً إلى جنب.
-D : استعراض قائمة بجميع واجهات الشبكة المتاحة في النظام والمهيأة لعمليات الرصد.

التحقق من إصدار أداة tcpdump ومكتبة libpcap

عند تنفيذ الأمر tcpdump -D، يعرض النظام جرداً شاملاً لكافة المنافذ والواجهات المتوفرة، مقرونة بأرقامها التسلسلية وحالات تشغيلها.
تتضمن المخرجات عادةً واجهة الاتصال الخارجي مثل eth0، والواجهة الافتراضية الشاملة any التي ترصد كامل الحركة عبر النظام، إضافةً إلى واجهة التكرار الحلقي المحلي lo؛ وتُستخدم هذه التسميات كمدخلات مباشرة للمعامل -i أثناء تحديد نطاق الفحص.

استعراض واجهات الشبكة الصالحة لالتقاط البيانات عبر الأمر tcpdump -D

التقاط حزم واجهة التكرار الحلقي (Loopback) عملياً

لتوليد حركة مرور تجريبية خاضعة للمراقبة على الواجهة المحلية، نُطلق أمر البينغ ping -c 4 127.0.0.1 > /dev/null 2>&1 & في الخلفية لإنشاء حزم بروتوكول ICMP.

توليد حزم ICMP على واجهة loopback في الخلفية

يُوجّه الأمر tcpdump -i lo -c 4 -n أداة الرصد لاستهداف واجهة التكرار الحلقي (lo) حصراً، حيث يقتنص 4 حزم (-c 4) مع إبراز العناوين بصيغتها الرقمية الخالصة دون اللجوء لحل أسماء النطاقات (-n).
وتبرز النتائج بنجاح تفاصيل تبادل رسائل طلب الصدى (Echo Request) ورد الصدى (Echo Reply) بين العنوان الذاتي 127.0.0.1، متضمنةً الطوابع الزمنية الدقيقة، والأرقام التسلسلية، وحجم البيانات في كل حزمة.

التقاط حزم ICMP على الواجهة lo باستخدام tcpdump

تصفية تدفق البيانات بحسب المنافذ ونوع البروتوكول

لبدء جلسة اتصال آمنة واختبار اعتراض حركة المنفذ 443، نقوم بإرسال طلب ويب مشفر عبر تنفيذ الأمر curl -s https://example.com > /dev/null 2>&1 & في الخلفية.

توليد حركة مرور HTTPS في الخلفية عبر curl

يقوم الأمر tcpdump -i any -c 4 -nn 'tcp port 443' بالتنصت الشامل على كافة الواجهات النشطة (-i any) لجمع 4 عينات فقط (-c 4) من حركة TCP الموجهة أو الصادرة عبر المنفذ 443 ('tcp port 443')، مع إجبار المخرجات على إبقاء العناوين والمنافذ كأرقام صريحة (-nn).
تُظهر مخرجات الطرفية بدقة تفاصيل المحادثة الشبكية بين الخادم الخارجي (172.66.147.243.443) والجهاز المحلي (172.18.0.2)، كاشفةً رايات بروتوكول TCP، والأرقام التتابعية، وقيم الإشعار بالاستلام (ACK)، إضافة إلى أحجام مقاطع البيانات المنقولة.

تصفية حركة مرور المنفذ 443 باستخدام tcpdump

لتسليط الضوء على فرز بروتوكولات معينة دون غيرها، نُنشئ اتصالات تشخيصية نحو خادم DNS عام بتشغيل الأمر ping -c 2 8.8.8.8 > /dev/null 2>&1 & كعملية خلفية.

إرسال حزم ping نحو خادم DNS في الخلفية

يقوم المعامل المرشح في الأمر tcpdump -i any -c 2 -n 'icmp' بمراقبة كل الواجهات (-i any) لاقتناص حزمتين (-c 2) تتبعان لبروتوكول رسائل التحكم بالإنترنت حصراً ('icmp') دون حل العناوين (-n).
وتبرز النتائج المسجلة نجاح التقاط حزم الطلب والرد بين البيئة المحلية (172.18.0.2) وخادم غوغل (8.8.8.8)، مع توثيق معرف الحزمة (id) ورقمها التسلسلي (seq) والطول الإجمالي للمحتوى بدقة تامة.

عزل حزم ICMP والتقاطها عبر tcpdump

حفظ الحزم بصيغة PCAP وتحليل بنية المحتوى

نبدأ بتوليد سيل جديد من الحزم لتجربة التصدير، وذلك بإرسال 3 طلبات صدى محلياً عبر الأمر ping -c 3 127.0.0.1 > /dev/null 2>&1 & الذي يعمل في الخلفية.

توليد حزم محلية لحفظها في ملف pcap

يتولى الأمر tcpdump -i lo -c 3 -w /tmp/traffic_sample.pcap رصد 3 حزم (-c 3) تعبر الواجهة المحلية (lo) وحفظ تدفقها الثنائي الخام مباشرة في الملف المحدد (/tmp/traffic_sample.pcap).
تكمن الفائدة الجوهرية لهذا الأسلوب في تفادي طباعة البيانات على الطرفية وتفويت أي تفاصيل، مما يتيح أرشفة حركة المرور لمراجعتها لاحقاً أو تمريرها إلى أدوات الفحص الجنائي الرقمي والشبكي مثل Wireshark.

تصدير الحزم الملتقطة إلى ملف pcap باستخدام tcpdump -w

باستخدام الأمر tcpdump -r /tmp/traffic_sample.pcap -n -X، نقوم باسترجاع الملف المحفوظ (-r) وقراءة سجلاته بالأرقام الأصلية (-n)، مع تفعيل العرض المزدوج للحمولة والترويسات بنظامي السداسي عشر ورموز ASCII الصريحة (-X).
يمنحنا هذا العرض نظرة معمقة وفاحصة على تشريح حزم ICMP، حيث تتجاور البيانات الثنائية مع تمثيلها الحرفي، مما يتيح كشف محتويات البيانات المنقولة وتتبع أي خلل أمني أو بنيوي بسهولة.

قراءة محتوى ملف pcap وعرضه بنظام السداسي عشر وASCII

عقب الانتهاء من الفحص والتحليل، يُستحسن تنظيف البيئة والتخلص من ملف الالتقاط التجريبي عبر الأمر rm -f /tmp/traffic_sample.pcap.

حذف ملف تفريغ الحزم المؤقت

استعرضنا خلال هذا الدليل المهارات الأساسية لاقتناص الحزم وتشريح تدفقات البيانات داخل بيئة أوبونتو باستخدام tcpdump.
يُشكّل التمكن من خيارات التصفية والتحليل هذه ركيزة أساسية لأي مختص يسعى لحل المعضلات الشبكية المعقدة وتأمين خوادم لينكس بكفاءة واقتدار.