[සම්පූර්ණ මාර්ගෝපදේශය] Ubuntu හි විවෘත පෝට් පරීක්ෂා කිරීම සහ ගැටළු නිරාකරණය

目次

1. හැඳින්වීම

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

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

年収訴求

2. පෝට් එකක් කියන්නේ මොනවාද?

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

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

උදාහරණයක් ලෙස, වෙබ් සේවාදායකය HTTP සන්නිවේදනය සඳහා port 80 භාවිතා කරයි. එම සේවාදායකය SSH සම්බන්ධතාද ලබා දුන් විට, එය port 22 භාවිතා කරයි. සේවා වර්ග වෙනස් වීම පෝට් අංක මගින් වෙනස් වන බැවින්, පෝට් තත්ත්වය පරීක්ෂා කිරීම ජාල කළමනාකරණයට අත්‍යවශ්‍ය වේ.

2.2 පෝට්ස් වර්ග සහ කාර්යභාර

පෝට්ස් ත්‍රිත්වයක් ලෙස වර්ගීකරණය කර ඇත:

  1. ප්‍රසිද්ධ පෝට්ස් (0–1023)
  • ලෝක පරිමාණයෙන් ප්‍රමිතියක් ලෙස සකසා ඇති අතර, පුළුල්ව භාවිතා වන සේවා සඳහා වෙන් කර ඇත.
  • උදාහරණ:
    • HTTP: 80
    • HTTPS: 443
    • SSH: 22
  1. ලියාපදිංචි පෝට්ස් (1024–49151)
  • විශේෂ යෙදුම් හෝ සංවිධාන සඳහා භාවිතා වේ.
  • උදාහරණ:
    • MySQL: 3306
    • PostgreSQL: 5432
  1. ගතික පෝට්ස් (49152–65535)
  • ගනුදෙනුකරු-පාර්ශවීය සන්නිවේදනය සඳහා සාමාන්‍යයෙන් භාවිතා වන තාවකාලික පෝට්ස්.

මෙම වර්ගීකරණය තේරුම් ගැනීමෙන් පෝට් එකක් කෙසේ භාවිතා කරයිද යන්න තීරණය කිරීම පහසු වේ.

3. Ubuntu හි පෝට්ස් පරීක්ෂා කිරීම

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

3.1 ss විධානය භාවිතා කිරීම

ss විධානය Linux හි ශක්තිමත් ජාල කළමනාකරණ මෙවලමකි. එය වේගවත් වන අතර සවිස්තරාත්මක සම්බන්ධතා තොරතුරු ලබා දෙයි.

මූලික විධානය:

sudo ss -ltn

විකල්ප විස්තරය:

  • -l : ඇසුරුම් (listening) පෝට්ස් පමණක් පෙන්වයි.
  • -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 මෙවලම ජාල ස්කෑනින් සහ ආරක්ෂක නිරීක්ෂණය සඳහා විශේෂිතයි.

ලෝකල්හෝස්ට් (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. ගිනිගුල සැකසුම් පරීක්ෂා කිරීම

Ubuntu හි, ගිනිගුල (firewall) ආරක්ෂාව වැඩිදියුණු කිරීම සඳහා සාමාන්‍යයෙන් භාවිතා වේ. ufw (Uncomplicated Firewall) යනු සරල නමුත් බලවත් මෙවලමකි. මෙම කොටසෙහි ufw භාවිතා කර පෝට් අවසර පරීක්ෂා කිරීම සහ වෙනස් කිරීම පිළිබඳ විස්තර කරයි.

4.1 ගිනිගුල තත්ත්වය පරීක්ෂා කිරීම

ගිනිගුල තත්ත්වය පරීක්ෂා කරන්න:

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

විස්තරය:

  • අවස්ථාව: සක්‍රිය : Firewall සක්‍රිය කර ඇත.
  • ලොගිං: ඔන් : Firewall ක්‍රියාකාරකම් ලොග් කරයි.
  • අවසරය: අනුමැතිය නොදී (අනුකම්), අනුමැතිය (බැහැර) : අනුකම් සම්බන්ධතා අනුමැතිය නොදී අනුමැතිය කරයි, බැහැර සම්බන්ධතා අනුමැතිය කරයි.
  • අනුමැතිය : බලන්නා සේවාවන් (උදා: SSH සහ HTTP) අනුමැතිය කරන බව විශේෂ කරයි.

** සටහන:** Firewall අක්‍රිය (අවස්ථාව: අක්‍රිය) නම්, එය සක්‍රිය කිරීමට:

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 Firewall සැකසුම් නැවත සකස් කිරීම සහ සමාලෝචනය

Firewall සැකසුම් නැවත සකස් කිරීමට සහ නැවත ආරම්භ කිරීමට, පහත command භාවිතා කරන්න:

sudo ufw reset

මෙම command සියලුම නීති හිස් කරයි සහ Firewall එහි අවසර ස්ථිතියට ප්‍රතිස්ථාපනය කරයි. වෙනස්කම් කළ පසු සැමවිටම නීති සමාලෝචනය කරන්න.

5. ප්‍රායෝගික උදාහරණය: විශේෂිත වර්තමානයක් පරීක්ෂා කිරීම

මෙහිදී, අපි SSH (වර්තමාන 22) හි අවස්ථාව පරීක්ෂා කිරීමේ උදාහරණයක් ලෙස පෙන්වන්නෙමු.

5.1 වර්තමාන අවස්ථාව පරීක්ෂා කිරීම

උදාහරණ command:

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 වර්තමානය භාවිතා කරන ක්‍රියාවලිය හඳුනා ගැනීම

උදාහරණ command:

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 සම්බන්ධතා කළමනාකරණය කරන daemon ක්‍රියාවලියයි.
  • ක්‍රියාවලිය ID (PID) සේවාව නවතින්න හෝ නැවත ආරම්භ කිරීමට භාවිතා කළ හැක.

ක්‍රියාවලිය නවතින්න:

sudo kill 1234

5.3 ගැටලු විසඳීමේ උදාහරණ

ගැටලුව: වර්තමානය විවෘත නොවීම හෝ ප්‍රවේශ කළ නොහැකි වීම.

අවම කිරීමේ පියවර:

  1. Firewall සැකසුම් පරීක්ෂා කරන්න:
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. Firewall නීති ශක්තිමත් කිරීම:
sudo ufw default deny incoming
  1. ලොග් නිරීක්ෂණය:
sudo tail -f /var/log/ufw.log
  1. අනුකම් හඳුනා ගැනීමේ මෙවලම් භාවිතා කිරීම:
  • fail2ban වැනි මෙවලම් සැකසුම් ප්‍රවේශ උත්සාහ ස්වයංක්‍රීයව අවහිර කළ හැක.

7. නිගමනය

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

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

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

7.2 අනාගත යෙදුම්

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

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

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

ප.
පෝට් එකක් විවෘත නොවන්නේ නම්, පහත පියවර අනුගමනය කරන්න:

  1. ෆයර්වෝල් සැකසුම් පරීක්ෂා කරන්න:
sudo ufw status verbose

ෆයර්වෝල් පෝට් එක අවහිර කරන්නේ නම්, පහත විධානයෙන් ඉඩ දෙන්න:

sudo ufw allow [port number]/tcp
  1. අදාළ සේවාව ක්‍රියාත්මක වන බව තහවුරු කරන්න:
sudo systemctl status [service name]

උදාහරණය: SSH සඳහා, භාවිතා කරන්න:

sudo systemctl status ssh

සේවාව ක්‍රියාත්මක නොවන්නේ නම්, එය නැවත ආරම්භ කරන්න:

sudo systemctl restart [service name]
  1. සේවාව නිවැරදි පෝට් එක භාවිතා කරන්නේදැයි පරීක්ෂා කරන්න:

විනයාස ගොනුව (උදාහරණයක් ලෙස SSH සඳහා, /etc/ssh/sshd_config පරීක්ෂා කරන්න) නිවැරදි පෝට් එක සකසා ඇති බව තහවුරු කරන්න.

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

ප.
ss සහ netstat දෙකම ජාල සම්බන්ධතා පරීක්ෂා කිරීමේ මෙවලම් වන අතර, ඒවාට ප්‍රධාන වෙනස්කම් ඇත:

  • ss:
  • නවීන Linux පද්ධති සඳහා නිර්දේශිතයි.
  • වේගවත් සහ වැඩි විස්තරාත්මක තොරතුරු ලබා දෙයි.
  • උදාහරණ විධානය: sudo ss -ltn
  • netstat:
  • පුරාණ මෙවලමක් වන අතර ක්‍රමයෙන් අහෝසි වෙමින් පවතී.
  • අනුකූලතාව සඳහා බොහෝ පද්ධතිවල තවමත් පවතී.
  • උදාහරණ විධානය: sudo netstat -ltn

නව පද්ධති සඳහා, ss වඩාත් ප්‍රියතම තේරීමයි.

Q3. කෙනෙකු මගේ පෝට්ස් ස්කෑන් කරමින් සිටිනවාද යන්න කෙසේ හඳුනාගත හැකිද?

ප.
පෝට්ස් ස්කෑනින් හඳුනා ගැනීමට, පහත ක්‍රම අත්හදා බලන්න:

  1. ෆයර්වෝල් ලොග් පරීක්ෂා කරන්න:
sudo tail -f /var/log/ufw.log

අසාමාන්‍ය IP ලිපින හෝ නැවත නැවත සම්බන්ධතා උත්සාහයන් සොයන්න.

  1. ආක්‍රමණ හඳුනා ගැනීමේ පද්ධතිය (IDS) භාවිතා කරන්න:
  • fail2ban හෝ Snort වැනි මෙවලම් ස්ථාපනය කර සකස් කිරීමෙන්, දුෂ්කර ප්‍රවේශය ස්වයංක්‍රීයව අවහිර කළ හැක.
  1. nmap භාවිතයෙන් ඔබේ සේවාදායකය ස්කෑන් කරන්න:
sudo nmap localhost

විවෘත පෝට්ස් පරීක්ෂා කර අවශ්‍ය නොවන පෝට්ස් වසා දමන්න.

Q4. විශේෂිත පෝට් එකක් භාවිතා කරන ප්‍රොසෙස් කුමක්දැයි කෙසේ පරීක්ෂා කළ හැකිද?

ප.
විශේෂිත පෝට් එකක් භාවිතා කරන ප්‍රොසෙස් හඳුනා ගැනීමට lsof විධානය භාවිතා කරන්න:

sudo lsof -i :[port number]

උදාහරණය: පෝට් 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 ලිපිනයකට පමණක් ප්‍රවේශය ලබා දීමට කෙසේද?

ප.
විශේෂිත IP ලිපිනයකට පමණක් ප්‍රවේශය ලබා දීමට, පහත විධානය භාවිතා කරන්න:

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

උදාහරණය: IP ලිපිනය 192.168.1.100 වෙතින් පමණක් SSH ප්‍රවේශය (පෝට් 22) ලබා දීම:

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Q6. සේවාවක පෝට් අංකය වෙනස් කිරීමට කෙසේද?

ප.
සේවාවක පෝට් අංකය වෙනස් කිරීමට, එහි වින්‍යාස ගොනුව සංස්කරණය කරන්න. මෙන්න 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. එකවර බහු පෝට්ස් ලබා දිය හැදුවේද?

ප.
ඔව්, පහත ක්‍රම භාවිතයෙන් එකවර බහු පෝට්ස් ලබා දිය හැක:

  1. පෝට්ස් පරාසයක් ලබා දීම:
sudo ufw allow 1000:2000/tcp

විස්තරය: පෝට් 1000 සිට 2000 දක්වා TCP සම්බන්ධතා ලබා දේ.

  1. බහු විශේෂිත පෝට්ස් ලබා දීම:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
年収訴求