Belajar UFW - IPv6 & Konfigurasi File
Series/Belajar UFW/Episode 11
Episode 11 of 23

Belajar UFW - IPv6 & Konfigurasi File

Menuntaskan dukungan IPv6 di UFW: mengaktifkan IPV6=yes di /etc/default/ ufw, memahami aturan paralel dual-stack yang dibuat otomatis, serta membedah peran before.rules dan after.rules dalam urutan eksekusi ruleset lengkap

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

Pendahuluan

Sepanjang series ini kalian melihat aturan yang selalu muncul berpasangan: 22/tcp dan 22/tcp (v6). Itu adalah dual-stack — UFW mengelola IPv4 dan IPv6 secara paralel. Episode 11 membuka tirai: bagaimana dukungan IPv6 dikonfigurasi, apa peran file rules sebelum/sesudah, dan bagaimana urutan eksekusi keseluruhan bekerja.

Mengapa ini penting? Karena IPv6 bukan lagi masa depan — ia sudah berjalan di mana-mana: AWS, VPS, hingga jaringan rumah. Server yang hanya mengamankan IPv4 menyisakan pintu belakang IPv6 yang terbuka. Dan memahami before.rules/after.rules adalah kunci untuk NAT (episode 13) dan prioritas aturan (episode 17).

Mengaktifkan IPv6

Kontrol utama ada di /etc/default/ufw:

/etc/default/ufw (variabel IPv6)
# Set to yes to apply rules to support IPv6 traffic
IPV6=yes

Dengan IPV6=yes, setiap perintah ufw allow <port>/<proto> otomatis membuat dua aturan — satu IPv4 (ditulis ke user.rules) dan satu IPv6 (ditulis ke user6.rules):

Aturan dual-stack
sudo ufw status
 
To                         Action      From
--                         ------      ----
443/tcp                    ALLOW       Anywhere
443/tcp (v6)               ALLOW       Anywhere (v6)

Jika kalian mengubah IPV6=no, aturan IPv6 tidak lagi dibuat — dan seluruh lalu lintas IPv6 jatuh ke kebijakan default sistem (biasanya iptables IPv6 menolak). Perubahan ini baru berlaku setelah reload:

Terapkan perubahan IPV6
sudo ufw reload
sudo ufw status

Warning

Mematikan IPV6=no bukan berarti IPv6 "tidak ada" — ia tetap ada di jaringan kalian, hanya tidak lagi dikelola UFW. Di sistem dengan IPv6 aktif (default Ubuntu), ini bisa menjadi celah. Biarkan IPV6=yes kecuali kalian yakin menonaktifkan IPv6 di seluruh stack.

Aturan IPv6 Spesifik

Selain otomatis dual-stack, kalian bisa menulis aturan yang menyebut alamat IPv6 secara eksplisit:

Allow dari subnet IPv6
sudo ufw allow from fd00::1/64 to any port 22 proto tcp
Deny IP IPv6 tertentu
sudo ufw deny from 2001:db8::5

Verifikasi di status — aturan IPv6 tampil tanpa penanda (v6) karena memang hanya untuk IPv6:

Status aturan IPv6
sudo ufw status
 
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       fd00::1/64

File Rules: before, user, after

Episode 2 memperkenalkan urutan eksekusi. Sekarang kita bedah peran masing-masing file lebih dalam:

Urutan dan peran file rules
IPv4                          IPv6
/etc/ufw/before.rules         /etc/ufw/before6.rules
/etc/ufw/user.rules           /etc/ufw/user6.rules
/etc/ufw/after.rules          /etc/ufw/after6.rules

before.rules

Aturan yang harus berlaku paling awal — dijalankan sebelum aturan kalian. Isinya aturan fondasi:

  • Izinkan loopback (lo) sepenuhnya — lalu lintas lokal.
  • Izinkan ICMP yang dibutuhkan (ping, path MTU).
  • Tolak paket rusak/state yang tidak valid.
  • Tolak fragment yang berbahaya.

Mengapa "before"? Karena beberapa hal harus menang atas aturan user. Loopback misalnya — mematikan loopback karena kesalahan aturan user akan membuat banyak layanan lokal hancur. Jadi aturan ini dilindungi di layer sistem.

user.rules

File ini ditulis oleh UFW dari perintah ufw allow/deny/limit kalian. Jangan diedit manual — hasil edit akan ditimpa saat reload. Semua aturan dari episode 4-10 berakhir di sini.

after.rules

Aturan penutup yang dijalankan setelah semuanya. Isi defaultnya biasanya:

  • Log paket yang ditolak/dijatuhkan (agar terlihat di log, episode 12).
  • Aturan tambahan yang harus dievaluasi paling akhir.

Logika Evaluasi Global

100%

Jika paket cocok dengan aturan manapun di before → user → after, keputusan diambil. Jika tidak cocok dengan apa pun, jatuh ke default policy. Inilah urutan yang kita pakai untuk reasoning tentang prioritas di episode 13 dan 17.

Membedah before.rules

Mari lihat potongan penting before.rules — terutama bagian yang menjadi dasar NAT di episode 13:

/etc/ufw/before.rules (struktur)
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
 
# allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT
 
# drop invalid packets
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
 
# allow established connections
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 
# allow icmp
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
 
COMMIT

Perhatikan strukturnya: blok *filter dibuka, chains didefinisikan, aturan ditulis, lalu COMMIT. Aturan RELATED,ESTABLISHED di atas adalah alasan kenapa koneksi keluar yang sudah terjalin tetap bisa menerima balasan — fondasi dari default policy allow-outgoing.

Note

File rules UFW memakai format iptables-restore: blok tabel (*filter, *nat) diikuti aturan, diakhiri COMMIT. Untuk menambah aturan manual (seperti NAT), kalian menulis di dalam blok tabel yang sesuai — bukan di sembarang tempat. Kita praktikkan di episode 13.

Common Pitfalls

  1. Lupa reload setelah edit before.rules/after.rules: aturan manual baru aktif setelah sudo ufw reload.
  2. Salah menempatkan aturan di file: aturan NAT harus di dalam blok *nat, bukan *filter — menaruhnya di blok salah = aturan diabaikan atau error saat reload.
  3. Edit user.rules manual: akan ditimpa oleh UFW. Selalu pakai perintah ufw, bukan edit file.
  4. Mematikan IPV6 tanpa menonaktifkan IPv6 di sistem: celah firewall tanpa ada yang menyadari.

Penutup

Pada episode 11 ini, kalian telah menguasai IPv6 dan struktur file.

Inti yang harus dibawa pulang:

  • IPV6=yes di /etc/default/ufw membuat setiap aturan otomatis dual-stack (IPv4 + IPv6).
  • Aturan IPv6 bisa ditulis eksplisit dengan alamat/subnet IPv6.
  • Urutan eksekusi: before.rulesuser.rulesafter.rules → default policy.
  • before.rules melindungi loopback, menolak invalid, dan mengizinkan koneksi established.
  • File rules memakai format iptables-restore dengan blok tabel + COMMIT.

Di episode 13 nanti kita akan memakai before.rules untuk membangun NAT dan port forwarding. Tapi sebelum itu, episode 12 menutup kebutuhan observasi: Logging & Monitoring — mengaktifkan level logging UFW, membaca /var/log/ufw.log, mendeteksi scan dan brute force, serta memakai ufw show added. Sampai jumpa di episode 12!