Ubuntu හි විවෘත පෝට් පරීක්ෂා කිරීම: අත්‍යවශ්‍ය කමාන්ඩ් සහ ආරක්ෂක උපදෙස්

目次

1. හැඳින්වීම

ජාල කළමනාකරණය සහ සේවාදායක මෙහෙයුම් වල, පෝට්ස් (ports) තත්ත්වය නිවැරදිව අවබෝධ කර ගැනීම අත්‍යවශ්‍ය වේ. විශේෂයෙන් Ubuntu භාවිතා කරන විට, කුමන පෝට්ස් විවෘතව ඇතිද, ඒවා භාවිතා කරන ක්‍රියාවලි (processes) කුමනද යන්න පරීක්ෂා කිරීම ආරක්ෂාව ශක්තිමත් කරයි සහ වේගවත් ගැටළු විසඳීමට උපකාරී වේ.

මෙම ලිපිය Ubuntu හි පෝට්ස් පරීක්ෂා කිරීම සඳහා භාවිතා කරන මූලික විධාන සහ මෙවලම් පැහැදිලි කරයි. එය ආරම්භක සහ මධ්‍යම පරිශීලකයන් සඳහා ප්‍රායෝගික හා පහසු පියවරයන් ලබා දේ, එබැවින් අවසානය දක්වා කියවන්න.

2. පෝට් එකක් කියන්නේ කුමක්ද?

2.1 පෝට්ස් වල මූලික සංකල්පය

පෝට් එකක් යනු පරිගණක සහ ජාල උපාංගයන් දත්ත යැවීමට සහ ලබා ගැනීමට භාවිතා කරන අතුරුමුහුණත (virtual communication endpoint) වේ. විශේෂයෙන්, එකම IP ලිපිනයේ එකවර බහු යෙදුම් (applications) සන්නිවේදනය කරන විට, පෝට්ස් දත්ත නිවැරදි යෙදුම වෙත හඳුනාගෙන මාරු කරයි.

උදාහරණයක් ලෙස, වෙබ් සේවාදායකයක් 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 යනු විශේෂ පෝට්ස් භාවිතා කරන ක්‍රියාවලි (processes) හඳුනා ගැනීමට ප්‍රයෝජනවත් වේ.

විශේෂිත පෝට් එකක් පරීක්ෂා කිරීම:

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 යනු ආරක්ෂක නිරීක්ෂණ සඳහා බහුලව භාවිතා වන ජාල ස්කෑනර් මෙවලමකි.

ලෝකල්හෝස්ට් (localhost) ස්කෑන් කිරීම:

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. ගිනුම් බාධක (Firewall) සැකසුම්

On Ubuntu, firewalls are commonly used to enhance security. ufw (Uncomplicated Firewall), in particular, is a simple yet powerful management tool widely used for this purpose. This section explains how to check the status of ports and modify configurations using 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

විස්තරය:

  • 192.168.1.100 IP ලිපිනයෙන් පමණක් 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. සාරාංශය

මෙම ලිපිය Ubuntu හි පෝට් පරීක්ෂා කිරීම සඳහා විශේෂිත ක්‍රම සහ පණිවිඩ ගැන පැහැදිලි කළේය. එය ufw භාවිතයෙන් ගිනි බිඩුව කළමනාකරණය සහ ප්‍රායෝගික ආරක්ෂාවේ උපාය මාර්ග ආවරණය කළේය.

7.1 ප්‍රධාන ඉගෙනීම්

  • පෝට් වල මූලික සංකල්ප සහ කාණ්ඩ: පෝට් සන්නිවේදන ප්‍රවේශ මාර්ග ලෙස ක්‍රියා කරන අතර, ඒවා ප්‍රසිද්ධ, ලියාපදිංචි සහ ගතික පෝට් ලෙස වර්ගීකරණය වේ.
  • පෝට් පරීක්ෂා කිරීමේ ක්‍රම: ss , netstat , lsof , සහ nmap වැනි පණිවිඩ පෝට් සහ ක්‍රියාවලියේ තත්ත්වය පිළිබඳ තොරතුරු සපයයි.
  • ගිනි බිඩුව කළමනාකරණය: ufw භාවිතයෙන්, ඔබට පෝට් අවසර කිරීමට හෝ අවහිර කිරීමට හැකි අතර, පද්ධතියේ ආරක්ෂාව වැඩිදියුණු කළ හැක.
  • ආරක්ෂාවේ වැදගත්කම: අනවශ්‍ය පෝට් වසා දැමීම, ලොග් පරීක්ෂා කිරීම සහ ආරක්ෂක මෙවලම් භාවිතය මගින් ආරක්ෂිත ජාල පරිසරයක් පවත්වා ගැනීමට උපකාරී වේ.

7.2 ප්‍රායෝගික යෙදුම

පෝට් කළමනාකරණය ජාල ආරක්ෂාවේ මූලික අංගයකි. මෙම ලිපියෙන් ලබාගත් දැනුම ආරක්ෂිත සහ ස්ථාවර සේවාදායක පරිසරයක් පවත්වා ගැනීම සඳහා යොදා ගන්න.

FAQ: Ubuntu හි පෝට් පරීක්ෂා කිරීම පිළිබඳ නිතිපතා අසන ප්‍රශ්න

Q1. Ubuntu හි පෝට් එකක් විවෘත නොවේ නම් මම කළ යුතු දේ මොකක්ද?

A:
පහත පියවර උත්සාහ කරන්න:

  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 වැනි සේවා සැකසුම් ගොනුව පරීක්ෂා කරමින් නිවැරදි පෝට් අංකය තහවුරු කරන්න.

Q2. ss සහ netstat අතර වෙනස කුමක්ද?

A:
ඕනෑම මෙවලම් ජාල සම්බන්ධතා පරීක්ෂා කිරීමට භාවිතා වුවත්, ඒවායේ වෙනස්කම් පහත පරිදිය:

  • ss: නූතන Linux පද්ධති සඳහා නිර්දේශිත මෙවලම. වේගවත් සහ වැඩි විස්තරාත්මක තොරතුරු සපයයි. උදාහරණය: 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 :[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)

Q5. ufw භාවිතයෙන් නිශ්චිත IP ලිපිනයක් පමණක් අවසර කරන්නේ කෙසේද?

A:
පහත පණිවිඩය භාවිතා කරන්න:

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

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
    
侍エンジニア塾