إذا كنت بحاجة إلى تحليل حزم الشبكات أو اعتراضها في Linux ، فمن الأفضل استخدام tcpdump أداة وحدة التحكم. لكن المشكلة تكمن في إدارة معقدة إلى حد ما. سوف يجد مستخدم عادي أن العمل مع المرفق غير مريح ، ولكن فقط للوهلة الأولى. ستخبرك المقالة عن كيفية تنظيم tcpdump ، والأصل الذي يحتوي عليه ، وكيفية استخدامه ، كما يقدم العديد من الأمثلة على استخدامه.
اقرأ أيضًا: أدلة لإعداد اتصال بالإنترنت في أوبونتو . ديبيان . خادم أوبونتو
محتوى
يتضمن معظم مطوري أنظمة التشغيل المستندة إلى Linux أداة tcpdump في القائمة المثبتة مسبقًا ، ولكن إذا لم يكن ذلك في حالة التوزيع الخاصة بك ، فيمكنك دومًا تنزيلها وتثبيتها من خلال "المحطة الطرفية" . إذا كان نظام التشغيل الخاص بك يستند إلى Debian ، وهذا هو Ubuntu و Linux Mint و Kali Linux وما شابه ، فستحتاج إلى تشغيل هذا الأمر:
sudo apt install tcpdump
عند التثبيت ، تحتاج إلى إدخال كلمة مرور. لاحظ أنه عند الكتابة ، لا يتم عرضها ، ويجب عليك إدخال الحرف "D" واضغط على Enter لتأكيد التثبيت.
إذا كان لديك Red Hat أو Fedora أو CentOS ، فسيبدو أمر التثبيت على النحو التالي:
sudo yam install tcpdump
بعد تثبيت الأداة ، يمكن استخدامها على الفور. حول هذا وأكثر سيتم مناقشة المزيد في النص.
اقرأ أيضا: دليل تركيب PHP لخادم Ubuntu
مثل أي أمر آخر ، فإن tcpdump له بنية خاصة به. معرفة ذلك ، يمكنك تعيين جميع المعلمات اللازمة التي ستؤخذ في الاعتبار عند تنفيذ الأمر. بناء الجملة كما يلي:
tcpdump опции -i интерфейс фильтры
عند استخدام الأمر ، يجب عليك تحديد واجهة التتبع. الفلاتر والخيارات ليست متغيرات إلزامية ، ولكنها تسمح بتخصيص أكثر مرونة.
على الرغم من عدم ضرورة تحديد خيار ، فأنت بحاجة إلى سرد الخيارات المتاحة. لا يعرض الجدول كل قائمتهم ، ولكن فقط الأكثر شعبية ، لكنهم أكثر من كافية لحل معظم المهام.
خيار | تعريف |
---|---|
-A | يتيح لك فرز الحزم بتنسيق ASCII |
-l | يضيف وظيفة التمرير |
-i | بعد الدخول ، يجب عليك تحديد واجهة الشبكة التي سيتم مراقبتها. لبدء تتبع كل الواجهات ، أدخل كلمة "أي" بعد الخيار |
-c | إنهاء عملية التتبع بعد التحقق من عدد الحزم المحدد |
-w | يولد ملف نصي مع تقرير التحقق |
-e | يشير إلى مستوى اتصال الإنترنت الخاص بحزمة البيانات |
-L | يخرج فقط تلك البروتوكولات التي تدعم واجهة الشبكة المحددة |
-C | ينشئ ملفًا آخر أثناء كتابة الحزمة ، إذا كان حجمها أكبر من الحجم المحدد |
-r | يفتح ملف القراءة الذي تم إنشاؤه باستخدام الخيار -w |
-j | لتسجيل الحزم ، سيتم استخدام تنسيق TimeStamp |
-J | يسمح لك بعرض جميع تنسيقات TimeStamp المتوفرة |
-G | يعمل على إنشاء ملف مع سجلات. يتطلب الخيار أيضًا قيمة مؤقتة ، وبعد ذلك سيتم إنشاء سجل جديد |
-v، -vv، -vvv | اعتمادًا على عدد الأحرف في الخيار ، سيصبح إخراج الأمر أكثر تفصيلاً (الزيادة تتناسب طرديًا مع عدد الأحرف) |
-f | يظهر الإخراج اسم مجال عنوان IP |
-F | يسمح لك بقراءة المعلومات وليس من واجهة الشبكة ، ولكن من الملف المحدد |
-D | يوضح جميع واجهات الشبكة التي يمكنك استخدامها |
-n | يلغي تنشيط عرض أسماء النطاقات |
-Z | يحدد المستخدم الذي سيقوم حسابه بإنشاء كل الملفات |
-K | تحليل اختباري مفقود |
-q | مظاهرة من المعلومات موجزة |
-H | يكتشف رؤوس 802.11s |
من أنا | تستخدم عند التقاط الحزم في وضع الشاشة |
بعد تفكيك الخيارات ، فقط أدناه سنذهب مباشرة إلى تطبيقاتهم. في غضون ذلك ، سيتم النظر في الفلاتر.
كما ذكر في بداية المقال ، يمكنك إضافة عوامل تصفية إلى بناء الجملة tcpdump. الآن سيتم النظر في الأكثر شعبية منهم:
فلتر | تعريف |
---|---|
مضيف | يحدد اسم المضيف |
شبكة | يحدد الشبكة الفرعية وشبكة IP |
الملكية الفكرية | يعمل لعنوان البروتوكول |
SRC | يعرض الحزم التي تم إرسالها من العنوان المحدد |
التوقيت الصيفي | يعرض الحزم التي تم استلامها بواسطة العنوان المحدد |
ARP، udp، tcp | تصفية بواسطة أحد البروتوكولات |
ميناء | يعرض المعلومات المتعلقة بمنفذ معين |
و ، أو | تستخدم لدمج مرشحات متعددة في أمر |
أقل ، أكبر | إخراج الحزم أصغر أو أكبر من الحجم المحدد |
يمكن دمج جميع المرشحات المذكورة أعلاه مع بعضها البعض ، لذلك عند إصدار أمر سترى فقط المعلومات التي تريد رؤيتها. من أجل فهم استخدام المرشحات أعلاه بمزيد من التفصيل ، من الجدير إعطاء أمثلة.
اقرأ أيضا: الأوامر المستخدمة بشكل متكرر في لينكس "المحطة الطرفية"
يتم الآن سرد خيارات بناء الجملة الشائعة للأمر tcpdump. لا يمكن إدراج كل منهم ، حيث يمكن أن تكون تنوعاتهم عددًا غير محدود.
من المستحسن أن يقوم كل مستخدم بالتحقق أولاً من قائمة جميع واجهات الشبكة الخاصة به التي يمكن تتبعها. من الجدول أعلاه ، نعلم أنك تحتاج إلى استخدام الخيار -D ، لذا قم بتشغيل الأمر التالي في المحطة الطرفية:
sudo tcpdump -D
على سبيل المثال:
كما ترى ، في المثال هناك ثمانية واجهات يمكنك عرضها باستخدام الأمر tcpdump. المادة سوف تعطي أمثلة مع ppp0 ، يمكنك استخدام أي دولة أخرى.
إذا كنت بحاجة إلى تتبع واجهة شبكة واحدة ، فيمكنك القيام بذلك باستخدام الخيار -i . لا تنس إدخال اسم الواجهة بعد إدخالها. في ما يلي مثال لتنفيذ أمر كهذا:
sudo tcpdump -i ppp0
ملاحظة: قبل الأمر نفسه ، تحتاج إلى إدخال "sudo" ، لأنه يتطلب حق المتميز.
على سبيل المثال:
ملاحظة: بعد الضغط على Enter في "المحطة الطرفية" ، سيتم عرض الحزم التي يتم اعتراضها باستمرار. لوقف تدفقها ، تحتاج إلى الضغط على مجموعة المفاتيح Ctrl + C.
إذا قمت بتشغيل الأمر بدون خيارات وعوامل تصفية إضافية ، فسترى التنسيق التالي لعرض الحزم المتعقبة:
22:18:52.597573 IP vrrp-topf2.p.mail.ru.https > 10.0.6.67.35482 : Flags [P.], seq 1:595, ack 1118, win 6494, options [nop,nop,TS val 257060077 ecr 697597623], length 594
حيث يتم تمييز اللون:
يحتوي بناء الجملة هذا على القدرة على الإخراج في إطار "المحطة الطرفية" دون استخدام خيارات إضافية.
كما تعلم من الجدول ، يتيح لك الخيار -v زيادة كمية المعلومات. سوف نقوم بتحليل على سبيل المثال. دعونا نتحقق من نفس الواجهة:
sudo tcpdump -v -i ppp0
على سبيل المثال:
هنا يمكنك أن ترى أن السطر التالي ظهر في الإخراج:
IP (tos 0x0, ttl 58 , id 30675, offset 0, flags [DF] , proto TCP (6) , length 52
حيث يتم تمييز اللون:
أيضا ، في بناء جملة الأمر ، يمكنك تحديد الخيار -vv أو -vvv ، والذي سيزيد من كمية المعلومات المعروضة على الشاشة.
ذكر جدول الخيارات إمكانية حفظ جميع بيانات الإخراج في ملف منفصل بحيث يمكن مشاهدتها لاحقًا. الخيار -w مسؤول عن هذا. لاستخدام بسيطة للغاية ، فقط أشر إلى الأمر ، ثم أدخل اسم ملف المستقبل مع التمديد ".pcap" . دعونا ننظر في كل على سبيل المثال:
sudo tcpdump -i ppp0 -w file.pcap
على سبيل المثال:
يرجى ملاحظة: أثناء تسجيل السجلات ، لا يتم عرض أي نص في الملف على شاشة "المحطة الطرفية".
عندما تريد عرض المخرجات المسجلة ، تحتاج إلى استخدام الخيار -r ، وبعد ذلك لكتابة اسم الملف المسجل مسبقًا. يتم استخدامه بدون خيارات وعوامل أخرى:
sudo tcpdump -r file.pcap
على سبيل المثال:
كل من هذه الخيارات مثالية عندما تحتاج إلى حفظ كميات كبيرة من النص لأغراض التحليل في وقت لاحق.
من جدول التصفية ، نعرف أن dst يسمح لك بعرض الحزم التي تم تلقيها فقط بواسطة العنوان على شاشة وحدة التحكم ، كما هو محدد في بناء جملة الأمر. وبالتالي ، من الملائم جدًا عرض الحزم التي يستلمها جهاز الكمبيوتر الخاص بك. للقيام بذلك ، تحتاج فقط إلى تحديد عنوان IP الخاص بك في الفريق:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
على سبيل المثال:
كما ترون ، بالإضافة إلى dst ، في الفريق كتبنا أيضا تصفية IP . بعبارة أخرى ، أخبرنا الكمبيوتر أنه عند اختيار الحزم ، فإنه سينتبه لعناوين IP الخاصة به ، وليس للمعلمات الأخرى.
بواسطة IP ، يمكنك تصفية وإرسال الحزم. في المثال ، نعود IP الخاص بنا. هذا هو الآن سوف نتتبع الحزم التي يتم إرسالها من جهاز الكمبيوتر الخاص بنا إلى عناوين أخرى. للقيام بذلك ، قم بتنفيذ الأمر التالي:
sudo tcpdump -i ppp0 ip src 10.0.6.67
على سبيل المثال:
كما ترون ، في بناء جملة الأمر ، قمنا بتغيير مرشح dst إلى src ، وبالتالي نقول أن الجهاز يبحث عن المرسل بواسطة IP.
قياسا على IP في الأمر ، يمكننا تحديد مرشح المضيف لإزالة الحزم مع مضيف الفائدة. أي ، في بناء الجملة ، بدلاً من عنوان IP للمرسل / المستقبل ، سيكون من الضروري تحديد مضيفه. يبدو مثل هذا:
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
على سبيل المثال:
في الصورة ، يمكنك رؤية أنه في "المحطة الطرفية" لا يتم عرض سوى الحزم التي تم إرسالها من عنوان IP الخاص بنا إلى مضيف google.com. كما ترى ، بدلاً من مضيف google ، يمكنك إدخال أي موقع آخر.
كما هو الحال مع تصفية IP ، يمكن استبدال بناء الجملة dst بـ src لرؤية الحزم التي يتم إرسالها إلى الكمبيوتر الخاص بك:
sudo tcpdump -i ppp0 src host google-public-dns-a.google.com
ملاحظة: يجب تعيين مرشح المضيف بعد dst أو src ، وإلا سيؤدي الأمر إلى حدوث خطأ. في حالة تصفية IP ، على العكس من ذلك ، يكون dst و src أمام مرشح IP.
إذا كنت بحاجة إلى استخدام عدة فلاتر في نفس الأمر ، فأنت بحاجة إلى تطبيق و / أو مرشح (حسب الحالة). من خلال تحديد الفلاتر في بناء الجملة وفصلها مع هذا المشغل ، فإنك "تجبر "هم على العمل كواحد. على سبيل المثال ، يبدو كالتالي:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 or ip src 95.47.144.254
على سبيل المثال:
من بناء جملة الأمر ، من الواضح أننا نريد أن نعرض على الشاشة "الطرفية" جميع الحزم التي تم إرسالها إلى العنوان 95.47.144.254 والحزم المستلمة من نفس العنوان. كما يمكنك تغيير بعض المتغيرات في هذا التعبير. على سبيل المثال ، بدلاً من IP ، حدد HOST أو استبدل العناوين نفسها.
عامل تصفية المنفذ مثالي عندما تحتاج إلى الحصول على معلومات حول الحزم مع منفذ معين. لذلك ، إذا كنت تريد فقط رؤية إجابات أو استعلامات نظام أسماء النطاقات ، فستحتاج إلى تحديد المنفذ 53:
sudo tcpdump -vv -i ppp0 port 53
على سبيل المثال:
إذا كنت ترغب في عرض حزم http ، فستحتاج إلى إدخال المنفذ 80:
sudo tcpdump -vv -i ppp0 port 80
على سبيل المثال:
من بين أشياء أخرى ، من الممكن تتبع نطاق المنافذ مرة واحدة. لهذا ، يتم استخدام فلتر portrange :
sudo tcpdump portrange 50-80
كما ترى ، ليس من الضروري تحديد خيارات إضافية بالاقتران مع عامل التصفية portrange . يكفي فقط لتعيين النطاق.
يمكنك أيضا عرض فقط حركة المرور التي تتوافق مع أي بروتوكول. للقيام بذلك ، تحتاج إلى استخدام اسم هذا البروتوكول كمرشح. دعونا نلقي نظرة على مثال udp :
sudo tcpdump -vvv -i ppp0 udp
على سبيل المثال:
كما يمكن رؤيته في الصورة ، بعد تنفيذ الأمر ، تم عرض الحزم فقط مع بروتوكول udp في "المحطة الطرفية" . وفقًا لذلك ، يمكنك إجراء التصفية على أخرى ، على سبيل المثال ، arp :
sudo tcpdump -vvv -i ppp0 arp
أو برنامج التعاون الفني :
sudo tcpdump -vvv -i ppp0 tcp
يساعد مشغل الشبكة على تصفية الحزم ، مع الأخذ في الاعتبار أساس تعيين شبكتهم. لاستخدامها ببساطة مثل بقية - تحتاج إلى تحديد سمة net في بناء الجملة ، ثم أدخل عنوان الشبكة. في ما يلي مثال لمثل هذا الأمر:
sudo tcpdump -i ppp0 net 192.168.1.1
على سبيل المثال:
لم نعتبر فلاتين أكثر إثارة للاهتمام: أقل وأكبر . من الجدول المزود بمرشحات ، نعلم أنها تخدم في رزم البيانات الناتج أكبر ( أقل ) أو أصغر ( أكبر ) الحجم المحدد بعد إدخال السمة.
لنفترض أننا نرغب في تتبع الحزم التي لا تتجاوز علامة 50 بت فقط ، فإن الأمر سيبدو كما يلي:
sudo tcpdump -i ppp0 less 50
على سبيل المثال:
الآن دعنا نعرض في حزم "الطرفية" التي يزيد حجمها عن 50 بت:
sudo tcpdump -i ppp0 greater 50
على سبيل المثال:
كما ترون ، يتم تطبيقها على قدم المساواة ، والفرق هو فقط في اسم مرشح.
في نهاية المقال ، يمكنك استنتاج أن الأمر tcpdump هو أداة رائعة ، يمكنك من خلالها تتبع أي حزمة بيانات يتم إرسالها عبر الإنترنت. ولكن هذا لا يكفي فقط لدخول الفريق في "المحطة" . لتحقيق النتيجة المرغوبة سيتم الحصول عليها فقط إذا كنت تستخدم كل أنواع الخيارات والفلاتر ، بالإضافة إلى مجموعاتها.