एंड्रॉयड

लिनक्स में खुले बंदरगाहों के लिए जांच (स्कैन) कैसे करें

कैसे netstat और nmap का उपयोग कर खुला बंदरगाहों के लिए स्कैन करने के लिए (ubuntu, लिनक्स टकसाल)

कैसे netstat और nmap का उपयोग कर खुला बंदरगाहों के लिए स्कैन करने के लिए (ubuntu, लिनक्स टकसाल)

विषयसूची:

Anonim

चाहे आप नेटवर्क कनेक्टिविटी समस्याओं का निवारण कर रहे हों या फ़ायरवॉल को कॉन्फ़िगर करने के लिए जाँच करने के लिए पहली चीजों में से एक है कि आपके सिस्टम पर वास्तव में पोर्ट क्या खोले गए हैं।

यह आलेख यह पता लगाने के लिए कि आपके लिनक्स सिस्टम पर बाहर से क्या पोर्ट खोले गए हैं, कई दृष्टिकोणों का वर्णन करता है।

ओपन पोर्ट क्या है

एक श्रवण पोर्ट एक नेटवर्क पोर्ट है जो एक एप्लिकेशन को सुनता है। आप ss , netstat या lsof जैसी कमांड के साथ नेटवर्क स्टैक को क्वेरी करके अपने सिस्टम पर लिसनिंग पोर्ट की सूची प्राप्त कर सकते हैं। प्रत्येक सुनने वाला पोर्ट फायरवॉल का उपयोग करके खुला (बंद) किया जा सकता है।

सामान्य शब्दों में, एक खुला बंदरगाह एक नेटवर्क पोर्ट है जो दूरस्थ स्थानों से आने वाले पैकेट को स्वीकार करता है।

उदाहरण के लिए, यदि आप एक वेब सर्वर चला रहे हैं जो पोर्ट्स 80 और 443 पर सुनता है और वे पोर्ट आपके फ़ायरवॉल पर खुले हैं, तो किसी को भी (ब्लॉक किए गए ips को छोड़कर) अपने ब्राउज़र का उपयोग करके अपने वेब सर्वर पर होस्ट की गई वेब साइटों तक पहुँचने में सक्षम होंगे। इस मामले में, 80 और 443 दोनों खुले बंदरगाह हैं।

खुले बंदरगाह सुरक्षा जोखिम पैदा कर सकते हैं क्योंकि प्रत्येक खुले बंदरगाह का उपयोग हमलावरों द्वारा भेद्यता का फायदा उठाने या किसी अन्य प्रकार के हमले करने के लिए किया जा सकता है। आपको केवल अपने आवेदन की कार्यक्षमता के लिए आवश्यक पोर्ट को उजागर करना चाहिए और अन्य सभी पोर्ट को बंद करना चाहिए।

nmap साथ ओपन पोर्ट्स की जाँच करें

Nmap एक शक्तिशाली नेटवर्क स्कैनिंग उपकरण है जो सिंगल होस्ट और बड़े नेटवर्क को स्कैन कर सकता है। यह मुख्य रूप से सुरक्षा ऑडिट और पैठ परीक्षण के लिए उपयोग किया जाता है।

यदि उपलब्ध है, तो पोर्ट स्कैनिंग के लिए nmap आपका पहला उपकरण होना चाहिए। पोर्ट स्कैनिंग के अलावा nmap मैक एड्रेस, ओएस टाइप, कर्नेल वर्जन और भी बहुत कुछ पता लगा सकता है।

कंसोल से जारी निम्न आदेश निर्धारित करता है कि नेटवर्क से टीसीपी कनेक्शन के लिए कौन से पोर्ट सुन रहे हैं:

sudo nmap -sT -p- 10.10.8.8

-sT TCP पोर्ट और -p- लिए स्कैन करने के लिए सभी 65535 बंदरगाहों के लिए स्कैन करने के लिए nmap को बताता है। अगर -p- का उपयोग नहीं किया गया है तो केवल 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 बजाय -sU उपयोग करें:

sudo nmap -sU -p- 10.10.8.8

अधिक जानकारी के लिए nmap मैन पेज पर जाएं और इस टूल के अन्य सभी शक्तिशाली विकल्पों के बारे में पढ़ें।

netcat साथ ओपन पोर्ट्स की जाँच करें

Netcat (या nc ) एक कमांड-लाइन टूल है जो टीसीपी या यूडीपी प्रोटोकॉल का उपयोग करके नेटवर्क कनेक्शन पर डेटा पढ़ और लिख सकता है।

netcat आप सिंगल पोर्ट या पोर्ट रेंज स्कैन कर सकते हैं।

उदाहरण के लिए, 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

बैश छद्म डिवाइस का उपयोग करके ओपन पोर्ट की जाँच करें

बैश शेल /dev/tcp/.. या /dev/udp/.. छद्म डिवाइस का उपयोग करके यह जांचने का एक अन्य तरीका है कि एक निश्चित पोर्ट खुला है या बंद है।

जब /dev/$PROTOCOL/$HOST/$IP छद्म-उपकरण पर एक कमांड निष्पादित करते हैं, तो बैश निर्दिष्ट पोर्ट पर निर्दिष्ट होस्ट के लिए एक टीसीपी या यूडीपी कनेक्शन खोल देगा।

निम्नलिखित अगर..बल्कि कथन जाँच करेगा कि क्या kern.org पर पोर्ट 443 खुला है:

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

कोड ऊपर कैसे काम करता है?

एक छद्म डिवाइस का उपयोग करके पोर्ट से कनेक्ट होने पर डिफ़ॉल्ट समय बहुत बड़ा है इसलिए हम 5 सेकंड के लिए परीक्षण कमांड को मारने के लिए timeout कमांड का उपयोग कर रहे हैं। यदि कनेक्शन kernel.org पोर्ट 443 स्थापित है, तो परीक्षण कमांड सही वापस आ जाएगी।

आप पोर्ट रेंज की जांच के लिए लूप के लिए भी उपयोग कर सकते हैं:

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 मॉड्यूल, curl , telnet या wget उपयोग कर सकते हैं।

टर्मिनल