Lewati ke isi

Server & Infrastruktur

Daftar Port Penting di Server dan Fungsinya

Port 22, 80, 443, 3306, 6379 dan lainnya: apa fungsinya, mana yang boleh terbuka ke internet, dan cara mengecek port yang terbuka di servermu.

Terbit 6 menit baca

Jawaban singkat

Port yang umumnya perlu terbuka ke internet hanya 80 dan 443 untuk web, 22 untuk SSH (sebaiknya dibatasi), serta port email bila kamu menjalankan server email. Port database dan cache seperti 3306, 5432, dan 6379 sebaiknya hanya bisa diakses dari dalam server atau jaringan privat.

Daftar isi
  1. Apa itu port, singkatnya?
  2. Daftar port yang paling sering ditemui
  3. Port mana yang tidak boleh terbuka ke internet?
  4. Bagaimana cara mengecek port yang terbuka?
  5. Kebiasaan sederhana yang menjaga port tetap rapi
  6. Bagaimana dengan mengganti nomor port?
  7. Pertanyaan yang sering diajukan

Sebagian besar server cukup membuka dua atau tiga port ke internet, dan sisanya sebaiknya tertutup.

Kenapa ini penting? Setiap port yang terbuka adalah pintu yang bisa diketuk siapa saja. Bot pemindai bekerja terus-menerus mencari port database, panel admin, atau layanan cache yang lupa dikunci. Kalau kamu tahu fungsi tiap port, kamu bisa memutuskan dengan tenang mana yang memang harus melayani publik dan mana yang cukup didengar dari dalam server.

Apa itu port, singkatnya?

Satu alamat IP bisa menjalankan banyak layanan sekaligus. Port adalah nomor yang membedakan layanan itu: permintaan ke port 443 diterima web server, permintaan ke port 22 diterima SSH. Ada dua jenis yang sering kamu temui, TCP (koneksi yang memastikan data sampai berurutan) dan UDP (lebih ringan, dipakai misalnya oleh DNS dan HTTP/3).

Nomor port hanyalah kebiasaan. Database bisa saja kamu jalankan di port lain, tapi angka standar di bawah ini yang dicari pertama kali oleh pemindai otomatis.

Daftar port yang paling sering ditemui

PortProtokolLayananBuka ke internet?
22TCPSSH, login jarak jauhYa, tapi batasi (SSH key, IP tertentu)
25TCPSMTP antar server emailHanya bila menjalankan server email
53TCP/UDPDNSHanya bila server menjadi DNS server publik
80TCPHTTPYa, untuk website (biasanya dialihkan ke HTTPS)
443TCP (dan UDP untuk HTTP/3)HTTPSYa, untuk website
465 dan 587TCPPengiriman email dari aplikasi atau klienHanya bila menjalankan server email
993TCPIMAP terenkripsi (membaca email)Hanya bila menjalankan server email
3306TCPMySQL dan MariaDBTidak
5432TCPPostgreSQLTidak
6379TCPRedisTidak
2083, 2087TCPcPanel dan WHMSebaiknya dibatasi
8443TCPPlesk (juga dipakai aplikasi lain)Sebaiknya dibatasi
2222TCPDirectAdminSebaiknya dibatasi

Beberapa catatan agar tabel itu tidak disalahpahami.

Port 22 hampir selalu perlu terbuka di VPS, karena itu jalur kamu masuk. Yang membuatnya aman bukan menutupnya, melainkan login dengan kunci dan mematikan login password. Penjelasannya ada di SSH key vs password.

Port 80 masih berguna walau websitemu sudah HTTPS penuh. Pengunjung yang mengetik alamat tanpa https:// masuk lewat port ini lalu dialihkan, dan banyak penerbit sertifikat otomatis memverifikasi domain lewat port 80.

Port 25, 465, 587, dan 993 hanya relevan bila server itu sendiri menjadi server email. Kalau email bisnismu memakai layanan terpisah, port ini tidak perlu dibuka sama sekali di server web.

Port 53 sering ikut terbuka tanpa disadari di server yang memasang resolver DNS. DNS yang menjawab siapa saja dari internet bisa disalahgunakan untuk serangan pantulan, jadi tutup kecuali server itu memang ditugaskan sebagai DNS publik.

Port mana yang tidak boleh terbuka ke internet?

Kelompok yang paling sering bocor adalah database dan cache.

  • 3306 (MySQL/MariaDB) dan 5432 (PostgreSQL). Aplikasi di server yang sama terhubung lewat localhost, jadi tidak ada alasan membuka port ini ke publik. Kalau aplikasi ada di server lain, pakai jaringan privat atau batasi ke IP server aplikasi saja.
  • 6379 (Redis). Redis dirancang untuk diakses dari jaringan tepercaya. Instance Redis yang terbuka ke internet adalah sasaran klasik pemindai.
  • Port panel dan dashboard seperti 2083, 2087, 8443, 2222, atau port aplikasi seperti Grafana dan phpMyAdmin. Panel ini memang harus bisa kamu buka, tapi idealnya hanya dari IP kantor, lewat VPN, atau minimal dengan autentikasi dua langkah.
  • Port pengembangan seperti 3000, 5000, 8000, atau 8080 yang dipakai aplikasi Node.js, Python, atau container. Biasanya aplikasi ini seharusnya berada di belakang reverse proxy, bukan langsung menghadap internet.

Bagaimana cara mengecek port yang terbuka?

Ada dua sudut pandang, dan keduanya perlu.

Dari dalam server, lihat layanan apa saja yang sedang mendengarkan:

sudo ss -tulpn

Perhatikan kolom alamat. 127.0.0.1:3306 artinya MySQL hanya mendengar dari dalam server, aman. 0.0.0.0:3306 atau [::]:3306 artinya mendengar di semua alamat, termasuk IP publik, dan nasibnya bergantung pada firewall.

Dari luar server, uji apa yang benar-benar bisa dijangkau. Dari komputer lain, jalankan pemindai port seperti nmap ke IP servermu sendiri:

nmap -Pn IP_SERVER

Hasil dari luar inilah yang dilihat penyerang. Lakukan hanya terhadap server milikmu sendiri.

Lalu cocokkan dengan aturan firewall. Di Ubuntu dengan UFW, sudo ufw status verbose menampilkan port yang diizinkan. Langkah dasar menyiapkan firewall dari nol dibahas di cara mengamankan VPS baru.

Kebiasaan sederhana yang menjaga port tetap rapi

Mulai dari prinsip "tolak semua, izinkan yang perlu". Firewall menolak semua koneksi masuk secara default, lalu kamu membuka 22, 80, dan 443 satu per satu.

Ikat layanan internal ke localhost di konfigurasinya, bukan hanya mengandalkan firewall. Untuk MySQL, opsi bind-address = 127.0.0.1. Untuk Redis, opsi bind 127.0.0.1. Dengan begitu, kalau suatu hari firewall tidak sengaja dimatikan, database tetap tidak terlihat dari luar.

Untuk panel admin, batasi sumbernya. Mengizinkan port 2087 hanya dari IP kantor jauh lebih kuat daripada membukanya untuk semua orang. Bila IP kantormu berubah-ubah, VPN adalah jalan tengah yang rapi.

Terakhir, ulangi pengecekan setiap kali memasang aplikasi baru. Banyak aplikasi membuka port sendiri saat instalasi, dan itu baru ketahuan bila kamu memeriksanya.

Bagaimana dengan mengganti nomor port?

Memindahkan SSH dari 22 ke port lain mengurangi jumlah percobaan login dari bot yang hanya memindai port standar, sehingga log lebih bersih. Tapi ini bukan pengamanan utama. Pemindai yang serius tetap menemukan layanan di port mana pun. Anggap saja sebagai lapisan tambahan setelah SSH key, firewall, dan pembaruan rutin sudah beres.

Pertanyaan yang sering diajukan

Apakah port 80 boleh ditutup kalau website sudah HTTPS?

Bisa, tapi biasanya tidak disarankan. Port 80 dipakai untuk mengalihkan pengunjung ke HTTPS dan sering dipakai untuk verifikasi sertifikat otomatis seperti Let's Encrypt. Yang penting, port 80 hanya mengalihkan dan tidak menyajikan konten sensitif.

Apakah IPv6 perlu diperhatikan terpisah?

Ya. Server yang punya IPv6 bisa punya aturan firewall terpisah untuk IPv4 dan IPv6. Pastikan port yang kamu tutup di IPv4 juga tertutup di IPv6, misalnya dengan memeriksa opsi IPV6 di konfigurasi UFW.

Kenapa nmap dari luar menunjukkan port berstatus filtered?

Filtered artinya paket ke port itu tidak dijawab, biasanya karena diblokir firewall di server atau di jaringan penyedia. Itu kondisi yang diharapkan untuk port yang memang tidak kamu buka.

Kalau harus diringkas: buka 80 dan 443 untuk web, jaga 22 dengan SSH key, buka port email hanya di server email, dan biarkan database, cache, serta panel tersembunyi di balik localhost, jaringan privat, atau daftar IP yang diizinkan.

Baca juga