Ubuntu मा खुला पोर्ट जाँच्ने तरिका र समस्या निवारण

目次

1. परिचय

नेटवर्क व्यवस्थापन र सर्वर सञ्चालनमा, पोर्टको अवस्थालाई सही रूपमा बुझ्नु महत्वपूर्ण छ। विशेष गरी Ubuntu प्रयोग गर्दा, खुला पोर्टहरू र चलिरहेका प्रक्रियाहरू जाँच गरेर, सुरक्षा उपायहरूलाई मजबुत बनाउन र समस्या निवारणलाई छिटो गर्न सकिन्छ। यो लेखमा, Ubuntu मा पोर्ट जाँच गर्नका लागि आधारभूत कमान्डहरू र उपकरणहरूको प्रयोगलाई विस्तृत रूपमा व्याख्या गर्दछौं। शुरुआतीदेखि मध्यवर्ती प्रयोगकर्ताहरूका लागि व्यावहारिक र सजिलो बुझ्ने चरणहरू प्रदान गर्दछौं, त्यसैले कृपया अन्तसम्म पढ्नुहोस्।

2. पोर्ट भनेको के हो

2.1 पोर्टको आधारभूत अवधारणा

पोर्ट कम्प्युटर वा नेटवर्क उपकरणहरूले डाटा पठाउने र प्राप्त गर्ने लागि आभासी सञ्चार ढोका हो। विशेष रूपमा, एउटै IP ठेगानामा धेरै एप्लिकेसनहरूले एकैसाथ सञ्चार गर्दा, प्रत्येक एप्लिकेसनको डाटालाई पहिचान गर्ने र उपयुक्त रूपमा वितरण गर्ने भूमिका निर्वाह गर्छ। उदाहरणका लागि, वेब सर्वरले HTTP सञ्चार ह्यान्डल गर्नका लागि पोर्ट ८० प्रयोग गर्छ। यदि त्यही सर्वरले SSH कनेक्सन अनुमति दिएको छ भने, पोर्ट २२ प्रयोग गर्छ। यसरी, पोर्ट नम्बरद्वारा प्रत्येक सेवालाई भेदभाव गरिन्छ, त्यसैले नेटवर्क व्यवस्थापनमा पोर्टको अवस्था जाँच आवश्यक छ।

2.2 पोर्टका प्रकार र भूमिका

पोर्टलाई मुख्य रूपमा तीन वर्गमा वर्गीकृत गरिन्छ।
  1. वेल-नोउन पोर्ट (० देखि १०२३)
  • विश्वव्यापी रूपमा मानकीकृत पोर्ट नम्बरहरू जसलाई व्यापक रूपमा प्रयोग हुने सेवाहरूमा आवंटित गरिएको छ।
    • उदाहरण:
    • HTTP: 80
    • HTTPS: 443
    • SSH: 22
  1. दर्ता पोर्ट (१०२४ देखि ४९१५१)
  • विशिष्ट एप्लिकेसन वा कम्पनीहरूले प्रयोग गर्ने पोर्टहरू हुन्।
    • उदाहरण:
    • MySQL: 3306
    • PostgreSQL: 5432
  1. डाइनामिक पोर्ट (४९१५२ देखि ६५५३५)
  • अस्थायी रूपमा एप्लिकेसनहरूले प्रयोग गर्ने पोर्टहरू जसलाई क्लाइन्ट पक्षको सञ्चारमा प्रायः प्रयोग गरिन्छ।
यस वर्गीकरणलाई बुझेर पोर्ट नम्बरहरू कुन उद्देश्यका लागि प्रयोग हुन्छन् भन्ने कुरा 판단 गर्न सजिलो हुन्छ।

३. युबुन्टुमा पोर्ट जाँच्ने तरिका

युबुन्टुमा, विभिन्न उपकरणहरू प्रयोग गरेर पोर्टको अवस्था जाँच्न सकिन्छ। यहाँ, विशेष गरी व्यावहारिक चार कमान्डहरूको बारेमा व्याख्या गर्दछौं।

३.१ एसएस कमान्डको प्रयोग

ss कमान्ड लिनक्स प्रणालीमा प्रयोग हुने शक्तिशाली नेटवर्क व्यवस्थापन उपकरण हो। यसको कार्य तीव्र छ र विस्तृत कनेक्सन जानकारी प्रदान गर्दछ।आधारभूत कमान्ड:
sudo ss -ltn
विकल्पहरूको व्याख्या:
  • -l: सुन्ने अवस्थामा रहेका पोर्टहरू मात्र देखाउँछ।
  • -t: टीसीपी प्रोटोकल मात्र देखाउँछ।
  • -n: ठेगाना र पोर्ट नम्बरहरूलाई संख्यात्मक रूपमा देखाउँछ।
आउटपुट उदाहरण:
State       Recv-Q Send-Q      Local Address:Port        Peer Address:Port  
LISTEN      0      128              0.0.0.0:22               0.0.0.0:*

३.२ नेटस्ट्याट कमान्डको प्रयोग

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

३.३ एलओएसएफ कमान्डको प्रयोग

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)

३.४ एनम्याप कमान्डको प्रयोग

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. फायरवाल सेटिङको जाँच

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
व्याख्या:
  • पोर्ट २२ (SSH) मा TCP कनेक्सनलाई अनुमति दिन्छ।
पोर्टलाई ब्लक गर्ने कमान्ड:
sudo ufw deny 80/tcp
व्याख्या:
  • पोर्ट ८० (HTTP) मा पहुँचलाई ब्लक गर्दछ।
निश्चित IP ठेगानालाई मात्र अनुमति दिने उदाहरण:
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
व्याख्या:
  • IP ठेगाना १९२.१६८.१.१०० बाट SSH कनेक्सनलाई मात्र अनुमति दिन्छ।

4.3 सेटिङ रिसेट र समीक्षा

सेटिङलाई प्रारम्भिक अवस्थामा फर्काएर पुनः निर्माण गर्न निम्न कमान्ड चलाउनुहोस्।
sudo ufw reset
यो कमान्डले सबै नियमहरूलाई सफा गर्दछ र फायरवाल सेटिङलाई डिफल्ट अवस्थामा फर्काउँछ। परिवर्तन गर्दा नियमहरूलाई पुनः जाँच गर्नुहोस्।

५. व्यावहारिक उदाहरण: विशिष्ट पोर्टको अवस्था जाँच

यहाँ, SSH (पोर्ट २२) को अवस्थालाई विशिष्ट उदाहरणको रूपमा जाँच गर्ने प्रक्रियाको व्याख्या गर्दछौं।

५.१ पोर्ट अवस्थाको जाँच

कमाण्ड उदाहरण:
sudo ss -ltn | grep ':22'
आउटपुट उदाहरण:
LISTEN      0      128        0.0.0.0:22            0.0.0.0:*
बुँदाहरू:
  • आउटपुट परिणाममा LISTEN देखाइएको छ भने, त्यो पोर्ट सुन्ने अवस्थामा छ र जडानको प्रतीक्षा गरिरहेको छ।
  • 0.0.0.0 ले सबै IP ठेगानाहरूबाट जडान स्वीकार गर्ने सेटिङलाई जनाउँछ।

५.२ प्रोसेसको जाँच

कमाण्ड उदाहरण:
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

५.३ समस्या निवारण उदाहरण

समस्या: पोर्ट खुला नभएको अवस्था वा जडान गर्न नसकिने अवस्थामा कदमहरू।प्रक्रिया:
  1. फायरवाल सेटिङ जाँच गर्नुहोस्।
sudo ufw status verbose
  1. सम्बन्धित पोर्ट ब्लक भएको छ भने, अनुमति सेटिङ थप्नुहोस्।
sudo ufw allow 22/tcp
  1. सेवाको अवस्था जाँच गर्नुहोस् र आवश्यक भए पुन: सुरु गर्नुहोस्।
sudo systemctl restart ssh

६. पोर्टको खोल्ने र बन्द गर्ने र सुरक्षा

पोर्ट व्यवस्थापनले नेटवर्क सुरक्षासँग सीधा सम्बन्ध राख्छ। यहाँ, पोर्ट खोल्ने/बन्द गर्ने र सुरक्षा व्यवस्थापनका बुँदाहरूको व्याख्या गर्दछौं।

६.१ अनावश्यक पोर्टहरू बन्द गर्नुहोस्

प्रयोग नभएका पोर्टहरू आक्रमणकारीहरूद्वारा दुरुपयोग हुने जोखिमबाट बच्न बन्द राख्नु महत्वपूर्ण छ।उदाहरण: पोर्ट ८० बन्द गर्ने अवस्था
sudo ufw deny 80/tcp

६.२ पोर्ट स्क्यान उपायहरू

पोर्ट स्क्यान आक्रमणकारीहरूले प्रणालीको कमजोरीहरू खोज्न प्रयोग गर्ने प्रविधि हो। यसलाई रोक्नका लागि निम्न उपायहरू प्रभावकारी छन्।
  1. फायरवाल नियमको सुदृढीकरण:
sudo ufw default deny incoming
  1. लग निगरानी:
sudo tail -f /var/log/ufw.log
  1. पोर्ट स्क्यान पत्ता लगाउने उपकरणको परिचय: fail2ban जस्ता उपकरणहरू प्रयोग गरेर, अनधिकृत पहुँचलाई स्वचालित रूपमा अवरोध गर्न सकिन्छ।

7. सारांश

यस लेखमा, Ubuntu मा पोर्ट जाँच गर्नका लागि विशिष्ट चरणहरू र कमान्डहरूको प्रयोग विधि व्याख्या गरिएको छ। साथै, ufw प्रयोग गरेर फायरवाल व्यवस्थापन र सुरक्षा उपायहरूका बुँदाहरू पनि विस्तृत रूपमा व्याख्या गरिएको छ।

7.1 मुख्य बुँदाहरूको समीक्षा

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

7.2 भविष्यको उपयोग

पोर्ट व्यवस्थापन नेटवर्क सुरक्षाको आधार हो। यस लेखमा सिकेका सामग्री प्रयोग गरेर सुरक्षित सर्वर वातावरण कायम राख्नुहोस्।

FAQ: Ubuntu मा पोर्ट जाँच सम्बन्धी सामान्य प्रश्नहरू

Q1. Ubuntu मा पोर्ट खुला नभएको अवस्थामा के गर्नुपर्छ?

A: पोर्ट खुला नभएको अवस्थामा, निम्न चरणहरू प्रयास गर्नुहोस्:
  1. फायरवाल सेटिङ जाँच गर्नुहोस्:
sudo ufw status verbose
यदि फायरवालले पोर्टलाई ब्लक गरेको छ भने, निम्न कमान्डले अनुमति दिनुहोस्:
sudo ufw allow [पोर्ट नम्बर]/tcp
  1. सम्बन्धित सेवाहरू चलिरहेको छ कि जाँच गर्नुहोस्:
sudo systemctl status [सेवा नाम]
उदाहरण: SSH को लागि, sudo systemctl status ssh आवश्यकता अनुसार, निम्न कमान्डले पुन: सुरु गर्नुहोस्:
sudo systemctl restart [सेवा नाम]
  1. सेवाले सही पोर्ट प्रयोग गरिरहेको छ कि जाँच गर्नुहोस्: सेटिङ फाइल (उदाहरण: SSH को लागि /etc/ssh/sshd_config) जाँच गर्नुहोस् र उपयुक्त पोर्ट नम्बर निर्दिष्ट भएको छ कि सुनिश्चित गर्नुहोस्।

Q2. ssnetstat को भिन्नता के हो?

A:ssnetstat दुवै नेटवर्क कनेक्सन जाँच गर्ने उपकरणहरू हुन्, तर निम्न भिन्नताहरू छन्:
  • ss:
  • नयाँ लिनक्स प्रणालीहरूमा सिफारिस गरिएको उपकरण।
  • कार्य छिटो छ र विस्तृत जानकारी देखाउन सकिन्छ।
  • उदाहरण: sudo ss -ltn
  • netstat:
  • पुरानो उपकरण जुन प्रयोग हुँदै आएको छ तर अब गैर-सिफारिस हुँदैछ।
  • पुराना लिनक्स प्रणालीहरूमा उच्च अनुकूलता।
  • उदाहरण: sudo netstat -ltn
नयाँ प्रणालीहरूमा ss प्रयोग गर्न सिफारिस गरिन्छ।

Q3. पोर्ट स्क्यान पत्ता लगाउने विधि छ?

A: पोर्ट स्क्यान पत्ता लगाउनका लागि, निम्न विधिहरू छन्:
  1. फायरवाल लग जाँच गर्नुहोस्:
sudo tail -f /var/log/ufw.log
शंकास्पद IP ठेगाना वा बारम्बार कनेक्सन प्रयासहरू छैनन् कि जाँच गर्नुहोस्।
  1. IDS/IPS उपकरणहरू स्थापना गर्नुहोस्:
  • fail2ban वा Snort जस्ता उपकरणहरू प्रयोग गरेर, अनधिकृत कनेक्सनहरूलाई स्वचालित रूपमा ब्लक गर्ने सेटिङ गर्नुहोस्।
  1. nmap ले आफ्नो सर्वर स्क्यान गर्नुहोस्:
sudo nmap localhost
खुला अनावश्यक पोर्टहरू छैनन् कि जाँच गर्नुहोस् र बन्द गर्नुहोस्।

Q4. कुनै विशेष पोर्ट प्रयोग गर्ने प्रक्रिया कसरी जाँच गर्ने?

A:lsof कमान्ड प्रयोग गरेर, विशेष पोर्ट प्रयोग गर्ने प्रक्रिया जाँच गर्न सकिन्छ:
sudo lsof -i :[पोर्ट नम्बर]
उदाहरण: पोर्ट 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)

Q5. ufw प्रयोग गरेर विशेष IP ठेगानालाई मात्र अनुमति दिने विधि के हो?

A: विशेष IP ठेगानाबाट मात्र कनेक्सन अनुमति दिनका लागि, निम्न कमान्ड प्रयोग गर्नुहोस्:
sudo ufw allow from [IP ठेगाना] to any port [पोर्ट नम्बर] proto tcp
उदाहरण: IP ठेगाना 192.168.1.100 बाट पोर्ट 22 (SSH) तर्फ कनेक्सन अनुमति दिनका लागि:
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Q6. पोर्ट नम्बर परिवर्तन गर्न चाहनुहुन्छ भने के गर्ने?

A: पोर्ट नम्बर परिवर्तन गर्नका लागि, सेवाको सेटिङ फाइल सम्पादन गर्नुहोस्। तल SSH को उदाहरण छ:
  1. सेटिङ फाइल सम्पादन गर्नुहोस्:
sudo nano /etc/ssh/sshd_config
  1. Port सेटिङ खोज्नुहोस् र नयाँ पोर्ट नम्बर सेट गर्नुहोस्:
Port 2222
  1. SSH सेवालाई पुन: सुरु गर्नुहोस्:
sudo systemctl restart ssh
  1. नयाँ पोर्टलाई फायरवालमा अनुमति दिनुहोस्:
sudo ufw allow 2222/tcp

Q7. धेरै पोर्टहरूलाई एकैचोटि अनुमति दिन सकिन्छ?

A: हो, धेरै पोर्टहरूलाई एकैचोटि अनुमति दिन सकिन्छ। निम्न विधि प्रयोग गर्नुहोस्:
  1. विशेष दायरा अनुमति दिनका लागि:
sudo ufw allow 1000:2000/tcp
व्याख्या: पोर्ट 1000 देखि 2000 को दायरा अनुमति दिन्छ।
  1. व्यक्तिगत रूपमा अनुमति दिनका लागि:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
侍エンジニア塾