Ubuntu पर खुले पोर्ट कैसे जांचें: आवश्यक कमांड और सुरक्षा टिप्स

目次

1. परिचय

नेटवर्क प्रबंधन और सर्वर संचालन में, पोर्ट्स की स्थिति को सटीक रूप से समझना अत्यंत आवश्यक है। विशेष रूप से Ubuntu का उपयोग करते समय, यह जांचना कि कौन से पोर्ट खुले हैं और कौन से प्रोसेस उनका उपयोग कर रहे हैं, सुरक्षा को मजबूत करता है और तेज़ समस्या निवारण को सक्षम बनाता है।

यह लेख Ubuntu पर पोर्ट्स की जाँच के लिए उपयोग किए जाने वाले मूल कमांड और टूल्स को समझाता है। यह शुरुआती और मध्यवर्ती उपयोगकर्ताओं के लिए व्यावहारिक और आसान‑से‑समझने वाले चरण प्रदान करता है, इसलिए अंत तक पढ़ना न भूलें।

2. पोर्ट क्या है?

2.1 पोर्ट्स की मूल अवधारणा

पोर्ट एक वर्चुअल संचार अंत बिंदु है जिसका उपयोग कंप्यूटर और नेटवर्क डिवाइस डेटा भेजने और प्राप्त करने के लिए करते हैं। विशेष रूप से, जब कई एप्लिकेशन एक ही IP पते पर एक साथ संचार करते हैं, तो पोर्ट्स डेटा को सही एप्लिकेशन तक पहचानते और रूट करते हैं।

उदाहरण के लिए, एक वेब सर्वर HTTP ट्रैफ़िक के लिए पोर्ट 80 का उपयोग करता है। यदि वही सर्वर SSH एक्सेस की अनुमति देता है, तो वह पोर्ट 22 का उपयोग करता है। चूँकि सेवाओं को पोर्ट नंबरों द्वारा अलग किया जाता है, पोर्ट स्थिति की जाँच नेटवर्क प्रबंधन में अत्यंत महत्वपूर्ण है।

2.2 पोर्ट्स के प्रकार और भूमिकाएँ

पोर्ट्स को तीन मुख्य समूहों में वर्गीकृत किया गया है:

  1. वेल-नॉन्स पोर्ट्स (0–1023)
  • सामान्यतः उपयोग किए जाने वाले सेवाओं को सौंपे गए वैश्विक मानकीकृत पोर्ट नंबर। wp:list /wp:list

    • उदाहरण:
    • HTTP: 80
    • HTTPS: 443
    • SSH: 22
  1. रजिस्टर्ड पोर्ट्स (1024–49151)
  • विशिष्ट अनुप्रयोगों या कंपनियों द्वारा उपयोग किए जाने वाले पोर्ट्स। wp:list /wp:list

    • उदाहरण:
    • MySQL: 3306
    • PostgreSQL: 5432
  1. डायनामिक पोर्ट्स (49152–65535)
  • अनुप्रयोगों द्वारा अस्थायी रूप से उपयोग किए जाने वाले पोर्ट्स, आमतौर पर क्लाइंट‑साइड संचार में।

इस वर्गीकरण को समझने से यह निर्धारित करना आसान हो जाता है कि प्रत्येक पोर्ट नंबर किस लिए उपयोग किया जाता है।

3. Ubuntu पर पोर्ट्स कैसे जांचें

Ubuntu पोर्ट स्थिति की जाँच के लिए कई टूल्स प्रदान करता है। यह अनुभाग चार विशेष रूप से उपयोगी कमांड्स को समझाता है।

3.1 ss कमांड का उपयोग

ss कमांड Linux सिस्टमों के लिए एक शक्तिशाली नेटवर्क प्रबंधन टूल है। यह तेज़ी से चलता है और विस्तृत कनेक्शन जानकारी प्रदान करता है।

बेसिक कमांड:

sudo ss -ltn

विकल्प विवरण:

  • -l : केवल LISTEN स्थिति में पोर्ट्स दिखाता है।
  • -t : केवल TCP प्रोटोकॉल दिखाता है।
  • -n : पते और पोर्ट नंबरों को संख्यात्मक रूप में दिखाता है।

उदाहरण आउटपुट:

State       Recv-Q Send-Q      Local Address:Port        Peer Address:Port  
LISTEN      0      128              0.0.0.0:22               0.0.0.0:*

3.2 netstat कमांड का उपयोग

netstat कमांड कई वर्षों से नेटवर्क प्रबंधन टूल के रूप में व्यापक रूप से उपयोग किया गया है। हालांकि यह धीरे‑धीरे ss द्वारा प्रतिस्थापित हो रहा है, फिर भी यह कई सिस्टमों पर उपलब्ध है।

बेसिक कमांड:

sudo netstat -ltn

उदाहरण आउटपुट:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN

3.3 lsof कमांड का उपयोग

lsof विशिष्ट पोर्ट्स का उपयोग करने वाली प्रक्रियाओं की पहचान करने में उपयोगी है।

विशिष्ट पोर्ट की जाँच करें:

sudo lsof -i :80

उदाहरण आउटपुट:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   1234  www    4u   IPv4  12345 0t0      TCP *:http (LISTEN)

3.4 nmap कमांड का उपयोग

nmap एक नेटवर्क स्कैनिंग टूल है जो अक्सर सुरक्षा निदान के लिए उपयोग किया जाता है।

लोकलहोस्ट स्कैन करें:

sudo nmap localhost

उदाहरण आउटपुट:

Starting Nmap 7.80 ( https://nmap.org ) at 2024-12-21 18:00 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

मुख्य बिंदु:

  • खुले पोर्ट्स और उनके संबंधित सेवाओं की सूची दी गई है।
  • बाहरी सर्वरों को स्कैन करना संभव है, लेकिन उचित अनुमति आवश्यक है।

4. फ़ायरवॉल सेटिंग्स की जाँच

On Ubuntu, फ़ायरवॉल आमतौर पर सुरक्षा बढ़ाने के लिए उपयोग किए जाते हैं। ufw (Uncomplicated Firewall), विशेष रूप से, एक सरल फिर भी शक्तिशाली प्रबंधन टूल है जो इस उद्देश्य के लिए व्यापक रूप से उपयोग किया जाता है। यह अनुभाग ufw का उपयोग करके पोर्ट की स्थिति कैसे जाँचें और कॉन्फ़िगरेशन कैसे बदलें, यह समझाता है।

4.1 ufw स्थिति जाँचें

फ़ायरवॉल स्थिति जाँचने का कमांड:

sudo ufw status verbose

उदाहरण आउटपुट:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere

व्याख्या:

  • Status: active — दर्शाता है कि फ़ायरवॉल सक्षम है।
  • Logging: on — लॉगिंग सक्षम है और फ़ायरवॉल गतिविधि रिकॉर्ड की जा रही है।
  • Default: deny (incoming), allow (outgoing) — डिफ़ॉल्ट रूप से इनकमिंग कनेक्शन अस्वीकार किए जाते हैं, जबकि आउटगोइंग कनेक्शन की अनुमति है।
  • ALLOW — स्पष्ट रूप से अनुमति वाले पोर्ट या सेवाओं को दिखाता है (जैसे, SSH और HTTP)।

टिप:
यदि फ़ायरवॉल अक्षम है (Status: inactive), तो इसे निम्न कमांड से सक्षम करें:

sudo ufw enable

4.2 पोर्ट की अनुमति देना या ब्लॉक करना

पोर्ट की अनुमति देने का कमांड:

sudo ufw allow 22/tcp

व्याख्या:

  • पोर्ट 22 (SSH) पर TCP कनेक्शन की अनुमति देता है।

पोर्ट को ब्लॉक करने का कमांड:

sudo ufw deny 80/tcp

व्याख्या:

  • पोर्ट 80 (HTTP) तक पहुंच को ब्लॉक करता है।

उदाहरण: केवल एक विशिष्ट IP पते से पहुंच की अनुमति दें

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

व्याख्या:

  • केवल IP पता 192.168.1.100 से SSH कनेक्शन की अनुमति देता है।

4.3 सेटिंग्स को रीसेट करना और समीक्षा करना

फ़ायरवॉल कॉन्फ़िगरेशन को रीसेट करने और फिर से शुरू करने के लिए, निम्न कमांड चलाएँ:

sudo ufw reset

यह सभी नियमों को साफ़ करता है और फ़ायरवॉल को उसकी डिफ़ॉल्ट स्थिति में लौटाता है। यदि आप सेटिंग्स रीसेट करते हैं, तो आवश्यक नियमों की समीक्षा और पुनः लागू करना सुनिश्चित करें।

5. व्यावहारिक उदाहरण: किसी विशिष्ट पोर्ट की स्थिति जाँचना

यह अनुभाग SSH (पोर्ट 22) का उपयोग करके पोर्ट स्थिति की जाँच कैसे करें, इसका व्यावहारिक उदाहरण प्रदान करता है।

5.1 पोर्ट स्थिति जाँचें

उदाहरण कमांड:

sudo ss -ltn | grep ':22'

उदाहरण आउटपुट:

LISTEN      0      128        0.0.0.0:22            0.0.0.0:*

मुख्य बिंदु:

  • यदि आउटपुट में LISTEN दिखाई देता है, तो पोर्ट खुला है और कनेक्शन की प्रतीक्षा कर रहा है।
  • 0.0.0.0 दर्शाता है कि सभी IP पतों से कनेक्शन स्वीकार किए जाते हैं।

5.2 चल रहे प्रक्रिया की जाँच

उदाहरण कमांड:

sudo lsof -i :22

उदाहरण आउटपुट:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234  root   3u   IPv4  56789 0t0      TCP *:ssh (LISTEN)

मुख्य बिंदु:

  • sshd वह डेमन प्रक्रिया है जो SSH कनेक्शन को प्रबंधित करती है।
  • आप प्रक्रिया ID (PID) का उपयोग करके प्रक्रिया को रोक या पुनः शुरू कर सकते हैं।

प्रक्रिया को रोकने का उदाहरण:

sudo kill 1234

5.3 समस्या निवारण उदाहरण

समस्या: जब पोर्ट बंद या अनुपलब्ध हो तो क्या करें।

कदम:

  1. फ़ायरवॉल सेटिंग्स जाँचें।
    sudo ufw status verbose
    
  1. यदि पोर्ट ब्लॉक है, तो उसे अनुमति दें।
    sudo ufw allow 22/tcp
    
  1. सेवा की स्थिति जाँचें और आवश्यक होने पर पुनः शुरू करें।
    sudo systemctl restart ssh
    

6. पोर्ट प्रबंधन और सुरक्षा

पोर्ट प्रबंधन सीधे नेटवर्क सुरक्षा से जुड़ा है। यह अनुभाग पोर्ट खोलने और बंद करने तथा सुरक्षित कॉन्फ़िगरेशन बनाए रखने के मुख्य बिंदुओं को समझाता है।

6.1 अप्रयुक्त पोर्ट बंद करना

जो पोर्ट उपयोग में नहीं हैं, उन्हें अनधिकृत पहुंच के जोखिम को कम करने के लिए बंद किया जाना चाहिए।

उदाहरण: पोर्ट 80 बंद करना

sudo ufw deny 80/tcp

6.2 पोर्ट स्कैनिंग के खिलाफ उपाय

पोर्ट स्कैनिंग वह तकनीक है जिसका उपयोग हमलावर सिस्टम में कमजोरियों की पहचान करने के लिए करते हैं। निम्नलिखित विधियां आपके सर्वर की सुरक्षा में मदद करती हैं:

  1. फ़ायरवॉल नियमों को मजबूत करें:
    sudo ufw default deny incoming
    
  1. लॉग्स की निगरानी करें:
    sudo tail -f /var/log/ufw.log
    
  1. पोर्ट स्कैन डिटेक्शन टूल्स स्थापित करें: fail2ban जैसे टूल्स का उपयोग करके अनधिकृत एक्सेस प्रयासों को स्वचालित रूप से ब्लॉक करें।

7. सारांश

इस लेख में उबंटू पर पोर्ट्स की जाँच के विशिष्ट तरीकों और कमांड्स को समझाया गया है। इसमें ufw का उपयोग करके फ़ायरवॉल प्रबंधन और व्यावहारिक सुरक्षा उपायों को भी कवर किया गया है।

7.1 मुख्य बिंदु

  • पोर्ट्स की मूल अवधारणाएँ और श्रेणियाँ: पोर्ट्स संचार के प्रवेश बिंदु के रूप में कार्य करते हैं और इन्हें वेल-नॉन्स, रजिस्टर्ड, और डायनामिक पोर्ट्स में वर्गीकृत किया जाता है।
  • पोर्ट्स की जाँच कैसे करें: ss, netstat, lsof, और nmap जैसे कमांड पोर्ट और प्रक्रिया की स्थिति के बारे में जानकारी प्रदान करते हैं।
  • फ़ायरवॉल प्रबंधन: ufw का उपयोग करके आप पोर्ट्स को अनुमति या ब्लॉक कर सकते हैं जिससे सिस्टम सुरक्षा बढ़ती है।
  • सुरक्षा का महत्व: अनउपयोगी पोर्ट्स को बंद करना, लॉग्स की निगरानी करना, और सुरक्षा टूल्स का उपयोग करना सुरक्षित नेटवर्क वातावरण बनाए रखने में मदद करता है।

7.2 व्यावहारिक अनुप्रयोग

पोर्ट प्रबंधन नेटवर्क सुरक्षा का एक मूलभूत पहलू है। इस लेख से प्राप्त ज्ञान को लागू करके एक सुरक्षित और स्थिर सर्वर वातावरण बनाए रखें।

अक्सर पूछे जाने वाले प्रश्न: उबंटू पर पोर्ट्स की जाँच के बारे में

प्रश्न 1. यदि उबंटू पर कोई पोर्ट खुला नहीं है तो मुझे क्या करना चाहिए?

उ:
निम्नलिखित चरणों को आज़माएँ:

  1. फ़ायरवॉल सेटिंग्स की जाँच करें:
    sudo ufw status verbose
    

यदि पोर्ट ब्लॉक है, तो इसे इस तरह अनुमति दें:

sudo ufw allow [portnumber]/tcp
  1. सुनिश्चित करें कि सेवा चल रही है:
    sudo systemctl status [servicename]
    

SSH का उदाहरण:
sudo systemctl status ssh

यदि आवश्यक हो तो पुनः प्रारंभ करें:

sudo systemctl restart [servicename]
  1. सुनिश्चित करें कि सही पोर्ट कॉन्फ़िगर किया गया है: सेवा कॉन्फ़िगरेशन फ़ाइल, जैसे SSH के लिए /etc/ssh/sshd_config, को जांचें ताकि उपयुक्त पोर्ट नंबर की पुष्टि हो सके।

प्रश्न 2. ss और netstat में क्या अंतर है?

उ:
दोनों टूल नेटवर्क कनेक्शन की जाँच के लिए उपयोग होते हैं, लेकिन वे इस प्रकार भिन्न हैं:

  • ss: आधुनिक Linux सिस्टम के लिए अनुशंसित टूल। तेज़ और अधिक विस्तृत जानकारी प्रदान करता है। उदाहरण: sudo ss -ltn
  • netstat: एक पुराना टूल, धीरे-धीरे अप्रचलित हो रहा है, लेकिन अभी भी लेगेसी सिस्टम में व्यापक रूप से उपलब्ध है। उदाहरण: sudo netstat -ltn

नए सिस्टम के लिए, ss की सिफारिश की जाती है।

प्रश्न 3. मैं पोर्ट स्कैनिंग का पता कैसे लगा सकता हूँ?

उ:
निम्नलिखित विधियों का करें:

  1. फ़ायरवॉल लॉग्स की जाँच करें:
    sudo tail -f /var/log/ufw.log
    

संदेहास्पद IP पतों या बार-बार एक्सेस प्रयासों की तलाश करें।

  1. IDS/IPS टूल्स स्थापित करें:
  • fail2ban या Snort जैसे टूल्स का उपयोग करके अनधिकृत एक्सेस प्रयासों को स्वचालित रूप से ब्लॉक करें।
  1. nmap के साथ अपने सर्वर को स्कैन करें:
    sudo nmap localhost
    

अनावश्यक खुले पोर्ट्स की पहचान करें और उन्हें बंद करें।

प्रश्न 4. मैं कैसे जाँचूँ कि कौन सी प्रक्रिया किसी विशिष्ट पोर्ट का उपयोग कर रही है?

उ:
lsof कमांड का उपयोग करें:

sudo lsof -i :[portnumber]

पोर्ट 80 का उदाहरण:

sudo lsof -i :80

उदाहरण आउटपुट:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   1234  www    4u   IPv4  12345 0t0      TCP *:http (LISTEN)

प्रश्न 5. मैं ufw का उपयोग करके केवल एक विशिष्ट IP पते को कैसे अनुमति दूँ?

उ:
निम्नलिखित कमांड का उपयोग करें:

sudo ufw allow from [IP address] to any port [portnumber] proto tcp

उदाहरण: 192.168.1.100 से SSH एक्सेस की अनुमति दें:

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

प्रश्न 6. मैं पोर्ट नंबर कैसे बदलूँ?

उ:
संबंधित सेवा की कॉन्फ़िगरेशन फ़ाइल को संपादित करें। SSH का उदाहरण:

  1. कॉन्फ़िगरेशन फ़ाइल संपादित करें:
    sudo nano /etc/ssh/sshd_config
    
  1. Port निर्देश खोजें और नया पोर्ट नंबर सेट करें:
    Port 2222
    
  1. SSH सेवा को पुनः प्रारंभ करें:
    sudo systemctl restart ssh
    
  1. फ़ायरवॉल के माध्यम से नया पोर्ट अनुमति दें:
    sudo ufw allow 2222/tcp
    

प्रश्न 7. क्या मैं एक साथ कई पोर्ट्स की अनुमति दे सकता हूँ?

उ:
हाँ, आप निम्नलिखित विधियों का उपयोग करके कई पोर्ट्स की अनुमति दे सकते हैं:

  1. पोर्ट्स की एक रेंज की अनुमति देना:
    sudo ufw allow 1000:2000/tcp
    

व्याख्या: 1000 से 2000 तक के पोर्ट्स की अनुमति देता है.

  1. पोर्ट्स को व्यक्तिगत रूप से अनुमति देना:
    sudo ufw allow 22/tcp
    sudo ufw allow 80/tcp
    
侍エンジニア塾