Menguasai dua kata kunci inti UFW: allow dan deny. Membuat aturan port sederhana dan kombinasi port plus protokol TCP/UDP, memahami pola default deny incoming dan allow outgoing, serta memilih antara reject dan drop sesuai kebutuhan

Di episode 3 UFW sudah aktif dan SSH aman. Sekarang kita masuk ke inti pengelolaan firewall sehari-hari: aturan allow dan deny. Hampir semua pekerjaan UFW kalian — membuka port web, memblokir layanan mencurigakan, membatasi akses — adalah variasi dari dua kata kunci ini.
Mengapa episode ini penting? Karena aturan yang salah arah (allow vs deny), salah protokol (TCP vs UDP), atau salah port bisa membuka celah keamanan atau mematikan layanan produksi. Memahami pola pikir di balik allow/deny akan membuat kalian menulis ruleset yang bersih sejak awal — bukan menumpuk aturan lalu bertanya-tanya kenapa layanan rusak.
Setiap aturan UFW pada dasarnya menjawab empat pertanyaan:
ufw [allow | deny | limit] [arah] [from SUMBER] [to TUJUAN] [port PORT] [proto PROTO]Dalam episode ini kita fokus pada bentuk paling sederhana — hanya port dan protokol. Bentuk lengkap dengan source/destination menyusul di episode 5-6.
Perintah paling sederhana untuk membuka sebuah port (mengizinkan TCP dan UDP):
sudo ufw allow 80Perhatikan: tanpa menyebut protokol, UFW membuka kedua protokol untuk port itu. Ini sering lebih permisif dari yang dibutuhkan — HTTP di port 80 misalnya hanya butuh TCP.
Praktik terbaiknya: selalu sebutkan protokolnya. Gunakan tcp untuk layanan yang butuh koneksi andal (web, SSH, email), udp untuk layanan tanpa koneksi (DNS, DHCP, game streaming):
sudo ufw allow 80/tcp
sudo ufw allow 53/udpRule addedAturan 80/tcp dan 53/udp adalah contoh paling umum sepanjang hidup kalian sebagai admin. Selalu tanya diri: apakah layanan ini benar-benar butuh UDP? Jika ragu, batasi ke TCP.
Beberapa layanan punya nama yang sudah dikenal UFW — shortcut dari application profiles yang akan dibahas di episode 7:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow httpsufw allow ssh sama dengan ufw allow 22/tcp. UFW menerjemahkan nama ke port dari file application profile di /etc/ufw/applications.d/.
deny memblokir lalu lintas. Contoh paling terkenal: port 23 (telnet, tidak aman) sebaiknya ditolak total:
sudo ufw deny 23/tcpRule addedSetelah aturan ini ada, koneksi telnet dari mana pun akan dibuang (drop) — tidak ada balasan ke pengirim, sehingga pemindai kesulitan mendeteksi keberadaan port.
Note
Ingat kembali perbedaan dari episode 0: UFW deny = drop (diam), sedangkan reject (kita pakai di aturan-aturan sistem) = kirim balasan "port tertutup". Drop cocok untuk menyembunyikan port; reject cocok untuk layanan yang memang harus tampak tertutup, seperti port yang tidak digunakan pada layanan publik.
Inilah fondasi keamanan seluruh series. Default policies UFW (dari episode 2) berarti:
Default: deny (incoming), allow (outgoing), disabled (routed)Konsekuensi praktis dari pola ini: untuk membuka sebuah layanan, kalian cukup menambahkan aturan allow — tidak perlu menulis aturan deny satu per satu untuk sisanya. Semua yang tidak diizinkan otomatis tertutup. Ini filosofi default deny yang akan kita pelajari mendalam di episode 9.
Bayangkan sebuah VPS yang menjalankan SSH (22), web server (80/443), dan DNS resolver (53/udp). Ruleset-nya:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 53/udp
sudo ufw deny 23/tcpPerhatikan pola yang konsisten: layanan diizinkan eksplisit, sisanya dibiarkan jatuh ke default DROP. deny 23/tcp di atas hanyalah penegasan visual — sebenarnya port 23 sudah tertutup oleh default policy. Itulah keindahan default deny: aturan deny eksplisit hanya dibutuhkan untuk menegaskan niat atau untuk alasan dokumentasi.
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
53/udp ALLOW Anywhere
23/tcp DENY Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
53/udp (v6) ALLOW Anywhere (v6)
23/tcp (v6) DENY Anywhere (v6)Setiap aturan punya kembaran IPv6 — sekali lagi, keunggulan otomatisasi yang tidak perlu kalian tangani manual.
Tiga kesalahan yang paling sering terjadi:
ufw allow 80 membuka TCP dan UDP — lebih permisif dari yang dibutuhkan. Selalu sebutkan 80/tcp.allow 80/tcp lalu deny 80/tcp, hasilnya tergantung posisi di ruleset (episode 17 membahas ordering).ufw allow 2222/tcp = terkunci. Selalu sinkronkan perubahan layanan dengan aturan firewall.Tip
Aturan praktis: buka port seminimal mungkin dan se-sesifik mungkin. ufw allow 80/tcp lebih baik dari ufw allow 80, dan jauh lebih baik daripada membuka port pada IP publik tanpa batas sumber. Ke arah yang lebih ketat kita akan berkembang di episode 5-6.
Pada episode 4 ini, kalian telah menguasai dua kata kunci inti UFW.
Inti yang harus dibawa pulang:
ufw allow <port> membuka TCP+UDP; ufw allow <port>/tcp atau /udp lebih presisi dan selalu lebih baik.ufw deny <port> menolak dengan drop; reject (balas tertutup) tersedia di aturan sistem.deny incoming, allow outgoing membuat aturan deny eksplisit jarang diperlukan.Di episode 5 selanjutnya, kita perluas cakupan aturan: port, range, dan interface — membuka range port seperti 6000:6010/tcp, membatasi aturan ke interface tertentu dengan allow in on eth0, dan menentukan IP sumber dengan from. Sampai jumpa di episode 5!