Gabay Kompleto: Paano Suriin ang Mga Bukas na Port sa Ubuntu at Pagresolba ng Problema

1. Panimula

Sa pamamahala ng network at operasyon ng server, mahalagang maunawaan nang tumpak ang estado ng mga port. Lalo na kung gumagamit ng Ubuntu, sa pamamagitan ng pagpapatunay sa mga bukas na port o mga prosesong gumagamit, maaari mong palakasin ang mga hakbang sa seguridad at mabilis na magsagawa ng troubleshooting.

Sa artikulong ito, ipapaliwanag nang detalyado ang mga karaniwang command at paggamit ng mga tool upang suriin ang mga port sa Ubuntu. Ito ay para sa mga nagsisimula hanggang sa gitnang antas, na may praktikal at madaling sundan na mga hakbang, kaya mangyaring basahin ito hanggang sa huli.

2. Ano ang Port

2.1 Pangunahing Konsepto ng Port

Ang port ay isang virtual na daanan ng komunikasyon na ginagamit ng mga computer o network device upang magpadala at matanggap ang data. Sa tiyak, kapag maraming aplikasyon ang nagko-komunikasyon nang sabay-sabay sa iisang IP address, ito ay nag-iimbento ng data mula sa bawat aplikasyon at nagbibigay nito sa tamang destinasyon.

Halimbawa, ang Web server ay gumagamit ng port 80 para sa HTTP komunikasyon. Kung ang parehong server ay nagpapahintulot ng SSH connection, ito ay gumagamit ng port 22. Sa ganitong paraan, ang bawat serbisyo ay natutukoy sa pamamagitan ng port number, kaya mahalaga ang pagsusuri ng estado ng port sa network management.

2.2 Mga Uri at Tungkulin ng Port

Ang mga port ay nahahati sa tatlong malalaking kategorya.

  1. Well-Known Ports (0-1023)
  • Ito ay mga port number na standardized sa buong mundo at inilaan para sa mga karaniwang ginagamit na serbisyo.
    • Halimbawa:
    • HTTP: 80
    • HTTPS: 443
    • SSH: 22
  1. Registered Ports (1024-49151)
  • Mga port na ginagamit ng partikular na aplikasyon o kumpanya.
    • Halimbawa:
    • MySQL: 3306
    • PostgreSQL: 5432
  1. Dynamic Ports (49152-65535)
  • Mga pansamantalang port na ginagamit ng aplikasyon, karaniwang sa panig ng client sa komunikasyon.

Sa pamamagitan ng pag-unawa sa klasipikasyong ito, madali mong matutukoy ang layunin ng bawat port number.

3. Paano Suriin ang mga Port sa Ubuntu

Sa Ubuntu, maaari mong suriin ang estado ng mga port gamit ang iba’t ibang mga tool. Sa bahaging ito, tatalakayin natin ang apat na partikular na praktikal na mga command.

3.1 Paggamit ng ss Command

ss command ay isang makapangyarihang tool sa network management na ginagamit sa Linux system. Mabilis ang paggana nito at nagbibigay ng detalyadong impormasyon sa koneksyon.Pangunahing Command:

sudo ss -ltn

Paliwanag ng mga Opsyon:

  • -l: Ipinapakita lamang ang mga port na nasa listening state.
  • -t: Ipinapakita lamang ang TCP protocol.
  • -n: Ipinapakita ang mga address at port number sa numerical form.

Halimbawa ng Output:

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 Paggamit ng netstat Command

netstat command ay isang network management tool na matagal nang ginagamit. Ngayon, unti-unti itong napapalitan ng ss, ngunit patuloy na magagamit sa maraming system.Pangunahing Command:

sudo netstat -ltn

Halimbawa ng Output:

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 Paggamit ng lsof Command

lsof ay kapaki-pakinabang sa pagtukoy ng proseso na gumagamit ng partikular na port.Pagsusuri ng Partikular na Port:

sudo lsof -i :80

Halimbawa ng Output:

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

3.4 Paggamit ng nmap Command

nmap ay isang tool na espesyal na para sa network scanning, at ginagamit din sa security diagnosis.Scanning ng Local Host:

sudo nmap localhost

Halimbawa ng Output:

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

Mga Mahahalagang Punto:

  • Ipinapakita sa listahan ang mga bukas na port at ang kanilang mga pangalan ng serbisyo.
  • Maaari ring gawin ang port scan sa external server, ngunit kailangang makuha ang pahintulot nang maaga.

4. Pagsusuri ng Konpigurasyon ng Firewall

Ubuntu ay karaniwang gumagamit ng firewall upang palakasin ang seguridad. Lalo na ang ufw (Uncomplicated Firewall) ay malawak na ginagamit bilang simpleng at malakas na tool sa pamamahala. Sa seksyong ito, ipapaliwanag ang paraan ng paggamit ng ufw upang suriin ang estado ng pagbubukas at pagsara ng port, at baguhin ang mga setting kung kinakailangan.

4.1 Surin ang Kalagayan ng ufw

Utos sa Pagsusuri ng Kalagayan ng Firewall:

sudo ufw status verbose

Halimbawa ng Output:

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

Paliwanag:

  • Status: active: Ang firewall ay aktibo na.
  • Logging: on: Ang pagtatala ng log ay aktibo, at ang mga aktibidad ng firewall ay nire-record.
  • Default: deny (incoming), allow (outgoing): Ang mga papasok na koneksyon ay awtomatikong tinatanggi, habang ang mga lumalabas na koneksyon ay pinapayagan.
  • ALLOW: Ito ay nagpapahiwatig na ang tiyak na port o serbisyo ay pinapayagan (hal.: SSH at HTTP).

Mga Punto: Kung ang firewall ay hindi aktibo (Status: inactive), gamitin ang sumusunod na utos upang i-aktibo ito.

sudo ufw enable

4.2 Payagan o I-block ang Port

Utos sa Pagpayag ng Port:

sudo ufw allow 22/tcp

Paliwanag:

  • Ito ay nagpapahintulot ng koneksyon TCP sa port 22 (SSH).

Utos sa Pag-block ng Port:

sudo ufw deny 80/tcp

Paliwanag:

  • Ito ay nagbo-block ng access sa port 80 (HTTP).

Halimbawa ng Pagpayag Lamang sa Tiyak na IP Address:

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Paliwanag:

  • Pinapayagan lamang ang koneksyon SSH mula sa IP address 192.168.1.100.

4.3 Reset at Pagsusuri ng Mga Setting

Kung nais mong i-reset ang mga setting at muling buuin, i-execute ang sumusunod na utos.

sudo ufw reset

Ang utos na ito ay naglilinis ng lahat ng rules at nagbabalik ng mga setting ng firewall sa default na kalagayan. Kapag nagbago ka ng mga setting, tiyakin na suriin muli ang mga rules.

5. Halimbawa sa Paggamit: Pagsusuri ng Kalagayan ng Tiyak na Port

Dito, ipinapaliwanag namin ang hakbang para suriin ang kalagayan ng SSH (port 22) bilang isang tiyak na halimbawa.

5.1 Pagsusuri ng Kalagayan ng Port

Halimbawa ng Utos:

sudo ss -ltn | grep ':22'

Halimbawa ng Output:

LISTEN      0      128        0.0.0.0:22            0.0.0.0:*

Mga Punto:

  • Kung ipinapakita angLISTEN sa resulta ng output, ang port na iyon ay nasa estado ng pakikinig at naghihintay ng koneksyon.
  • 0.0.0.0 ay nangangahulugang setting na tumatanggap ng koneksyon mula sa lahat ng IP address.

5.2 Pagsusuri ng Proseso

Halimbawa ng Utos:

sudo lsof -i :22

Halimbawa ng Output:

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

Mga Punto:

  • sshd ay ang daemon process na namamahala sa mga koneksyon ng SSH.
  • Sa pamamagitan ng pagsusuri ng Process ID (PID), posible ang pagtigil o pagre-restart.

Halimbawa ng Pag-stop ng Proseso:

sudo kill 1234

5.3 Halimbawa ng Pag-troubleshoot

Problema: Mga hakbang kapag hindi bukas ang port o hindi makakonekta.Hakbang:

  1. Suriin ang setting ng firewall.
sudo ufw status verbose
  1. Kung nablock ang kaukulang port, idagdag ang setting ng pahintulot.
sudo ufw allow 22/tcp
  1. Suriin ang kalagayan ng serbisyo at i-restart kung kinakailangan.
sudo systemctl restart ssh

6. Pagbubukas at Pagsasara ng Port at Seguridad

Ang pamamahala ng port ay direktang nauugnay sa seguridad ng network. Dito, ipinapaliwanag namin ang mga punto ng pagbubukas at pagsasara ng port at pamamahala ng seguridad.

6.1 Pagsara ng Hindi Kinakailangang mga Port

Ang mga port na hindi ginagamit ay mahalagang isara upang maiwasan ang panganib na mapagsamantalahan ng mga attacker.Halimbawa: Kaso ng Pagsara ng Port 80

sudo ufw deny 80/tcp

6.2 Mga Hakbang Laban sa Port Scanning

Ang port scanning ay isang teknik na ginagamit ng mga attacker upang saliksikin ang mga kahinaan ng sistema. Upang maiwasan ito, ang mga sumusunod na hakbang ay epektibo.

  1. Pagpapatibay ng Mga Alituntunin ng Firewall:
sudo ufw default deny incoming
  1. Pagmamanman ng Log:
sudo tail -f /var/log/ufw.log
  1. Pagpapakilala ng Mga Tool sa Pagdetekta ng Port Scan:
    fail2ban tulad ng mga tool na ito ay maaaring gamitin upang awtomatikong i-block ang hindi awtorisadong access.

7. Buod

Sa artikulong ito, ipinaliwanag ang mga tiyak na hakbang at paraan ng paggamit ng mga command upang suriin ang mga port sa Ubuntu. Gayundin, inilarawan nang detalyado ang pamamahala ng firewall gamit ang ufw at ang mga mahahalagang punto sa mga hakbang sa seguridad.

7.1 Pagbabalik-tanaw sa mga Pangunahing Punto

  • Mga Batayang Konsepto at Uri ng mga Port
    Ang port ay ang pintuan ng komunikasyon, at nahahati sa well-known ports, registered ports, at dynamic ports.
  • Paano Gamitin ang mga Command sa Pagsusuri ng Port
  • Gamit ang mga command tulad ng ss, netstat, lsof, nmap, maaari mong suriin ang estado ng mga port at mga proseso.
  • Paano Pamahalaan ang Firewall
  • Gamit ang ufw, maaari mong i-set ang pag-allow o pag-block ng mga port upang mapataas ang seguridad.
  • Kahalagahan ng mga Hakbang sa Seguridad
  • Sa pamamagitan ng pagsara ng hindi kinakailangang mga port, pagsubaybay sa mga log, at pag-install ng mga tool laban sa atake, mapapanatili ang ligtas na operasyon ng network.

7.2 Paggamit sa Hinaharap

Ang pamamahala ng mga port ay ang batayan ng seguridad ng network. Gamitin ang mga natutunan sa artikulong ito upang mapanatili ang ligtas na kapaligiran ng server.

FAQ: Mga Madalas Itanong Tungkol sa Pagsusuri ng Port sa Ubuntu

Q1. Ano ang gagawin kung ang port ay hindi bukas sa Ubuntu?

A:Kung ang port ay hindi bukas, subukan ang mga sumusunod na hakbang:

  1. Suriin ang mga setting ng firewall:
sudo ufw status verbose

Kung ang port ay na-block sa firewall, payagan ito gamit ang sumusunod na command:

sudo ufw allow [port number]/tcp
  1. Suriin kung ang target na serbisyo ay nagsisimula:
sudo systemctl status [service name]

Halimbawa: Para sa SSH, sudo systemctl status ssh Kung kinakailangan, i-restart gamit ang sumusunod na command:

sudo systemctl restart [service name]
  1. Suriin kung ang serbisyo ay gumagamit ng tamang port:
    Suriin ang config file (halimbawa: Para sa SSH, /etc/ssh/sshd_config) at tiyakin na ang tamang port number ay tinukoy.

Q2. Ano ang pagkakaiba ng ss at netstat?

A:ss at netstat ay parehong mga tool para suriin ang mga network connection, ngunit may mga pagkakaiba na ito:

  • ss:
  • Inirerekomenda para sa mga pinakabagong Linux system.
  • Mabilis ang paggana at maaaring magpakita ng detalyadong impormasyon.
  • Halimbawa: sudo ss -ltn
  • netstat:
  • Lumang tool na matagal nang ginagamit ngunit unti-unting hindi inirerekomenda.
  • Mataas ang compatibility sa mga lumang Linux system.
  • Halimbawa: sudo netstat -ltn

Inirerekomenda ang paggamit ng ss sa mga bagong system.

Q3. May paraan ba upang matukoy ang port scan?

A:Upang matukoy ang port scan, may mga sumusunod na paraan:

  1. Suriin ang mga log ng firewall:
sudo tail -f /var/log/ufw.log

Suriin kung may hindi kanais-nais na IP address o madalas na pagtatangka ng connection.

  1. I-install ang IDS/IPS tool:
  • Gumamit ng mga tool tulad ng fail2ban o Snort upang awtomatikong i-block ang hindi tamang connection.
  1. Scan ang sariling server gamit ang nmap:
sudo nmap localhost

Suriin kung may hindi kinakailangang bukas na port at isara ito.

Q4. Paano suriin ang proseso na gumagamit ng partikular na port?

A:Gumamit ng lsof command upang suriin ang proseso na gumagamit ng partikular na port:

sudo lsof -i :[port number]

Halimbawa: Para sa port 80

sudo lsof -i :80

Halimbawa ng output:

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

Q5. Paano payagan lamang ang partikular na IP address gamit ang ufw?

A:Upang payagan lamang ang connection mula sa partikular na IP address, gumamit ng sumusunod na command:

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

Halimbawa: Payagan ang connection mula sa IP address 192.168.1.100 sa port 22 (SSH):

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Q6. Ano ang gagawin kung gustong baguhin ang port number?

A:Upang baguhin ang port number, i-edit ang config file ng serbisyo. Narito ang halimbawa para sa SSH:

  1. I-edit ang config file:
sudo nano /etc/ssh/sshd_config
  1. Hanapin ang Port setting at itakda ang bagong port number:
Port 2222
  1. I-restart ang SSH service:
sudo systemctl restart ssh
  1. Payagan ang bagong port sa firewall:
sudo ufw allow 2222/tcp

Q7. Maaari bang payagan ang maraming port nang sabay-sabay?

A:Oo, maaaring payagan ang maraming port nang sabay-sabay. Gumamit ng mga sumusunod na paraan:

  1. Kung para sa partikular na range:
sudo ufw allow 1000:2000/tcp

Paliwanag:Payagan ang range mula port 1000 hanggang 2000.

  1. Kung individually:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
年収訴求