पोर्ट स्कैनर
लगभग बीस जाने-माने पोर्ट, हर एक पर एक TCP कनेक्ट, sysosx के सर्वर से — और दो नहीं, तीन ईमानदार जवाब। कोई पोर्ट खुला हो सकता है (कुछ जवाब देता है), बंद हो सकता है (होस्ट सक्रिय रूप से मना करता है), या फ़िल्टर किया गया हो सकता है (ख़ामोशी — आम तौर पर एक फ़ायरवॉल जो पैकेट गिरा रहा है, यह सबूत नहीं कि वहाँ कुछ नहीं है)। डिफ़ॉल्ट लक्ष्य scanme.nmap.org है, वह सार्वजनिक होस्ट जिसे nmap प्रोजेक्ट ठीक इसलिए चलाता है ताकि लोग स्कैनिंग सीख सकें; किसी अन्य होस्ट के लिए, अपने ख़ुद के सर्वर या जिन्हें परखने का आपको अधिकार है, उन्हें स्कैन करें।
चाहते हैं कि इस पर लगातार नज़र रखी जाए? myeventwatch के साथ इसे मुफ़्त में मॉनिटर करें — समाप्ति और डाउनटाइम अलर्ट, कोई कार्ड ज़रूरी नहीं।
स्कैन क्या मापता है
पोर्ट स्कैन को अक्सर “यह जाँचना कि कौन-से दरवाज़े खुले हैं” कहा जाता है, और यह रूपक उपयोगी होने लायक़ सटीक है — बस एक सुधार के साथ। कोई दरवाज़ा खुला हो सकता है, बंद हो सकता है, या बस जवाबहीन हो सकता है: खटखटाकर कुछ न सुनना, दरवाज़ा बंद पाने के बराबर नहीं है, और जो स्कैनर केवल खुला और बंद बताता है वह तीसरे मामले को छिपा रहा है। इसलिए यह स्कैनर खुला, बंद और फ़िल्टर किया गया को तीन अलग-अलग अवस्थाओं के रूप में बताता है। खुला का मतलब है कनेक्ट सफल हुआ, इसलिए कोई सेवा सुन रही है और कनेक्शन स्वीकार कर रही है। बंद का मतलब है होस्ट ने रीसेट भेजा — वह जीवित है और उस पोर्ट पर उसके पास कुछ नहीं है। फ़िल्टर किया गया का मतलब है कि पूरे एक सेकंड का इंतज़ार ख़ामोशी में बीत गया, जो बाहर से पैकेट गिराते फ़ायरवॉल का रूप है; उस पोर्ट के पीछे उस फ़ायरवॉल के पीछे कोई सेवा हो सकती है, और स्कैन इसके विपरीत नहीं कह सकता। फ़िल्टर किए गए को अलग रखना ही वह अंतर है जो कार्रवाई योग्य परिणाम और चुपचाप गुमराह करने वाले परिणाम के बीच होता है।
यह स्कैन जानबूझकर संकीर्ण है। यह लगभग बीस पोर्टों की एक निश्चित सूची — वेब (80, 8080, 8443, 443), मेल (25, 110, 143, 993, 995), DNS (53), दूरस्थ पहुँच (22, 23, 3389, 5900), फ़ाइल साझाकरण (445), डेटाबेस (3306, 5432, 27017) और कुछ अन्य — को सादे TCP कनेक्ट से और कुछ नहीं, परखता है। कोई बैनर पठन नहीं, इसलिए स्कैन कभी किसी सेवा का संस्करण नहीं जानता (या लीक नहीं करता); कोई UDP नहीं, जिसके “फ़िल्टर किए गए” जवाब कहीं ज़्यादा शोर वाले होते हैं; और अपने ख़ुद के पोर्ट देने का कोई तरीक़ा नहीं, क्योंकि मनमाना-पोर्ट इनपुट पहली-झलक वाले टूल को एक सामान्य मैपिंग सेवा में बदल देता है। लक्ष्य ख़ुद एक बार ही रिज़ॉल्व होता है और हर कनेक्ट उस एक तय पते पर जाता है, इसलिए स्कैन के बीच में बदलने वाला नाम जाँचों को कहीं और नहीं भेज सकता। अंदर से, यह पेज sysosx के सर्वर पर GET /api/check/port-scan को कॉल करता है, जो बीस कनेक्ट समानांतर चलाता है और परिणाम को दस मिनट के लिए कैश करता है।
परिणाम कैसे पढ़ें
खुले पोर्टों से शुरू करें — वे असली हमले की सतह हैं, वे सेवाएँ जिन तक इंटरनेट पहुँच सकता है। खुला 22 या 3389 का मतलब है कि दूरस्थ पहुँच कहीं से भी पहुँच योग्य है, जो इरादतन हो सकता है (एक सर्वर जिसका आप प्रबंधन करते हैं) या वह पहली चीज़ हो सकती है जिसे अपने ख़ुद के पतों तक सीमित करना चाहिए। इंटरनेट की ओर मुँह किए खुला डेटाबेस पोर्ट (3306, 5432, 27017) लगभग कभी इरादतन नहीं होता और तुरंत ध्यान देने योग्य है: डेटाबेस तक ऐप्लिकेशन पहुँचें, इसके लिए वे बने हैं, पूरे इंटरनेट के लिए नहीं। खुले 80 और 443 वेब सर्वर के लिए सामान्य हैं; खुले मेल पोर्ट मेल सर्वर के लिए सामान्य हैं; खुला हुआ बाक़ी सब कुछ ख़ुद को समझा सकना चाहिए। बंद पोर्टों को कुछ नहीं चाहिए: होस्ट जीवित है और मना कर रहा है, जो अधिकांश सर्वरों पर सूची के अधिकांश के लिए अपेक्षित अवस्था है। फ़िल्टर किए गए पोर्ट तभी दूसरी नज़र के योग्य हैं जब आप वहाँ कुछ होने की उम्मीद कर रहे थे — कोई सेवा जो आप चलाते हैं और जिसे स्कैन नहीं देख सकता, वह आम तौर पर अपना काम करता फ़ायरवॉल नियम होता है, या ग़लत इंटरफ़ेस से जुड़ी सेवा होती है, और अकेला स्कैन इन दोनों में अंतर नहीं बता सकता। बिल्कुल भी खुले पोर्ट न होने वाला परिणाम एक सामान्य परिणाम है, त्रुटि नहीं: इसका मतलब है कि इस सर्वर के सुविधाजनक बिंदु से बीस आम सेवाओं में से कोई भी पहुँच योग्य नहीं है, और बिल्कुल यही एक मज़बूत किए गए होस्ट का रूप है।
संबंधित टूल: जब आपको पता चल जाए कि 443 खुला है तो उसकी TLS व्यवस्था के लिए SSL ग्रेडर, पहुँच योग्यता और रिकॉर्ड एक साथ देखने के लिए वेबसाइट हेल्थ चेक, और जब सवाल यह हो कि कोई नाम किधर इशारा करता है न कि उस पर क्या जवाब देता है, तो DNS प्रसार चेकर।
आगे पढ़ें: खुले पोर्ट किसी सर्वर के बारे में क्या कहते हैं — किसी स्कैन को एक ऑपरेटर की तरह कैसे पढ़ें, कौन-से खुले पोर्ट सामान्य हैं और कौन-से रात 3 बजे के पेज के होने का इंतज़ार कर रहे हैं।
अक्सर पूछे जाने वाले प्रश्न
यह nmap चलाने से कैसे अलग है?
Nmap सब कुछ, हर तरह से स्कैन करता है: पूरे पोर्ट रेंज, UDP, संस्करण पहचान, ऑपरेटिंग सिस्टम फ़िंगरप्रिंटिंग। यह टूल sysosx के सर्वर से एक संकीर्ण चीज़ करता है — लगभग बीस जाने-माने पोर्टों की एक निश्चित सूची पर TCP कनेक्ट, और कुछ नहीं। कोई बैनर पठन नहीं, कोई संस्करण पहचान नहीं, कोई UDP नहीं, कोई कस्टम पोर्ट नहीं। वही संकीर्णता ही बात है: यह “आम पोर्टों पर क्या सुन रहा है?” का जवाब देता है, बिना ऐसा सामान्य-उद्देश्य स्कैनर बने जिसे कोई भी किसी भी चीज़ पर निशाना बना सके।
खुला, बंद और फ़िल्टर किया गया का असल में क्या मतलब है?
खुला का मतलब है कि एक TCP कनेक्ट सफल हुआ — कुछ उस पोर्ट पर सुन रहा है और कनेक्शन स्वीकार कर रहा है। बंद का मतलब है कि होस्ट ने कनेक्शन को सक्रिय रूप से मना कर दिया (एक रीसेट पैकेट), जो किसी जीवित होस्ट के जवाब देने का तरीक़ा है जिसके पास उस पोर्ट पर कुछ नहीं है। फ़िल्टर किया गया का मतलब है कि पोर्ट ने एक सेकंड के भीतर बिल्कुल कोई जवाब नहीं दिया — आम तौर पर एक फ़ायरवॉल जो चुपचाप पैकेट गिरा रहा है। फ़िल्टर किया गया बंद नहीं है: किसी फ़िल्टर किए गए पोर्ट के पीछे फ़ायरवॉल के पीछे कोई सेवा हो सकती है, और एकमात्र ईमानदार कथन “कोई जवाब नहीं” है। परिणाम तालिका ठीक इसी कारण तीनों अवस्थाओं को अलग रखती है।
सिर्फ़ बीस पोर्ट ही क्यों, और मैं अपने पोर्ट क्यों नहीं जोड़ सकता?
क्योंकि मनमाना-पोर्ट इनपुट वाला पोर्ट स्कैनर इंटरनेट पर किसी भी होस्ट को मैप करने का टूल है, और यह साइट वह नहीं बनेगी। यह सूची पहली झलक के लिए मायने रखने वाले पोर्टों को कवर करती है — वेब, मेल, DNS, डेटाबेस, दूरस्थ पहुँच, फ़ाइल साझाकरण — और सर्वर इसके बाहर की हर चीज़ को मना कर देता है। अगर आपको अपने ख़ुद के होस्ट का पूरा स्कैन चाहिए, तो nmap को अपनी ख़ुद की मशीन से चलाएँ, जहाँ दायरा और परिणाम आपके नियंत्रण में होते हैं।
scanme.nmap.org डिफ़ॉल्ट क्यों है?
क्योंकि यह ठीक इसी उद्देश्य के लिए मौजूद है: nmap प्रोजेक्ट इसे एक सार्वजनिक लक्ष्य के रूप में चलाता है जिसे कोई भी स्कैन कर सकता है, ताकि लोग सीख सकें कि स्कैनिंग कैसे काम करती है। यह इंटरनेट पर एकमात्र ऐसा होस्ट है जहाँ स्कैनिंग के लिए अनुमति पर चर्चा की ज़रूरत नहीं पड़ती। किसी अन्य होस्ट के लिए नियम सरल है: अपने ख़ुद के सर्वर, जिन सर्वरों को परखने का आपको अधिकार है, या सार्वजनिक परीक्षण लक्ष्यों को स्कैन करें — कभी किसी अजनबी के इन्फ़्रास्ट्रक्चर को नहीं।
परिणाम दस मिनट के लिए कैश क्यों होता है, और प्रति घंटे सिर्फ़ पाँच नए स्कैन क्यों?
एक स्कैन बीस समानांतर TCP कनेक्ट होते हैं, एक हैंडशेक नहीं, इसलिए इसकी लागत अन्य जाँचों से ज़्यादा होती है और बड़े पैमाने पर जाँच के लिए इसका दुरुपयोग आसान होता है। दस मिनट की कैशिंग का मतलब है कि उसी होस्ट की दोहराई गई जाँच की लागत शून्य होती है, और नए स्कैन की सख़्त सीमा (प्रति आगंतुक प्रति घंटे पाँच, अधिकतम प्रति मिनट दो) इस टूल को अपने ख़ुद के सर्वरों की जाँच करने वाले इंसान के लिए उपयोगी बनाए रखती है, बिना इसे जाँच सेवा बनाए। कैश किए गए परिणाम को ऐसा ही लेबल किया जाता है; किसी होस्ट के खुले पोर्ट मिनट-दर-मिनट शायद ही बदलते हैं।