يأتي Linux مزودًا بعدد كبير من أدوات الشبكات للاختيار من بينها. tcpdump هي إحدى أدوات الشبكات القوية التي يمكنها التقاط وتحليل حركة مرور الشبكة إذا احتجت إلى استكشاف أخطاء الشبكة وإصلاحها على Linux.
دعنا نتعامل مع الأمر tcpdump واستكشف كيفية استخدامه لالتقاط حركة مرور الشبكة.
تثبيت tcpdump في لينكس
عادةً ما يأتي tcpdump مثبتًا مسبقًا مع جميع توزيعات Linux السائدة والبدائل القائمة على الأمن. لذلك يجب أن تكون قادرًا على استخدامه على الفور عن طريق الكتابة tcpdump مع سودو بادئة.
في حالة عدم قدرتك على تشغيل الأمر tcpdump ووجودك عالقًا في "tcpdump: الأمر غير موجود"، دعنا نتعلم كيفية تثبيت tcpdump على جهاز Linux الخاص بك.
لتثبيت tcpdump ، قم بتشغيل المحطة وتشغيل الأمر المقابل لتوزيعة Linux التي تستخدمها حاليًا:
على مشتقات Debian / Ubuntu ، قم بتشغيل:
sudo apt-احصل على تثبيت tcpdump
على الأنظمة القائمة على القوس، يجري:
sudo pacman -S tcpdump
لتثبيت الأداة المساعدة tcpdump على Fedora و CentOS و RHEL ، قم بإصدار الأمر التالي:
sudo dnf تثبيت tcpdump
لاحظ أنه إذا طُلب منك التثبيت libcap، اكتب في نعم أو ص لأنها تبعية أساسية ، والتي بدونها سيرفض tcpdump البدء. يجب أن يقوم هذا بتثبيت الأداة المساعدة tcpdump وحل خطأ "الأمر غير موجود".
الآن بعد أن تم تثبيت tcpdump على نظامك ، دعنا نستكشف الخيارات والوظائف المختلفة التي يوفرها.
التقاط حركة مرور الشبكة باستخدام tcpdump
يقدم tcpdump الكثير من العلامات لتعديل تنفيذه ولكن يمكن تشغيله كأمر مستقل أيضًا. ومع ذلك ، فإن تشغيل tcpdump بدون أي إشارات أو حجج قد يؤدي إلى إهمال إمكاناته الكاملة. من الأفضل دائمًا استخدام بعض العلامات لتعديل التنفيذ والإخراج حسب الضرورة.
اكتب هذا الأمر لمراقبة عمليات إرسال الشبكة باستخدام tcpdump:
sudo tcpdump
الآن سيبدأ tcpdump في التقاط حزم الشبكة تلقائيًا حتى إشارة المقاطعة مع السيطرة + Z لكسر العملية يدويًا. للحد من العدد الإجمالي للحزم التي تم التقاطها ، استخدم ملحق -ج ضع علامة واكتب الحد المطلوب من الحزم بجواره:
sudo tcpdump -c 5
إذا كنت لا تستطيع فهم الإخراج في الوقت الحالي ، فأنت بحاجة إلى ذلك التعرف على تنسيق الإخراج tcpdump أول.
تحقق من واجهات الشبكة المتوفرة مع tcpdump
بشكل افتراضي ، يلتقط tcpdump حركة المرور من أي من واجهات الشبكة المتاحة. إذا كان لديك العديد من واجهات الشبكة النشطة قيد الاستخدام ، فقد ترغب في تحديد واجهة الشبكة التي يجب أن يلتقط tcpdump الحزم منها. لبدء tcpdump على واجهة معينة ، يجب عليك أولاً التعرف على اسم الواجهة.
فيما يلي كيفية سرد كافة واجهات الشبكة المتوفرة باستخدام tcpdump:
sudo tcpdump -D
أو يمكنك إضافة ملف - واجهات قائمة علم للأمر:
sudo tcpdump -قائمة-واجهات
يحتوي الإخراج الذي تم إرجاعه على قائمة بكل واجهات الشبكة النشطة التي يمكن أن يستمع إليها tcpdump. لتكوين tcpdump لالتقاط عمليات الإرسال من واجهة شبكة معينة ، اكتب هذا الأمر:
sudo tcpdump -i interface_id
أو يمكنك إضافة ملف --واجهه المستخدم علم للأمر:
sudo tcpdump -واجهه المستخدممعرف الواجهة
الآن وقد التقطنا بعض الحزم ، دعنا ندرسها عن كثب ونتعلم كيف يمكنك تعديل الإخراج لتكون أكثر قابلية للقراءة.
استكشاف عوامل تصفية tcpdump
tcpdump قادر على التقاط قدر هائل من حركة المرور في جولة واحدة. يمكن أن يؤدي التحميل الزائد للمعلومات إلى إبعادك عن المسار الصحيح عند التحقيق في المشكلات أو استكشافها وإصلاحها مع مضيف معين أو بروتوكول شبكة.
هنا يأتي دور عوامل تصفية tcpdump. يمكنك إلحاق الأمر tcpdump بعلامات معينة لتصفية حركة مرور الشبكة والتقاط حزم معينة. يمكنك بعد ذلك تخزين هذه الحزم وتحليلها لاحقًا للوصول إلى جذر أي مشاكل متعلقة بالشبكة. دعنا نتعلم كيفية استخدام المرشحات في tcpdump.
حزم عامل التصفية استنادًا إلى بروتوكول الشبكة المستخدم
لتصفية الحزم المرسلة عبر بروتوكول معين ، اكتب اسم البروتوكول باستخدام الأمر tcpdump ، وسوف يلتقط فقط الحزم التي تنتقل عبر بروتوكول الشبكة المحدد.
على سبيل المثال ، لالتقاط الحزم المستندة إلى ICMP ، يمكنك ببساطة إرفاقها icmp في نهاية الأمر tcpdump. العملية هي نفسها إذا كنت ترغب في التقاط حزم UDP أو TCP فقط.
سودو tcpdump -c 5 icmp
سيعيد هذا الأمر الإخراج فقط إذا كان هناك تبادل للبيانات من خلال بروتوكول ICMP.
تصفية الحزم على أساس المضيف
يمكنك تكوين tcpdump لالتقاط الحزم المتعلقة بمضيف واحد بامتداد مضيف معامل. هذا مفيد بشكل خاص عندما تعمل جميع أنظمة شبكتك باستثناء نظام واحد. يتيح لك هذا الفلتر إجراء تحقيق مستهدف وتسريع سير العمل الشامل لاستكشاف الأخطاء وإصلاحها لأنك لا تشتت انتباهك بالبيانات غير الضرورية.
لالتقاط الحزم المتعلقة بمضيف معين ، حدد عنوان شبكة المضيف بامتداد مضيف معامل:
سودوtcpdump-ج 5 مضيف 192.168.2.1
على غرار عامل تصفية بروتوكول الشبكة ، سيعيد هذا الأمر الإخراج فقط إذا كان أي إرسال مستمر مرتبطًا بالمضيف المحدد.
حزم عامل التصفية على أساس المنفذ النشط
تم تجهيز tcpdump بمعامل يتيح لك تصفية حركة مرور الشبكة والتقاط الحزم التي يتم إرسالها من وإلى منفذ معين فقط.
لالتقاط الحزم القادمة من منفذ معين ، قم بإلحاق ملف ميناء ضع علامة على الأمر tcpdump وحدد رقم المنفذ المجاور له. على سبيل المثال ، لالتقاط أي حركة مرور HTTP واردة أو صادرة ، حدد المنفذ 80:
sudo tcpdump -c 5 منفذ 80
سيستمع tcpdump على المنفذ 80 ، في انتظار عمليات إرسال HTTP. بمجرد اكتشاف حزم HTTP في الشبكة ، سيتم التقاطها.
ادمج المرشحات معًا من أجل الفرز المتقدم
ناقشت الأقسام السابقة كيف يمكنك تصفية حركة المرور بناءً على المنفذ أو البروتوكول أو المضيف ، ولكن ماذا لو أردت التقاط حركة المرور من منفذ واحد لمضيف معين باستخدام شبكة معينة بروتوكول؟ حسنًا ، أنت محظوظ لأن هذا ممكن ، ويعزى ذلك إلى القدرة على استخدام العوامل المنطقية باستخدام الأمر tcpdump.
لالتقاط الحزم من مضيف فردي باستخدام المنفذ 443 ، استخدم هذا الأمر:
سودوtcpdump-ج 5 مضيف 192.168.2.1وميناء 443
افحص محتويات الحزم الملتقطة
بشكل افتراضي ، يعرض tcpdump رؤوس الحزمة في المخرجات. في حين أنه أكثر من كافٍ في معظم الحالات ، في بعض الأحيان ، قد ترغب أو تحتاج إلى إلقاء نظرة أعمق على البيانات التي تم التقاطها. يمكنك تمرير معاملات معينة باستخدام الأمر tcpdump لفحص محتوى الحزمة الملتقطة.
فيما يلي كيفية عرض محتوى الحزم:
سودو tcpdump -c 5 -x
يقوم هذا الأمر بإرجاع النسخة السداسية عشرية للمحتوى في حزمة تم التقاطها. إذا كنت ترغب في عرض نموذج ASCII للبيانات ، يمكنك تمرير ملف -أ المعلمة مع:
سودو tcpdump -A
احفظ إخراج tcpdump في ملف
مثل أي أداة أخرى لسطر أوامر Linux تقريبًا ، يمكنك تخزين الإخراج الناتج عن tcpdump في ملف للرجوع إليه لاحقًا.
يمكن القيام بذلك عن طريق إضافة -w علم للأمر. عند التنفيذ ، سيقوم tcpdump بتخزين البيانات الملتقطة في ملف .pcap ملف يمكن تحليله لاحقًا باستخدام tcpdump أو أدوات مراقبة الشبكة الأخرى مثل Wireshark.
اكتب هذا الأمر لتخزين إخراج أمر tcpdump في ملف:
سودوtcpdump-wإلتقاط.pcap
لقراءة أ .pcap ملف ، يمكنك استخدام tcpdump بملحق -r معامل:
سودوtcpdump-rإلتقاط.pcap
يأتي نظام Linux مزودًا بعدد كبير من أدوات الشبكات التي يمكنها حل كل مشكلة في الشبكة طالما أنها في جانب البرامج. إن معرفة كيفية استخدام عدد قليل من أفضل أدوات الشبكات في Linux سيكون مفيدًا بالتأكيد ، سواء كنت مسؤول نظام تدير الشبكات لكسب العيش أو مجرد مستخدم يومي لنظام Linux.
نظرًا لأن القائمة الفعلية لأوامر الشبكات المتاحة يمكن أن يكون من الصعب فهمها ، فإليك قائمة ببعض أهم أدوات شبكات Linux التي يجب أن تعرفها.