Belajar UFW - Default Policies
Episode 9 of 23

Belajar UFW - Default Policies

Membedah kebijakan default UFW di /etc/default/ufw: DEFAULT_INPUT_POLICY, DEFAULT_OUTPUT_POLICY, dan DEFAULT_FORWARD_POLICY, serta menyusun baseline deny incoming dan allow outgoing sebagai fondasi keamanan server yang sehat

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Episode 2 menyebut default policies sebagai fondasi default deny, dan episode 4-8 memanfaatkannya sepanjang waktu. Episode 9 menaruh sorotan penuh di sana: apa arti sebenarnya dari default policies, bagaimana mengubahnya, dan mengapa kombinasi deny-incoming + allow-outgoing adalah baseline yang benar untuk hampir semua server.

Mengapa ini penting? Karena default policy adalah jaring pengaman terakhir. Apapun yang luput dari aturan eksplisit kalian — port yang lupa ditutup, layanan baru yang lupa diatur — akan jatuh ke kebijakan default. Memilih default yang benar berarti satu kesalahan kecil tidak serta-merta menjadi celah keamanan besar.

Di Mana Default Policies Hidup

Semua kebijakan default UFW ada di satu file: /etc/default/ufw. Empat variabel yang menentukan perilaku firewall:

/etc/default/ufw (variabel kunci)
IPV6=yes
 
DEFAULT_INPUT_POLICY="DROP"
DEFAULT_OUTPUT_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="DROP"
DEFAULT_APPLICATION_POLICY="ACCEPT"
VariabelNilai DefaultArti
DEFAULT_INPUT_POLICYDROPLalu lintas masuk yang tak cocok aturan → dibuang
DEFAULT_OUTPUT_POLICYACCEPTLalu lintas keluar yang tak cocok aturan → diizinkan
DEFAULT_FORWARD_POLICYDROPPaket yang di-forward antar interface → dibuang
DEFAULT_APPLICATION_POLICYACCEPTAturan dari application profiles ikut pola ini

Note

Nilai DROP berarti paket dibuang diam-diam; nilai REJECT berarti dikirim balasan. Untuk default input, Ubuntu memilih DROP karena lebih sulit dideteksi oleh pemindai port.

Membaca Kombinasi Ini dalam Bahasa Manusia

Kombinasi default UFW jika diterjemahkan:

  • Masuk (incoming): kalian harus mengetuk pintu dan menyebut nama — hanya port yang kalian buka eksplisit yang bisa diakses.
  • Keluar (outgoing): server bebas keluar rumah — update apt, koneksi API, DNS, semua berjalan tanpa izin khusus.
  • Forward (routed): server tidak meneruskan lalu lintas orang lain — penting untuk mencegah server menjadi router yang tidak disengaja (episode 13 akan mengubah ini secara eksplisit untuk port forwarding).

Inilah baseline yang kami sebut berulang kali: deny incoming, allow outgoing.

Mengubah Default Policies

Mengubah kebijakan dilakukan dengan mengedit /etc/default/ufw, lalu reload:

Edit default policies
sudo nano /etc/default/ufw

Ubah nilai sesuai kebutuhan, misalnya mengubah default output menjadi deny:

/etc/default/ufw (ubah jadi deny output)
DEFAULT_OUTPUT_POLICY="DENY"

Simpan lalu reload:

Terapkan perubahan
sudo ufw reload

Verifikasi dengan status verbose:

Status setelah perubahan
sudo ufw status verbose
 
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)

Kapan Mengubah Default Policies

Allow Outgoing (default, dianjurkan)

Cocok untuk 95% kasus — VPS, web server, aplikasi. Server perlu bebas melakukan update, mengambil data, dan mengirim log. Membatasi outgoing secara agresif justru menyusahkan operasional dan rawan lockout (misalnya DNS sendiri tak bisa diakses karena kebijakan keluar deny).

Deny Outgoing (ketat, untuk kasus khusus)

Cocok untuk server di zona yang sangat terbatas: workstation yang hanya boleh keluar lewat proxy, atau host yang dikunci hanya untuk layanan spesifik. Konsekuensinya serius:

  • apt update akan gagal kecuali kalian izinkan keluar ke mirror.
  • Resolusi DNS butuh ufw allow out 53/udp.
  • git clone, API calls, semua butuh aturan keluar eksplisit.

Jika memilih jalur ini, susun daftar keluar secara disiplin:

Pola deny outgoing dengan allow eksplisit
sudo ufw default deny outgoing
sudo ufw allow out 53/udp
sudo ufw allow out 80/tcp
sudo ufw allow out 443/tcp

Warning

Ubah default outgoing hanya jika benar-benar dibutuhkan. Mengunci outgoing tanpa perencanaan matang akan menghasilkan server yang "sehat di firewall tapi mati di fungsionalitas" — dan mendiagnosisnya butuh waktu berjam-jam. Untuk series ini, baseline default ACCEPT untuk outgoing tetap kita pakai.

Forward Policy

DEFAULT_FORWARD_POLICY mengontrol paket yang diteruskan antar interface. Nilai DROP di defaultnya menjaga server agar tidak menjadi router sembarangan. Kita akan mengubahnya menjadi ACCEPT di episode 13 saat membangun port forwarding & NAT.

Perintah Cepat untuk Default Policies

UFW punya shortcut untuk mengubah policy tanpa membuka file:

Set default via perintah
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw default deny forward

Sintaksnya: ufw default <policy> <direction>. Tersedia juga sudo ufw default reject incoming untuk mode reject.

Tip

Setelah mengubah kebijakan default, selalu jalankan sudo ufw status verbose untuk memastikan baris Default: sesuai keinginan — dan uji dari mesin lain (episode 3) bahwa layanan kritis masih bisa diakses. Kebijakan default adalah jaring pengaman, bukan tempat untuk bereksperimen di produksi tanpa uji.

Common Pitfalls

  1. Lupa reload setelah edit file: perubahan /etc/default/ufw baru berlaku setelah sudo ufw reload.
  2. Deny outgoing tanpa membuka DNS: allow out 53/udp wajib dihapus dari daftar prioritas, kalau tidak resolusi nama mati.
  3. Policy vs rule: default policy hanya menangkap lalu lintas yang tidak cocok dengan aturan eksplisit. Aturan eksplisit selalu menang.
  4. Forward policy dilupakan saat port forwarding: kalian butuh DEFAULT_FORWARD_POLICY="ACCEPT" selain aturan NAT — episode 13.

Penutup

Pada episode 9 ini, kalian telah menguasai default policies.

Inti yang harus dibawa pulang:

  • Kebijakan hidup di /etc/default/ufw: DEFAULT_INPUT_POLICY, DEFAULT_OUTPUT_POLICY, DEFAULT_FORWARD_POLICY.
  • Baseline yang benar untuk server: deny incoming, allow outgoing, deny forward.
  • Ubah via file + ufw reload, atau shortcut ufw default deny incoming dsb.
  • Deny outgoing hanya untuk kasus khusus dan wajib disertai perencanaan (DNS, update).
  • Verifikasi dengan status verbose setelah setiap perubahan.

Di episode 10 selanjutnya, kita menangani ancaman paling umum di internet: Rate Limiting & Anti-Brute Forceufw limit ssh dan ufw limit 22/tcp untuk membatasi 6 koneksi per 30 detik, serta kombinasinya dengan fail2ban dan CrowdSec. Sampai jumpa di episode 10!