Setiap port yang terbuka adalah satu pintu ke server Anda. Sebagian pintu memang harus terbuka, misalnya 443 untuk situs. Masalahnya, banyak server membuka lebih banyak pintu daripada yang pemiliknya sadari: layanan yang dipasang sekali lalu terlupa, atau kontainer yang diam-diam menerbitkan port ke internet. Dalam beberapa insiden terakhir, penyerang tidak perlu menembus apa pun yang rumit. Mereka cukup mengetuk pintu yang memang dibiarkan terbuka.
Artikel ini menunjukkan cara melihat semua port yang terbuka di server Linux, dari dalam server dan dari luar, cara membaca hasilnya, dan cara menutup yang tidak perlu. Semua perintah memakai alat yang sudah ada atau mudah dipasang: ss dan nmap.
haniv@thevault:~$ cat /etc/issue Ubuntu 26.04.1 LTS \n \l haniv@thevault:~$ nmap --version Nmap version 7.98 ( https://nmap.org ) Platform: x86_64-pc-linux-gnu Compiled with: liblua-5.4.8 openssl-3.5.5 libssh2-1.11.1 libz-1.3.1 libpcre2-10.46 libpcap-1.10.6 nmap-libdnet-1.18.0 ipv6 Compiled without: Available nsock engines: epoll poll select haniv@thevault:~$ date Mon Nov 2 07:35:14 AM UTC 2026 haniv@thevault:~$
Ringkasnya: jalankan sudo ss -tulpn di server untuk melihat apa yang mendengarkan, lalu nmap dari komputer lain untuk melihat apa yang benar-benar terjangkau dari luar. Bandingkan keduanya. Selisihnya menunjukkan apa yang diblokir firewall.
Apa arti "port terbuka"
Ada dua hal berbeda yang sering tercampur:
- Layanan mendengarkan (listening): ada program di server yang menunggu koneksi pada sebuah port. Ini terlihat dari dalam server.
- Port terjangkau dari luar: koneksi dari internet benar-benar sampai ke layanan itu. Ini bergantung pada firewall server, firewall penyedia VPS, dan pengaturan jaringan.
Sebuah layanan bisa mendengarkan tetapi diblokir firewall, dan itu aman selama firewall-nya benar. Karena itu kita mengecek dua sisi.
Langkah 1: lihat apa yang mendengarkan dengan ss
sudo ss -tulpn
Arti opsinya: -t TCP, -u UDP, -l hanya yang mendengarkan, -p tampilkan nama proses, -n tampilkan angka port tanpa menerjemahkan nama.
Format keluarannya seperti ini (angka dan layanan di server Anda akan berbeda):
Cara membaca kolom Local Address
| Yang tampil | Artinya | Apa yang perlu dilakukan |
|---|---|---|
0.0.0.0:PORT atau [::]:PORT | Mendengarkan di semua antarmuka. Bisa dijangkau dari luar bila firewall mengizinkan. | Pastikan Anda memang ingin layanan ini terbuka. |
127.0.0.1:PORT atau [::1]:PORT | Hanya bisa diakses dari server itu sendiri. | Aman dari luar. Cocok untuk database dan layanan internal. |
Alamat IP tertentu (mis. 10.0.0.5:PORT) | Hanya pada antarmuka itu, misalnya jaringan privat atau VPN. | Periksa apakah antarmuka itu terjangkau dari luar. |
Untuk setiap baris yang berawalan 0.0.0.0 atau [::], tanyakan: apakah saya tahu layanan ini, dan apakah ia perlu terbuka ke internet? Kalau jawabannya tidak, itu kandidat untuk ditutup.
Langkah 2: cek firewall
sudo ufw status verbose
Perintah ini menampilkan kebijakan bawaan dan aturan yang aktif. Kalau UFW belum aktif, hasilnya Status: inactive. Cara mengaturnya ada di checklist keamanan VPS Linux baru.
Awas kontainer Docker
Port yang diterbitkan kontainer Docker dapat melewati aturan UFW, karena Docker mengatur aturan jaringannya sendiri. Jadi UFW yang tampak rapi belum menjamin kontainer Anda tertutup. Cek port yang diterbitkan:
docker ps --format "table {{.Names}}\t{{.Ports}}"
Bila Anda melihat 0.0.0.0:8080->80/tcp, port 8080 terbuka ke semua alamat. Agar hanya bisa diakses dari server itu sendiri, ikat ke 127.0.0.1 di berkas compose:
ports: - "127.0.0.1:8080:80"
Langkah 3: cek dari luar dengan nmap
Hanya untuk server milik sendiri atau yang Anda punya izin tertulis untuk diperiksa. Memindai sistem orang lain tanpa izin bisa melanggar hukum dan aturan penyedia layanan. Cek juga ketentuan penyedia VPS Anda.
Jalankan dari komputer atau jaringan lain, misalnya dari hotspot ponsel, bukan dari server itu sendiri:
nmap -Pn -p 1-10000 ALAMAT-IP-SERVER
Untuk memeriksa semua port TCP, ganti dengan -p-; prosesnya lebih lama. Untuk UDP yang paling umum:
sudo nmap -Pn -sU --top-ports 50 ALAMAT-IP-SERVER
Arti status yang muncul: open (ada layanan yang menjawab), closed (terjangkau tetapi tidak ada layanan), filtered (tidak ada jawaban, biasanya dibuang firewall). Untuk UDP, hasil open|filtered berarti nmap tidak bisa memastikan.
Cara membandingkan: semua yang open pada nmap seharusnya ada di daftar
ss dan memang Anda niatkan terbuka. Layanan di ss yang tidak muncul di nmap berarti sudah ditahan firewall.
Menutup port yang tidak perlu
Urutan dari yang paling bersih:
- Matikan layanan yang tidak dipakai.
sudo systemctl disable --now NAMA-LAYANAN
- Ikat layanan ke 127.0.0.1 bila hanya dipakai lokal (pengaturan
bindataulistendi berkas konfigurasi layanan itu, atau pemetaan port Docker seperti di atas). - Batasi lewat firewall untuk layanan yang harus berjalan tetapi tidak perlu terbuka untuk semua orang. Contoh: SSH hanya dari satu alamat.
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp sudo ufw status numbered
Alamat 203.0.113.10 hanyalah contoh; ganti dengan alamat Anda. Hapus aturan lama yang terlalu longgar dengan
sudo ufw delete NOMOR, dan buka sesi SSH kedua untuk menguji sebelum menutup sesi pertama.
Setelah itu ulangi Langkah 1 dan 3, dan pastikan yang Anda tutup benar-benar hilang dari nmap.
Contoh kasus: pintu yang dibiarkan terbuka
- Server media Plex. Pada serangan Plex2Shell, layanan di port 32400 yang terjangkau dari internet menjadi sasaran. Jika Anda memakai Plex, cek apakah port itu perlu terbuka untuk umum. Detail dan langkah update ada di artikel Plex2Shell.
- Nextcloud dan layanan web lain. Aplikasi yang terbuka ke internet menjadi sasaran begitu ada celah. Lihat kasus Nextcloud dan Collabora CODE untuk contoh cara memeriksa server setelah ada celah.
- Router dan perangkat jaringan. Per 5 September 2026, Shadowserver mencatat sekitar 122.500 perangkat MikroTik dengan antarmuka SSH yang terbuka ke internet, menurut laporan BleepingComputer. Perangkat dengan layanan manajemen terbuka seperti itulah yang dibidik rantai serangan yang dilaporkan CERT Polska.
Daftar periksa
- Saya sudah menjalankan
sudo ss -tulpndan tahu fungsi setiap layanan yang mendengarkan di0.0.0.0atau[::]. - Saya sudah memeriksa dari luar dengan nmap (hanya pada server saya).
- Port yang diterbitkan kontainer Docker sudah saya cek dan yang tidak perlu diikat ke 127.0.0.1.
- Layanan yang tidak dipakai sudah dimatikan.
- Firewall aktif dan hanya membuka yang diperlukan.
Sumber
- BleepingComputer: Hackers exploit new MikroTik RouterOS flaws to hijack routers (7 September 2026), sumber angka Shadowserver
- BleepingComputer: CISA: Hackers chain Plex flaws in Plex2Shell attacks to breach servers



Belum ada komentar
- Kritik dan saran sangat saya nantikan untuk kemajuan blog ini.
- Silakan report, jika ada link yang mati.
- Mohon untuk berkomentar sesuai dengan tema postingan.
- Dilarang berkomentar yang mencantumkan LINK AKTIF.