logo

كيفية التحقق من المنافذ المفتوحة في لينكس

باختصار، سوف نقوم بوصف المنافذ الموجودة داخل شبكة الكمبيوتر، كما سنتحدث عن كيفية إدراج كل منفذ مفتوح في Linux.

يمكن تعريف المنفذ على أنه كيان منطقي في مصطلحات شبكات الكمبيوتر والبرامج.

إنه بمثابة نقطة نهاية اتصال لتحديد عملية أو تطبيق معين على الشبكة نظام التشغيل لينكس . المنفذ هو 16 بت (س إلى 65535) الرقم الذي يميز تطبيقًا واحدًا عن التطبيقات الأخرى على الأنظمة النهائية المختلفة.

اثنان من أشهر بروتوكولات النقل عبر الإنترنت، بروتوكول مخطط بيانات المستخدم (UDP) و بروتوكول التحكم في الإرسال (TCP) وتطبق البروتوكولات الأخرى أرقام المنافذ للعديد من جلسات الاتصال (أرقام منفذ الوجهة والمصدر جنبًا إلى جنب مع عناوين IP الوجهة والمصدر).

مزيج من البروتوكول والمنفذ وعنوان IP مثل تكب / يو دي بي يسمى أ قابس كهرباء. من الضروري أن يكون لجميع الخدمات مقبس محدد.

صفوف جافا

فئات الميناء

وتنقسم هذه المنافذ إلى ثلاث فئات لسهولة الاستخدام لأن تنوع المنافذ كبير. يتم تصنيف جميع الفئات على أنها نطاق قيمة المنفذ:

0-1023: هذه المنافذ معروف ودعا 'نظام' الموانئ. وهي مخصصة لعمليات النظام التي توفر مجموعة كبيرة من خدمات الشبكة. يجب أن تتمتع العملية بامتيازات المستخدم المتميز للربط بأي منها 'معروف' ميناء.

1024-49151: هذه المنافذ 'مسجل' ودعا 'مستخدم' الموانئ. يتم تعيينهم عبر IANA لخدمات فريدة من نوعها. قد يكون لعملية المصادقة لهم عند الطلب. ولا يحتاج إلى أي امتياز من المستخدم المتميز لاستخدام هذه المنافذ في معظم حالات الأنظمة.

49152-65535: هذه المنافذ 'متحرك' ودعا 'خاص' الموانئ. لا يمكن التسجيل معهم IANA. هذه الأنواع من المنافذ مفتوحة للاستخدام في الخدمات المخصصة والخاصة ويمكن أيضًا تخصيصها كمنافذ مؤقتة (المعروفة باسم قصير الأمد المنافذ المطبقة بواسطة IP) تلقائيًا.

هناك العديد من الطرق للتحقق من المنافذ المفتوحة في Linux. افتراضيًا، سيتم إغلاق المنفذ ما لم يتم تطبيقه من قبل أي تطبيق. يجب تعيين منفذ لعملية أو خدمة إذا كان مفتوحًا.

فتح قائمة المنافذ

من الأسهل معرفة المنفذ المستخدم بدلاً من معرفة المنفذ المفتوح. وبالتالي، سيوفر القسم أدناه طرقًا لإدراج كل منفذ قيد الاستخدام حاليًا.

هناك العديد من الأدوات الموجودة لهذه المهمة في Linux. معظمها متاح مدمج في توزيعة لينكس.

قد يكون التعرف على المنفذ المفتوح حاليًا مفيدًا في العديد من السيناريوهات. من الممكن تحديد منفذ مخصص لتطبيق مضمون. قد يكون المنفذ المفتوح مؤشرًا قويًا للتطفل داخل الشبكة.

يتم استخدام الأساليب على أوبونتو 20.04 إل تي إس والتي تم ذكرها أدناه.

قم بإدراج المنافذ والبروتوكولات المفتوحة باستخدام ملف /etc/services

الملف، أي / الخ / الخدمات يحتوي على تفاصيل حول الخدمات قيد التشغيل (حاليًا). وهو ملف كبير.

 $cat /etc/services | less 

كيفية التحقق من المنافذ المفتوحة في لينكس

قائمة المنافذ المفتوحة مع netstat

ال netstat يمكن وصف الأداة بأنها أداة مساعدة لعرض اتصالات الشبكة لجداول التوجيه وTCP والعديد من واجهات الشبكة. كما أنه يسهل إحصائيات بروتوكول الشبكة. يمكننا إدراج كل منفذ مفتوح للنظام باستخدام أداة netstat.

يمكننا تنفيذ الأمر أدناه:

 $ netstat -atu 

كيفية التحقق من المنافذ المفتوحة في لينكس

دعونا نشرح بسرعة تفاصيل كل علامة استخدمناها في الأمر أعلاه:

1. أ: تُعلم هذه العلامة netstat بعرض كل مأخذ توصيل.

2. ر: تُعلم هذه العلامة netstat بإدراج منافذ TCP.

3. في: تُعلم هذه العلامة netstat بإدراج منافذ UDP.

ال netstat الأمر له صيغة أخرى مذكورة أدناه:

 $ netstat -lntu 

كيفية التحقق من المنافذ المفتوحة في لينكس

هناك علامتان جديدتان في الأمر أعلاه وهو موضح على النحو التالي:

1. ل: تُعلم هذه العلامة netstat بطباعة مآخذ التوصيل فقط.

2. ن: تُعلم هذه العلامة netstat بإظهار رقم المنفذ.

يمكننا استخدام العلم، أي، '-ص' لإظهار معرف العملية (PID) الذي يستخدم أي منفذ.

 $ netstat -lntup 

كيفية التحقق من المنافذ المفتوحة في لينكس

تحقق من المنافذ المفتوحة محليًا

يتوفر الأمر netstat على كل نظام تشغيل للكمبيوتر لمراقبة اتصالات الشبكة. يطبق الأمر أدناه netstat لعرض كل منفذ استماع باستخدام بروتوكول TCP:

 netstat -lt 

كيفية التحقق من المنافذ المفتوحة في لينكس

دعنا نحدد بإيجاز العلامات الموجودة في الأمر أعلاه:

1.-ل: وهو يسرد منافذ الاستماع.

2.-ر: وهو يحدد بروتوكول TCP.

يتم ترتيب النتيجة بشكل جيد في أعمدة تعرض البروتوكول، والحزم المرسلة والمستقبلة، وحالة المنفذ، وعناوين IP البعيدة والمحلية، والصديقة للإنسان.

إذا قمنا بتعديل بروتوكول TCP لبروتوكول UDP، فسيظهر الإخراج المنافذ المفتوحة فقط. ستظهر النتيجة دون وصف الحالة بسبب التناقض مع بروتوكول TCP.

قائمة فارغة جافا
 netstat -lu 

كيفية التحقق من المنافذ المفتوحة في لينكس

يمكننا تجاهل وصف البروتوكولات وتطبيق الخيار --listen أو -l فقط للحصول على تفاصيل حول كل منفذ يستمع بحرية للبروتوكول:

 netstat --listen 

كيفية التحقق من المنافذ المفتوحة في لينكس

سيعرض الخيار أعلاه تفاصيل بروتوكولات مأخذ توصيل Unix وUDP وTCP.

يعرض كل مثال أعلاه كيفية طباعة التفاصيل عبر منافذ الاستماع دون اتصالات معتمدة. تعرض الأوامر أدناه كيفية إظهار منافذ الاستماع والاتصالات المعتمدة.

 netstat -vatn 

كيفية التحقق من المنافذ المفتوحة في لينكس

أين:

1 في: يتم استخدامه للإسهاب.

2.-أ: يعرض الاتصالات النشطة.

3.-ر: يعرض اتصالات TCP.

4.-ن: يعرض المنافذ (القيمة العددية).

لنفترض أننا تعرفنا على عملية مشبوهة داخل نظامنا ونرغب في التحقق من المنافذ ذات الصلة بها. يمكننا استخدام الأمر lsof الذي يُستخدم لإدراج الملفات المفتوحة المرتبطة بالعمليات.

 lsof -i 4 -a -p 

أين،

1.-ط: وهو يسرد الملفات المتعاونة مع الإنترنت، و 6 الخيار موجود ل IPv6، و ال 4 تعليمات الخيار للطباعة فقط IPv4.

2.-أ: يأمر أن تكون النتيجة أنت أعطيت.

3.-ص: يحدد رقم PID للعملية التي نرغب في التحقق منها.

قائمة المنافذ المفتوحة مع ss

ال سس يمكن تحديد الأداة كأداة مساعدة للتحقق من المقبس. استخدام هذه الأداة هو نفسه netstat يأمر.

يمكننا تشغيل الأمر أدناه لإدراج المنافذ المفتوحة:

 $ ss -lntu 

كيفية التحقق من المنافذ المفتوحة في لينكس

الأعلام المذكورة أعلاه هي نفسها netstat يأمر. الوظائف التي تم وصفها بواسطة أداة ss هي نفسها أيضًا.

1. ل: تُعلم هذه العلامة ss بعرض مآخذ التوصيل.

2. ن: تُعلم هذه العلامة ss بعدم محاولة إنهاء أسماء الخدمات.

3. ر: تُعلم هذه العلامة ss بعرض مآخذ توصيل TCP.

4. في: تُعلم هذه العلامة ss بعرض مآخذ توصيل UDP.

قائمة المنافذ المفتوحة مع lsof

يمكن استخدام الأمر lsof لسرد الملفات المفتوحة. ولكن يمكن استخدامه لعرض المنافذ المفتوحة أيضًا.

يمكننا تنفيذ الأمر التالي:

 $ lsof -i 

كيفية التحقق من المنافذ المفتوحة في لينكس

للحصول على المنافذ المفتوحة لبروتوكول معين (UDP، TCP، إلخ)، قم بتحديدها بعد استخدام الأمر '-أنا' العلم، يمكننا تنفيذ الأمر التالي:

 $ lsof -i 

قائمة المنافذ المفتوحة باستخدام nmap

يمكن تعريف الأمر nmap بأنه أمر قوي لفحص المنفذ/الأمان واستكشاف الشبكة. ويمكنه أيضًا الإبلاغ عن كل منفذ مفتوح داخل النظام.

يمكننا تنفيذ الأمر التالي لإدراج منافذ TCP المفتوحة.

 $ sudo nmap -sT -p- localhost 

كيفية التحقق من المنافذ المفتوحة في لينكس

وهناك قسمان لهذا الأمر المذكور أعلاه:

1.-ست: يقوم بإبلاغ أداة nmap للمسح الضوئي برنامج التعاون الفني الموانئ.

2. -ص-: يقوم بإعلام أداة nmap لمسح كل ملف 65535 الموانئ. ستقوم أداة nmap بالمسح الضوئي 1000 المنافذ افتراضيًا فقط إذا لم يتم استخدامها.

إذا أردنا إدراج المنافذ المفتوحة لـ UDP، فيمكننا تنفيذ الأمر التالي:

 $ sudo nmap -sU -p- localhost 

كيفية التحقق من المنافذ المفتوحة في لينكس

يمكننا أيضًا تنفيذ الأمر التالي للحصول على منفذي UDP وTCP:

 $ sudo nmap -n -PN -sT -sU -p- localhost 

كيفية التحقق من المنافذ المفتوحة في لينكس

قائمة المنافذ المفتوحة باستخدام netcat

يمكن وصف أداة netcat بأنها أداة مساعدة لسطر الأوامر لقراءة البيانات وكتابتها عبر العديد من اتصالات الشبكة على بروتوكولات UDP وTCP. كما يمكن استخدامه لسرد المنافذ المفتوحة. يمكن لهذه الأداة تنفيذ الاختبارات عبر منفذ معين أو مجموعة متنوعة من المنافذ.

يتم استخدام الأمر netcat أدناه لفحص المنفذ من 1-1000. افتراضيًا، سيتم تنفيذ الفحص عبر بروتوكول TCP:

 $ nc -z -v localhost 1-1000 

كيفية التحقق من المنافذ المفتوحة في لينكس

كما يمكن توسيعه ليشمل القائمة الكاملة لمنافذ معينة:

 $ nc -z -v localhost 1-65535 

كيفية التحقق من المنافذ المفتوحة في لينكس

دعونا نحصل على تفاصيل هذه الأعلام بسرعة.

1. من: يقوم بإبلاغ الأمر netcat لفحص المنافذ المفتوحة فقط، دون نقل أي بيانات.

2 بوصة: يقوم بإعلام أمر netcat للتشغيل في الوضع المطول.

هندسة الخلية

يمكننا تصفية النتيجة بمساعدة grep لمدة معينة 'نجح' للحصول على المنافذ المفتوحة فقط من خلال هذه القائمة.

 $ nc -z -v 127.0.0.1 20-80 | grep succeeded 

كيفية التحقق من المنافذ المفتوحة في لينكس

إذا أردنا تنفيذ الفحص عبر بروتوكول UDP، فإن . يمكننا أن ندرج '-في' علَم.

 $ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded