ذكري المظهر

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

طريقة الدخول على أي سويج سسكو - How open any switch cisco

طريقة الدخول على أي سويج سسكو - How open any switch cisco

جدول المحتويات:

Anonim

سواء أكنت تقوم باستكشاف مشكلات اتصال الشبكة أو تكوين جدار حماية ، فإن أحد المنافذ الأولى للتحقق هو المنافذ المفتوحة فعلاً على نظامك.

توضح هذه المقالة عدة طرق لمعرفة المنافذ المفتوحة للخارج على نظام Linux الخاص بك.

ما هو ميناء مفتوح

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

بعبارات عامة ، المنفذ المفتوح هو منفذ شبكة يقبل الحزم الواردة من المواقع البعيدة.

على سبيل المثال ، إذا كنت تقوم بتشغيل خادم ويب يستمع إلى المنفذين 80 و 443 وكانت هذه المنافذ مفتوحة على جدار الحماية الخاص بك ، فسيتمكن أي شخص (باستثناء IPs المحظور) من الوصول إلى مواقع الويب المستضافة على خادم الويب الخاص بك باستخدام متصفحه. في هذه الحالة ، كلا 80 و 443 منافذ مفتوحة.

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

تحقق فتح المنافذ مع nmap

Nmap هي أداة قوية لفحص الشبكة يمكنها مسح المضيفين والشبكات الكبيرة. وهي تستخدم أساسا لتدقيق الأمن واختبار الاختراق.

في حالة توفرها ، يجب أن تكون nmap هي الأداة الأولى عندما يتعلق الأمر بمسح المنفذ. إلى جانب منفذ المسح ، يمكن لـ nmap اكتشاف عنوان Mac ونوع نظام التشغيل وإصدارات kernel والمزيد.

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

sudo nmap -sT -p- 10.10.8.8

يخبر - -sT nmap بالبحث عن منافذ TCP و - -p- للبحث عن كافة المنافذ 65535. إذا لم يتم استخدام -p- nmap بمسح 1000 منفذ فقط.

Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

يُظهر الإخراج أعلاه أنه يتم فتح المنافذ 22 و 80 و 8069 فقط على النظام الهدف.

للبحث عن منافذ UDP استخدم -sU بدلاً من -sT :

sudo nmap -sU -p- 10.10.8.8

لمزيد من المعلومات ، تفضل بزيارة صفحة nmap man واقرأ جميع الخيارات القوية الأخرى لهذه الأداة.

تحقق منافذ مفتوحة مع netcat

Netcat (أو nc ) هو أداة سطر أوامر يمكنها قراءة وكتابة البيانات عبر اتصالات الشبكة ، باستخدام بروتوكولات TCP أو UDP.

باستخدام netcat يمكنك مسح منفذ واحد أو نطاق منفذ.

على سبيل المثال ، للبحث عن منافذ TCP المفتوحة على جهاز بعيد باستخدام عنوان IP 10.10.8.8 في النطاق 20-80 يمكنك استخدام الأمر التالي:

nc -z -v 10.10.8.8 20-80

يخبر الخيار -z nc بالمسح بحثًا عن المنافذ المفتوحة فقط ، دون إرسال أي بيانات ، بينما يكون -v لمزيد من المعلومات المطوّلة.

سيظهر الإخراج بشيء من هذا القبيل:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

للبحث عن منافذ UDP ، قم بتمرير الخيار -u إلى الأمر nc :

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

تحقق من المنافذ المفتوحة باستخدام Bash Pseudo Device

هناك طريقة أخرى للتحقق مما إذا كان منفذ معين مفتوحًا أم مغلقًا باستخدام Bash shell /dev/tcp/.. أو /dev/udp/.. جهاز زائف.

عند تنفيذ أمر موجود على /dev/$PROTOCOL/$HOST/$IP للجهاز الزائف ، سيفتح Bash اتصال TCP أو UDP للمضيف المحدد على المنفذ المحدد.

يتحقق ما يلي..else if مما إذا كان المنفذ 443 على kernel.org مفتوحًا:

if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi

Port is open

كيف يعمل الرمز أعلاه؟

المهلة الافتراضية عند الاتصال بمنفذ باستخدام جهاز زائف كبيرة ، لذلك نحن نستخدم أمر timeout لقتل أمر الاختبار بعد 5 ثوان. إذا تم تأسيس الاتصال إلى kernel.org المنفذ 443 فإن أمر الاختبار سيعود إلى حقيقة.

يمكنك أيضًا استخدام حلقة for للتحقق من وجود نطاق منفذ:

for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done

سيظهر الإخراج بشيء من هذا القبيل:

port 22 is open port 80 is open

استنتاج

لقد أظهرنا لك العديد من الأدوات التي يمكنك استخدامها للبحث عن المنافذ المفتوحة. هناك أيضًا أدوات مساعدة وأساليب أخرى للبحث عن المنافذ المفتوحة ، على سبيل المثال ، يمكنك استخدام وحدة socket Python أو curl أو telnet أو wget .

طرفية