Memperluas aturan UFW dari port tunggal ke range port seperti 6000:6010/tcp, membatasi aturan pada interface tertentu dengan allow in on eth0, serta mengatur IP sumber dengan kata kunci from dan proto any untuk kontrol yang lebih presisi

Episode 4 membatasi aturan pada port tunggal. Di episode 5 kita memperbesar cakupan: range port, interface, dan IP sumber. Tiga konsep ini yang membedakan aturan firewall amateur — yang membuka port untuk semua orang — dari aturan profesional yang membuka port hanya untuk siapa yang tepat, lewat jalur yang tepat.
Mengapa ini penting? Karena di dunia nyata layanan tidak selalu mendengarkan di satu port: game server memakai range port, aplikasi RPC memakai ratusan port dinamis, dan mesin dengan banyak interface (LAN + internet) membutuhkan aturan berbeda per interface. Menguasai ketiganya memberi kalian kendali presisi tanpa harus menulis puluhan aturan.
Dari episode 4, bentuk dasar:
sudo ufw allow 80/tcpKita akan memperluas bentuk ini. Perhatikan satu hal penting: bentuk lengkap aturan UFW adalah:
ufw [allow|deny|limit] [in|out] [on INTERFACE]
[from IP] [to IP] [port PORT] [proto PROTO]Semua bagian bersifat opsional — UFW mengisi sisanya dengan nilai default (seperti from Anywhere). Semakin banyak bagian yang kalian sebutkan, semakin spesifik aturannya.
Range port ditulis dengan format AWAL:AKHIR. Contoh paling umum: layanan RTP (Real-Time Protocol) yang memakai port 10000-20000, atau game server yang memakai 27015-27030:
sudo ufw allow 6000:6010/tcpRule addedSintaksnya: titik dua sebagai pemisah, lalu protokol. UFW akan menerjemahkannya menjadi aturan iptables multi-port. Beberapa variasi:
sudo ufw allow 6000:6010/udp
sudo ufw allow 27015:27030/tcpNote
Range port hanya berlaku untuk port tujuan (destination). Tidak ada sintaks range untuk port sumber — jika kalian perlu membatasi port sumber, itu butuh aturan iptables/nftables manual (episode 19).
Untuk memverifikasi range sudah masuk ruleset:
sudo ufw status
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
6000:6010/tcp ALLOW Anywhere
6000:6010/tcp (v6) ALLOW Anywhere (v6)Interface adalah nama logis perangkat jaringan: eth0 (ethernet), wlan0 (wifi), enp0s3 (PCI ethernet), ens3 (biasa di VPS). Cek daftar interface kalian:
ip addr show
ip routeBayangkan sebuah router Linux dengan dua interface: eth0 ke internet publik dan eth1 ke LAN internal. Kalian mungkin ingin:
eth1.eth0.Sintaksnya memakai allow in on <interface>:
sudo ufw allow in on eth1 to any port 22 proto tcpAturan ini berkata: izinkan lalu lintas masuk lewat interface eth1 menuju port 22 TCP. Koneksi SSH dari eth0 (internet) tetap tertolak oleh default policy — justru itulah yang kita inginkan.
sudo ufw allow in on eth1 to any port 22 proto tcp
sudo ufw allow in on eth0 to any port 80 proto tcp
sudo ufw allow in on eth0 to any port 443 proto tcp
sudo ufw deny in on eth0 to any port 22 proto tcpBaris terakhir hanyalah penegasan dokumentasi — default policy sudah menolaknya. Tapi eksplisit lebih baik daripada tersirat saat menulis ruleset yang akan dibaca orang lain (episode 21).
Selain interface, aturan bisa dibatasi berdasarkan IP sumber. Bentuk paling sederhana:
sudo ufw allow from 203.0.113.10Aturan di atas mengizinkan semua port dari IP tersebut — sangat permisif. Versi yang lebih presisi menggabungkan IP sumber dengan port tujuan:
sudo ufw allow from 203.0.113.10 to any port 22 proto tcpArtinya: hanya 203.0.113.10 yang boleh mengakses port 22 saya. Semua IP lain tetap tertolak oleh default policy.
Kadang kalian perlu mengizinkan port untuk protokol apa pun. Kata kuncinya proto any:
sudo ufw allow to any port 53 proto anyproto any setara dengan menulis 80 tanpa protokol di episode 4 — tetapi dalam bentuk lengkap lebih eksplisit. Ini berguna untuk layanan yang memang berjalan di TCP dan UDP sekaligus.
Namun, aturan praktis tetap berlaku: jika kalian tahu protokolnya, sebutkan. proto any hanya untuk kasus di mana keduanya benar-benar dibutuhkan.
Seluruh bagian bisa digabung dalam satu aturan:
sudo ufw allow in on eth1 from 192.168.1.0/24 to any port 22 proto tcpTerjemahan bebas: izinkan lalu lintas masuk lewat eth1, yang sumbernya dari subnet 192.168.1.0/24, menuju port 22 TCP. Ini aturan kelas produksi — tiga dimensi kontrol (jalur, sumber, tujuan) dalam satu baris. Subnet dan kombinasi IP ini akan kita perdalam di episode 6.
6000:6010 benar, 6000-6010 salah dan akan diartikan sebagai nama layanan.eth0 di satu mesin bisa jadi ens5 di mesin lain. Selalu cek dengan ip addr sebelum menulis aturan per interface.allow from IP tanpa port = membuka semua port untuk IP itu. Pastikan selalu sertakan to any port saat tujuannya layanan spesifik.from tanpa to: untuk range port, sintaks lengkapnya ufw allow from IP to any port 6000:6010/tcp.Pada episode 5 ini, kalian telah memperluas kendali aturan UFW.
Inti yang harus dibawa pulang:
ufw allow 6000:6010/tcp — pakai titik dua sebagai pemisah.ufw allow in on eth0 ... untuk membatasi jalur masuk.ufw allow from 203.0.113.10 to any port 22 proto tcp.proto any hanya bila kedua protokol benar-benar dibutuhkan.Di episode 6 selanjutnya, kita fokus penuh pada aturan lanjut dengan IP spesifik & subnet — allow dari subnet CIDR, kombinasi source-destination-port-protocol dalam satu rule, serta ufw insert untuk menempatkan aturan di posisi tertentu. Sampai jumpa di episode 6!