[Panduan Lengkap] Cara Memeriksa Port Terbuka pada Ubuntu dan Menyelesaikan Masalah

1. Pengenalan

Dalam pengurusan rangkaian dan pentadbiran pelayan, memahami status port dengan tepat adalah penting. Terutamanya apabila menggunakan Ubuntu, memeriksa port terbuka dan proses aktif membantu meningkatkan langkah keselamatan dan membolehkan penyelesaian masalah yang cepat.

Artikel ini memberikan penjelasan terperinci tentang arahan dan alat asas yang digunakan untuk memeriksa port pada Ubuntu. Direka untuk pengguna pemula hingga pertengahan, ia menawarkan langkah-langkah praktikal dan mudah diikuti, jadi pastikan anda membaca hingga akhir.

2. Apakah Port?

2.1 Konsep Asas Port

Port adalah pintu komunikasi maya yang digunakan oleh komputer dan peranti rangkaian untuk menghantar dan menerima data. Secara khusus, ia membolehkan pelbagai aplikasi berkomunikasi serentak pada alamat IP yang sama dengan mengenal pasti dan mengarahkan data ke aplikasi yang sesuai.

Sebagai contoh, pelayan web menggunakan port 80 untuk komunikasi HTTP. Jika pelayan yang sama juga membenarkan sambungan SSH, ia menggunakan port 22. Oleh kerana perkhidmatan berbeza dibezakan oleh nombor port mereka, memeriksa status port adalah penting untuk pengurusan rangkaian.

2.2 Jenis dan Peranan Port

Port dikategorikan kepada tiga jenis utama:

  1. Port Terkenal (0–1023)
  • Diperstandardkan secara global dan ditetapkan kepada perkhidmatan yang digunakan secara meluas.

  • Contoh:

  • HTTP: 80
  • HTTPS: 443
  • SSH: 22
  1. Port Berdaftar (1024–49151)
  • Digunakan oleh aplikasi atau organisasi khusus.

  • Contoh:

  • MySQL: 3306
  • PostgreSQL: 5432
  1. Port Dinamik (49152–65535)
  • Port sementara yang sering digunakan untuk komunikasi sisi pelanggan.

Memahami pengelasan ini memudahkan penentuan bagaimana port digunakan.

3. Cara Memeriksa Port pada Ubuntu

Ubuntu menawarkan pelbagai alat untuk memeriksa status port. Di sini, kami akan menerangkan empat arahan praktikal.

3.1 Menggunakan Arahan ss

Arahan ss adalah alat pengurusan rangkaian yang berkuasa dalam Linux. Ia cepat dan menyediakan maklumat sambungan terperinci.

Arahan Asas:

sudo ss -ltn

Penjelasan Pilihan:

  • -l : Memaparkan hanya port yang mendengar.
  • -t : Menunjukkan hanya sambungan protokol TCP.
  • -n : Memaparkan alamat dan nombor port dalam format nombor.

Contoh 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 Menggunakan Arahan netstat

Arahan netstat adalah alat pengurusan rangkaian tradisional. Walaupun ia secara beransur-ansur digantikan oleh ss, ia masih tersedia pada banyak sistem.

Arahan Asas:

sudo netstat -ltn

Contoh 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 Menggunakan Arahan lsof

Arahan lsof berguna untuk mengenal pasti proses yang menggunakan port khusus.

Memeriksa Port Khusus:

sudo lsof -i :80

Contoh Output:

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

3.4 Menggunakan Arahan nmap

Alat nmap mengkhususkan dalam imbasan rangkaian dan diagnostik keselamatan.

Imbas Localhost:

sudo nmap localhost

Contoh 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

Perkara Utama:

  • Memaparkan port terbuka dan perkhidmatan yang berkaitan.
  • Mengimbas pelayan luaran memerlukan kebenaran terlebih dahulu.

4. Memeriksa Tetapan Firewall

Dalam Ubuntu, firewall biasanya digunakan untuk meningkatkan keselamatan. ufw (Uncomplicated Firewall) adalah alat yang digunakan secara meluas, mudah tetapi berkuasa. Bahagian ini menerangkan cara memeriksa dan mengubahsuai kebenaran port menggunakan ufw.

4.1 Memeriksa Status Firewall

Memeriksa Status Firewall:

sudo ufw status verbose

Contoh 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

Penjelasan:

  • Status: active : Firewall diaktifkan.
  • Logging: on : Merekod aktiviti firewall.
  • Default: deny (incoming), allow (outgoing) : Menolak sambungan masuk secara lalai sambil membenarkan yang keluar.
  • ALLOW : Menentukan port/perkhidmatan mana yang dibenarkan (contohnya, SSH dan HTTP).

Nota: Jika firewall dilumpuhkan (Status: inactive), aktifkannya dengan:

sudo ufw enable

4.2 Membolehkan atau Menghalang Port

Membolehkan port khusus:

sudo ufw allow 22/tcp

Penjelasan:

  • Membolehkan sambungan TCP pada port 22 (SSH).

Menghalang port khusus:

sudo ufw deny 80/tcp

Penjelasan:

  • Menghalang akses ke port 80 (HTTP).

Membolehkan hanya alamat IP khusus:

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Penjelasan:

  • Membolehkan sambungan SSH hanya dari alamat IP 192.168.1.100 .

4.3 Menetapkan Semula dan Mengkaji Semula Tetapan Firewall

Untuk menetapkan semula tetapan firewall dan bermula semula, gunakan arahan berikut:

sudo ufw reset

Arahan ini memadamkan semua peraturan dan memulihkan firewall ke keadaan lalainya. Sentiasa kaji semula peraturan selepas membuat perubahan.

5. Contoh Praktikal: Memeriksa Port Khusus

Di sini, kami akan tunjukkan cara memeriksa status SSH (port 22) sebagai contoh.

5.1 Memeriksa Status Port

Contoh arahan:

sudo ss -ltn | grep ':22'

Contoh Output:

LISTEN      0      128        0.0.0.0:22            0.0.0.0:*

Perkara Utama:

  • Jika output menunjukkan LISTEN , port tersebut terbuka dan menunggu sambungan.
  • 0.0.0.0 bermakna pelayan menerima sambungan dari mana-mana alamat IP.

5.2 Mengesan Proses yang Menggunakan Port

Contoh arahan:

sudo lsof -i :22

Contoh Output:

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

Perkara Utama:

  • sshd adalah proses daemon yang mengurus sambungan SSH.
  • ID proses (PID) boleh digunakan untuk menghentikan atau memulakan semula perkhidmatan.

Untuk menghentikan proses:

sudo kill 1234

5.3 Contoh Penyelesaian Masalah

Masalah: Port tidak terbuka atau tidak boleh diakses.

Langkah untuk membetulkan:

  1. Periksa tetapan firewall:
sudo ufw status verbose
  1. Jika port dihalang, benarkannya:
sudo ufw allow 22/tcp
  1. Periksa dan mulakan semula perkhidmatan jika perlu:
sudo systemctl restart ssh

6. Amalan Terbaik Keselamatan Port

Pengurusan port secara langsung dikaitkan dengan keselamatan rangkaian. Berikut adalah perkara utama untuk meningkatkan keselamatan.

6.1 Menutup Port yang Tidak Perlu

Port yang tidak digunakan harus ditutup untuk mengelakkan serangan berpotensi.

Contoh: Menutup port 80

sudo ufw deny 80/tcp

6.2 Mencegah Imbasan Port

Imbasan port adalah teknik yang digunakan oleh penyerang untuk mencari kelemahan dalam sistem. Langkah-langkah berikut boleh membantu mencegahnya:

  1. Memperkukuhkan peraturan firewall:
sudo ufw default deny incoming
  1. Memantau log:
sudo tail -f /var/log/ufw.log
  1. Menggunakan alat pengesanan pencerobohan:
  • Alat seperti fail2ban boleh menghalang percubaan akses mencurigakan secara automatik.

7. Kesimpulan

Artikel ini menyediakan langkah-langkah terperinci untuk memeriksa port pada Ubuntu, mengurus tetapan firewall menggunakan ufw, dan melaksanakan langkah keselamatan.

7.1 Pengajaran Utama

  • Memahami Port: Port bertindak sebagai pintu gerbang komunikasi dan dikategorikan kepada port terkenal, terdaftar, dan dinamik.
  • Menggunakan Arahan untuk Memeriksa Port:
  • Arahan seperti ss , netstat , lsof , dan nmap membantu memeriksa status port dan proses yang sedang berjalan.
  • Pengurusan Firewall:
  • ufw boleh digunakan untuk membenarkan atau menyekat port tertentu, meningkatkan keselamatan.
  • Langkah Keselamatan:
  • Menutup port yang tidak perlu, memantau log, dan menggunakan alat keselamatan membantu mengekalkan persekitaran rangkaian yang selamat.

7.2 Aplikasi Masa Depan

Pengurusan port adalah aspek asas keselamatan rangkaian. Gunakan pengetahuan dari panduan ini untuk mengekalkan persekitaran pelayan yang selamat.

FAQ: Soalan Lazim Mengenai Memeriksa Port pada Ubuntu

Q1. Apa yang harus saya lakukan jika port tidak terbuka pada Ubuntu?

A:
Jika port tidak terbuka, ikuti langkah-langkah ini:

  1. Periksa tetapan firewall:
sudo ufw status verbose

Jika firewall menyekat port, benarkan ia dengan arahan berikut:

sudo ufw allow [port number]/tcp
  1. Sahkan bahawa perkhidmatan yang berkaitan sedang berjalan:
sudo systemctl status [service name]

Contoh: Untuk SSH, gunakan:

sudo systemctl status ssh

Jika perkhidmatan tidak berjalan, mulakan semula ia:

sudo systemctl restart [service name]
  1. Periksa jika perkhidmatan menggunakan port yang betul:

Sahkan fail konfigurasi (contohnya, untuk SSH, periksa /etc/ssh/sshd_config) untuk memastikan port yang betul ditetapkan.

Q2. Apakah perbezaan antara ss dan netstat?

A:
ss dan netstat kedua-duanya alat untuk memeriksa sambungan rangkaian, tetapi ia mempunyai perbezaan utama:

  • ss:
  • Disyorkan untuk sistem Linux moden.
  • Lebih cepat dan menyediakan maklumat yang lebih terperinci.
  • Contoh arahan: sudo ss -ltn
  • netstat:
  • Alat yang lebih lama yang secara beransur-ansur dihapuskan.
  • Masih tersedia pada banyak sistem untuk keserasian.
  • Contoh arahan: sudo netstat -ltn

Untuk sistem yang lebih baru, ss adalah pilihan yang disukai.

Q3. Bagaimana saya boleh mengesan jika seseorang sedang mengimbas port saya?

A:
Untuk mengesan imbasan port, cuba kaedah berikut:

  1. Periksa log firewall:
sudo tail -f /var/log/ufw.log

Cari alamat IP yang tidak biasa atau percubaan sambungan yang berulang.

  1. Gunakan sistem pengesanan pencerobohan (IDS):
  • Pasang dan konfigurasi alat seperti fail2ban atau Snort untuk menyekat akses berbahaya secara automatik.
  1. Imbas pelayan anda sendiri menggunakan nmap:
sudo nmap localhost

Periksa port yang terbuka dan tutup mana-mana yang tidak perlu.

Q4. Bagaimana saya boleh memeriksa proses mana yang menggunakan port tertentu?

A:
Gunakan arahan lsof untuk mengenal pasti proses yang menggunakan port tertentu:

sudo lsof -i :[port number]

Contoh: Untuk memeriksa port 80:

sudo lsof -i :80

Contoh Output:

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

Q5. Bagaimana saya boleh membenarkan hanya alamat IP tertentu menggunakan ufw?

A:
Untuk membenarkan akses dari hanya alamat IP tertentu, gunakan arahan berikut:

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

Contoh: Benarkan akses SSH (port 22) hanya dari alamat IP 192.168.1.100:

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Q6. Bagaimana saya boleh menukar nombor port untuk perkhidmatan?

A:
Untuk menukar nombor port perkhidmatan, edit fail konfigurasi nya. Berikut adalah contoh untuk SSH:

  1. Buka fail konfigurasi:
sudo nano /etc/ssh/sshd_config
  1. Cari tetapan Port dan tukar nombor port:
Port 2222
  1. Mulakan semula perkhidmatan SSH:
sudo systemctl restart ssh
  1. Benarkan port baru dalam firewall:
sudo ufw allow 2222/tcp

Q7. Bolehkah saya membenarkan pelbagai port sekaligus?

A:
Ya, anda boleh membenarkan pelbagai port sekaligus menggunakan kaedah berikut:

  1. Benarkan julat port:
sudo ufw allow 1000:2000/tcp

Penjelasan: Membolehkan sambungan TCP pada port 1000 hingga 2000.

  1. Benarkan pelbagai port tertentu:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
侍エンジニア塾