Wireshark هي أداة قوية ، ولكن لها حدودها. ما لم يكن لديك معدات الشبكات المهنية ، فمن الصعب تحليل حركة المرور التي لا تنطوي على جهاز الكمبيوتر الخاص بك. في بعض الأحيان ، يكون الحل الأسهل هو استخدام tcpdump لالتقاط حركة المرور على الخادم البعيد ، ثم قم بتشغيل Wireshark لإلقاء نظرة عليه.
ما هي Wireshark و tcpdump?
Wireshark هو محلل بروتوكول ، وهو عبارة عن برنامج يقوم بالتقاط وعرض البيانات المتدفقة عبر شبكتك بطريقة قابلة للقراءة. باستخدام Wireshark ، يمكنك تحليل المدخلات والمخرجات من خدمات الشبكة وتطبيقات الويب.
بينما يقوم Wireshark بعمل رائع وهو التقاط كل حزمة تتدفق عبرها ، في بعض الحالات ، ستحتاج إلى تحليل جلسة من خادم بعيد. ما لم يكن لديك معدات خاصة للشبكات ، فقد يكون ذلك صعبًا. في بعض الأحيان يكون من الأسهل التقاط حركة المرور على الخادم البعيد ، ثم تحليلها على سطح المكتب.
tcpdump هو محلل حزم سطر الأوامر. ليست سهلة الاستخدام مثل Wireshark ، ولكنها قادرة على التقاط حركة المرور بنفس القدر. نظرًا لأن tcpdump يعمل في وضع طرفي ، فمن الممكن تشغيله من خلال جلسة SSH. باستخدام خيارات سطر الأوامر المناسبة ، يمكنك تصدير جلسة tcpdump متوافقة مع Wireshark.
يأخذ SolarWinds Wireshark إلى المستوى التالي
Wireshark و tcpdump هي أدوات مساعدة قوية ، ولكن لديها بعض النقاط الضعيفة. على وجه الخصوص ، من الصعب للغاية تحديد المشكلات المتعلقة بالاختفاء عبر شبكتك باستخدام Wireshark خارج الصندوق. على سبيل المثال ، قد تعاني من أوقات اختبار عالية على شبكة LAN الخاصة بك ، ولا يوجد الكثير من Wireshark يمكنها القيام به للمساعدة.
عارض وقت استجابة SolarWinds لـ Wireshark (أداة مجانية)
في هذه الحالة ، أوصي SolarWinds استجابة عارض الوقت ل Wireshark. يمتد هذا المكون الإضافي Wireshark ، مما يتيح لك تشخيص سبب ارتفاعات ping والسرعة البطيئة الإجمالية للشبكة.
SolarWinds وقت الاستجابة عارض ل WiresharkDownload أداة مجانية 100 ٪
مراقب أداء شبكة SolarWinds (تجربة مجانية)
تعمل SolarWinds أيضًا على توفير حل شامل متعدد الإمكانات لشبكتك. يطلق عليه مراقبة أداء الشبكة (الآلية الوقائية الوطنية) ، ويجعل إدارة شبكة أسهل بكثير. على سبيل المثال ، باستخدام SolarWinds Network Performance Monitor ، يمكنك مراقبة وإدارة شبكة LAN اللاسلكية الخاصة بك وإنشاء خط أساس للأداء والحصول على تنبيهات الأمان في الوقت الفعلي.
SolarWinds مراقبة أداء الشبكة متاح لمحاولة خالية من المخاطر لمدة 30 يوما. الاشتراك هنا مجانا.
SolarWinds Network Performance Monitor قم بتنزيل نسخة تجريبية مجانية مدتها 30 يومًا
قبل ان تبدأ
من أجل اتباع الإرشادات الواردة في هذا الدليل ، ستحتاج إلى ما يلي:
- كمبيوتر بعيد مزود بخادم SSH و tcpdump مثبت
- الوصول إلى الجذر
- الخدمات التي تولد حركة مرور الشبكة ، مثل Apache أو node.js ، التي تعمل على الكمبيوتر البعيد
- كمبيوتر محلي مع عميل SSH وتثبيت Wireshark
الهدف هو استخدام tcpdump على الكمبيوتر البعيد ، من خلال SSH ، لالتقاط حركة مرور الشبكة. ثم يمكن نسخ حركة المرور الملتقطة إلى الكمبيوتر المحلي لتحليلها مع Wireshark.
هذا مفيد عندما لا يكون لديك وصول فعلي إلى الكمبيوتر البعيد أو تقوم بتشغيله “بدون رأس” ، أي بدون لوحة مفاتيح وشاشة.
التقاط الحزم مع tcpdump
من أجل التقاط حركة المرور باستخدام tcpdump ، ستحتاج إلى الاتصال بالكمبيوتر البعيد من خلال SSH. ستحتاج أيضًا إلى الوصول إلى الجذر ، وإلا فلن يتمكن tcpdump من التقاط حركة المرور وستظهر لك رسالة خطأ ليس لديك إذن بالتقاطه على هذا الجهاز.
بمجرد الاتصال ، قم بتشغيل الأمر التالي لبدء التقاط حركة المرور باستخدام tcpdump:
sudo tcpdump -s 0 -i eth0 -w tcpdump.pcap
سيتم شرح خيارات سطر الأوامر التي استخدمتها لالتقاط هذه الجلسة أدناه. باختصار ، سوف يلتقط الأمر أعلاه كل حركة المرور على جهاز Ethernet ويكتبها إلى ملف يسمى tcpdump.pcap بتنسيق متوافق مع Wireshark.
بمجرد الانتهاء من التقاط حركة المرور ، قم بإنهاء جلسة tcpdump بـ السيطرة + C. سترى قراءة قصيرة تعرض بعض المعلومات حول جلسة الالتقاط.
قبل أن تتمكن من نسخ حركة المرور من جهاز الكمبيوتر البعيد الخاص بك إلى جهاز الكمبيوتر المحلي للتحليل باستخدام Wireshark ، يجب عليك تغيير الأذونات. بشكل افتراضي ، لا يمكن نسخ جلسات tcpdump التي تم التقاطها بواسطة الجذر المستخدم. استخدم هذا الأمر:
sudo chmod 644 tcpdump.pcap
سيتيح لك ذلك نسخ الملف إلى الكمبيوتر المحلي باستخدام scp ، كما هو موضح في الخطوة التالية.
نسخ جلسة tcpdump للتحليل
بمجرد الانتهاء من جلسة الالتقاط باستخدام tcpdump ، تترك لك مشكلة. كيف يمكنك نسخها إلى الجهاز الذي يقوم بتشغيل Wireshark لتحليلها؟ هناك الكثير من الطرق ، لكنني أعتقد أن الأسهل هو استخدام scp. نظرًا لأنك قمت بالفعل بالتقاط الحزم على جهاز مقطوع الرأس باستخدام SSH ، فإن كل ما تحتاجه لاستخدام scp مثبت بالفعل ويعمل.
سيتعين على مستخدمي Windows تنزيل pscp ، ثم نسخ الملف إلى C: \ Windows \ System32. معظم مستخدمي Mac و Linux لديهم بالفعل كل ما يحتاجونه.
في Mac أو Linux ، افتح نافذة طرفية وقم بتشغيل الأمر التالي لنسخ ملف التقاط الجلسة:
scp [email protected]: / path / to / file ./
أو في Windows ، افتح PowerShell وقم بتشغيل هذا الأمر:
pscp.exe [email protected]: / path / to / file. \
استبدل بمعلوماتك عند الاقتضاء. سيُطلب منك إدخال كلمة المرور الخاصة بك. الأوامر التي استخدمتها موجودة في الصورة أعلاه للرجوع إليها.
تحقق للتأكد من نسخ الملف كما هو متوقع ، وكنت على استعداد لتحليل جلسة tcpdump مع Wireshark.
تحليل جلسة tcpdump التي تم التقاطها باستخدام Wireshark
التحليل يعمل كما هو الحال مع أي القبض على Wireshark التقليدية ؛ الشيء الوحيد الذي تحتاج إلى معرفته هو كيفية استيراد الملف.
بدء Wireshark ، ثم استيراد جلسة tcpdump التي تم التقاطها باستخدام ملف -> افتح وتصفح لملفك. يمكنك أيضا نقرتين متتاليتين ملف الالتقاط لفتحه في Wireshark, طالما أنه يحتوي على ملحق الملف * .pcap. إذا كنت تستخدم -ث الخيار عند تشغيل tcpdump ، سيتم تحميل الملف بشكل عادي وعرض حركة المرور.
في حالتي ، أقوم بتشغيل خادم Apache على المضيف البعيد ، وأنا مهتم بالنظر إلى بيانات HTTP. قمت بتعيين مرشح عرض Wireshark المناسب ، ويمكنني أن أتصفح الإطارات الملتقطة كالمعتاد.
كاختبار ، قمت بتضمين عنصر في شفرة HTML لا يتم عرضه على الصفحة. يجب أن أكون قادرًا على تحديد موقعه في دفق البيانات وعرضه مع Wireshark.
كما ترون ، Wireshark قادر على تحليل كل إطار وعرض البيانات على ما يرام. يظهر العنصر الذي قمت بإخفائه في المثال أعلاه. تكون عملية الالتقاط أكثر تورطًا قليلاً عند استخدام tcpdump ، لكن كل شيء في Wireshark يعمل كالمعتاد.
باستخدام خيارات سطر الأوامر ل tcpdump
في معظم الأوقات ، عندما تقوم بتشغيل tcpdump ، فأنت تريد بعض التحكم في كيفية التقاط الحزم ومكان تخزين الجلسة. يمكنك التحكم في أشياء مثل تلك باستخدام خيارات سطر الأوامر. هذه بعض خيارات سطر الأوامر الأكثر فائدة لـ tcpdump.
tcpdump -w
ال -ث يتيح خيار سطر الأوامر إمكانية إخراج Wireshark المتوافقة. يستغرق متغير واحد ، وهو اسم ملف الإخراج. لن تكون سجلات الالتقاط المحفوظة باستخدام هذا الخيار قابلة للقراءة البشرية خارج Wireshark ، نظرًا لأنها مخزنة في ملفات ثنائية بدلاً من ASCII.
tcpdump -C
ال -C يتيح لك خيار سطر الأوامر ضبط الحد الأقصى لحجم الملف بالبايت. هذا الخيار يعمل فقط جنبا إلى جنب -ث. على سبيل المثال ، الأمر tcpdump -C 1048576 -w capture.pcap يحدد الحد الأقصى لحجم الالتقاط الناتج 1 ميغابايت (1،048،576 بايت) إلى الملف capture.pcap.
إذا كانت الجلسة تولد كمية أكبر من المخرجات ، فستقوم بإنشاء ملفات جديدة لتخزينها. وبالتالي ، سيتم إنشاء التقاط 3 ميجابايت capture.pcap, capture1.pcap, و capture2.pcap مع كل ملف بحجم 1 ميغابايت.
tcpdump -s
ال -س يعيّن خيار سطر الأوامر الحد الأقصى للطول لكل حزمة بالبايت ، ويقتطع الحزمة عند الوصول إلى الحد الأقصى. الامر tcpdump -s 0 يحدد طولًا غير محدود لضمان التقاط الحزمة بأكملها.
tcpdump -i
ال -أنا يحدد خيار سطر الأوامر جهاز الشبكة الذي ترغب في مراقبة tcpdump له. إذا لم يتم تحديد واجهة ، فسيتم تعيينها افتراضيًا على الواجهة الأقل رقمًا التي تعمل حاليًا.
tcpdump- قائمة واجهات
خيار سطر الأوامر tcpdump- قائمة واجهات سيقوم بطباعة قائمة بجميع الواجهات المتوفرة لـ tcpdump لإرفاقها. لاحظ أن هذا لا يبدأ جلسة التقاط ، ولكنه سيعطيك قائمة بالواجهات المراد استخدامها مع -أنا الخيار أعلاه.
tcpdump -c
ال -ج يخبر خيار سطر الأوامر tcpdump بإنهاء الجلسة بعد التقاط عدد محدد من الحزم.
tcpdump -n
ال -ن خيار سطر الأوامر يرشد tcpdump ليس لحل عناوين IP لأسماء المضيفين. يكون هذا مفيدًا عند استكشاف الأخطاء وإصلاحها لمواقع الويب الموجودة خلف خادم موازنة التحميل ، وفي عدد قليل من الحالات الأخرى عند استخدام اسم مضيف من شأنه أن يعطي نتائج غامضة.
tcpdump -v | -vv | -vvv
خيارات سطر الأوامر الثلاثة, -الخامس, -ت ت, و -VVV تسمح لك بزيادة لفظ جلسة التقاطك. -الخامس سيوفر قيم TTL لكل حزمة ، إلى جانب معلومات ToS. -ت ت سوف يخرج TTL و ToS مع معلومات إضافية في حزم NFS. و -VVV سوف يسجل كل ما يفعله الخياران الأولان ، إلى جانب معلومات إضافية من جلسات telnet.
tcpdump -F
ال -F يرشد خيار سطر الأوامر tcpdump لاستخدام عوامل تصفية الالتقاط من الملف المحدد. يمكن العثور على مزيد من المعلومات حول كتابة ملف الالتقاط في القسم التالي.
باستخدام المرشحات القبض ل tcpdump
تتيح لك عوامل تصفية الالتقاط تضييق نطاق البيانات التي يخزنها tcpdump في جلسة. إنها طريقة مفيدة لجعل التحليل أسهل قليلاً والاحتفاظ بملفات التقاط صغيرة. وهنا بعض من المرشحات القبض الأكثر فائدة ل tcpdump.
مضيف
يحدد هذا المرشح أنه يجب فقط التقاط حركة المرور من وإلى المضيف الهدف. يستغرق عنوان IP أو اسم مضيف كوسيطة.
شبكة
سيخبر عامل التصفية net جهاز الكمبيوتر الخاص بك بالتقاط حركة المرور على شبكة فرعية معينة فقط ، ويأخذ عنوان IP كوسيطة. على سبيل المثال ، يحدد 192.168.1.0/24 أن حركة المرور من أو إلى جميع المضيفين على الشبكة الفرعية سيتم التقاطها. لاحظ أن قناع الشبكة الفرعية في التدوين المائل مطلوب.
التوقيت الصيفي المضيف
مشابه ل مضيف, يحدد مرشح الالتقاط هذا أنه سيتم التقاط حركة المرور فقط مع وجهة المضيف المعطى. ويمكن أيضا أن تستخدم مع شبكة.
مضيف src
كما هو مذكور أعلاه ، ولكن هذا الفلتر يلتقط فقط حركة المرور الناشئة من المضيف أو عنوان IP المحدد. ويمكن أيضا أن تستخدم مع شبكة.
ميناء
يخبر هذا المرشح tcpdump بالتقاط حركة المرور من وإلى رقم منفذ معين. على سبيل المثال, المنفذ 443 سوف التقاط حركة المرور TLS.
portrange
على غرار عامل تصفية المنفذ ، يحدد portrange مجموعة من المنافذ التي يتم التقاط حركة المرور عليها. لاستخدام مرشح portrange ، حدد منفذ البداية ومنفذ النهاية مفصولين بشرطة. فمثلا, البرتغال 21-23.
بوابة
يحدد عامل تصفية البوابة أنه يجب على جهاز الكمبيوتر الخاص بك فقط التقاط حركة المرور التي تستخدم اسم مضيف معين كبوابة. يجب ايجاد اسم المضيف في / الخ / تستضيف.
بث
يحدد مرشح البث أنه يجب على tcpdump فقط التقاط حركة المرور التي يتم بثها إلى جميع المضيفين على شبكة فرعية.
الإرسال المتعدد IP
يطلب هذا المرشح من tcpdump التقاط حركة مرور الإرسال المتعدد فقط على الشبكة الفرعية للجهاز المضيف.
و / أو / لا المشغلين
مرشحات يمكن بالسلاسل معا باستخدام و, أو, أم لا العاملين. على سبيل المثال ، لالتقاط كل حركة مرور الويب على مضيف معين ، يمكنك استخدام عامل التصفية المنفذ 80 أو المنفذ 443. أو يمكنك التقاط كل حركة المرور على شبكة فرعية معينة باستثناء حزم البث باستخدام عامل التصفية صافي 192.168.1.0/24 وليس البث.
من الشائع جدًا استخدام عوامل التصفية في الممارسة العملية نظرًا لأنها توفر طبقة إضافية من التفاصيل لمقاطعك. يمكنك التقاط حركة المرور التي تحتاجها بالضبط ، دون الكثير من ثرثرة الشبكة الإضافية.
التعبيرات المعقدة مع العديد من العوامل
يمكن بناء تعبيرات أكثر تعقيدًا من خلال المحيطة بعمليات متعددة في فواصل عليا وأقواس واحدة. على سبيل المثال ، يمكنك مراقبة كل حركة مرور البريد ، بما في ذلك SMTP و IMAP و IMAP عبر TLS و POP3 و POP3 عبر TLS ، عبر مضيفين وشبكات فرعية متعددة ، باستخدام أمر مثل هذا:
tcpdump “(المضيف 10.0.0.1 و net 192.168.1.0/24) و ((المنفذ 25 أو المنفذ 143 أو المنفذ 443 أو المنفذ 993 أو المنفذ 995))”
يمكن أن تكون التعبيرات المعقدة التي تحتوي على عوامل تشغيل متعددة مفيدة للغاية ، ولكن يتم حفظها عادةً في ملف عامل تصفية لإعادة استخدامها لأن خطأ مطبعي واحد سيؤدي إلى فشل الالتقاط. في كثير من الأحيان ، سوف يحتاجون إلى الاستعداد في وقت مبكر وتصحيح الأخطاء.
باستخدام ملفات الترشيح ل tcpdump
يمكن تشغيل المرشحات أعلاه في سطر الأوامر عند بدء تشغيل tcpdump ، ولكن من المفيد في كثير من الأحيان إنشاء ملف عامل تصفية. يسهل ملف عامل التصفية إعادة إنتاج إعدادات المرشح بين اللقطات لأنها قابلة لإعادة الاستخدام. فيما يلي خطوات الكتابة واستخدام ملف عامل التصفية.
اكتب ملف الفلتر
تستخدم ملفات الفلتر نفس الترميز مثل سطر الأوامر. لا يحتاجون إلى أي أحرف خاصة أو أرقام سحرية في الجزء العلوي من الملف.
على سبيل المثال ، إليك ملف عامل تصفية قمت بكتابته سيصطحب جميع زيارات الويب الصادرة من خادم Apache إلى مضيف معين. في هذه الحالة ، جهاز Chromebook الذي أكتبه.
طالما أن الملف قابل للقراءة من قبل المستخدم الذي يقوم بتشغيل tcpdump ، فسيحاول البرنامج تحليل كل شيء في ملف المرشح واستخدامه كمرشح صالح. عندما يتم استخدام ملف عامل التصفية جنبًا إلى جنب مع تصفية سطر الأوامر ، سيتم تجاهل كل عمليات تصفية سطر الأوامر.
إرشاد tcpdump لاستخدام أي ملف تصفية معين باستخدام -F خيار سطر الأوامر ، يليه المسار إلى الملف. في المثال أعلاه ، يوجد ملف عامل التصفية في نفس الدليل الذي أقوم بتنفيذ tcpdump فيه.
وإليك الناتج الخام من الجلسة التي تمت تصفيتها. يمكنك أن ترى أن الحزم التي يتم تسجيلها فقط تنشأ على المنفذ 80 أو 443, وتكون صادرة إلى المضيف في 192.168.1.181.
بمجرد أن ترى عامل التصفية الخاص بك يعمل على النحو المنشود ، التقط جلسة ليتم تحليلها باستخدام Wireshark باستخدام أمر مشابه لهذا:
sudo tcpdump -i eth0 -s 0 -w wireshark.pcap -F filter-file
Wireshark و tcpdump
ما لم تكن تقوم بتشغيل مفتاح مُدار بواسطة منفذ إدارة ، فستحتاج عاجلاً أم آجلاً إلى التقاط حركة المرور على خادم بعيد. عندما لا يقوم Wireshark بمفرده بهذه المهمة ، فإن Wireshark مع tcpdump هو خيار شائع. يعمل الاثنان جيدًا معًا ، وباستخدام بعض خيارات سطر الأوامر البسيطة ، ستصدر tcpdump جلسات التقاط يمكن تحليلها بسهولة في Wireshark.
pdump:
tcpdump -i eth0 -w traffic.pcap
هذا الأمر يقوم بتشغيل tcpdump على واجهة eth0 ويحفظ حركة المرور الملتقطة في ملف traffic.pcap. يمكن استبدال eth0 بواجهة الشبكة الخاصة بك. يمكنك أيضًا تحديد عدد الحزم التي يجب التقاطها باستخدام خيار -c. على سبيل المثال:
tcpdump -i eth0 -c 100 -w traffic.pcap
هذا الأمر يقوم بتقديم 100 حزمة فقط ويحفظها في ملف traffic.pcap. نسخ جلسة tcpdump للتحليل بمجرد الانتهاء من التقاط حركة المرور باستخدام tcpdump ، يمكنك نسخ جلسة tcpdump إلى جهاز الكمبيوتر المحلي لتحليلها باستخدام Wireshark. يمكن القيام بذلك باستخدام الأمر التالي:
scp root@remote_host:/root/traffic.pcap /local/directory/
هذا الأمر يقوم بنسخ ملف traffic.pcap من الكمبيوتر البعيد إلى الدليل المحلي /local/directory/. تحليل جلسة tcpdump التي تم التقاطها باستخدام Wireshark بمجرد نسخ جلسة tcpdump إلى جهاز الكمبيوتر المحلي ، يمكنك فتحها باستخدام Wireshark. يمكنك القيام بذلك باستخدام الأمر التالي:
wiresh