Belajar Void Linux - Firewall: nftables
Episode 13 of 23

Belajar Void Linux - Firewall: nftables

Episode ini membahas firewall modern di Void menggunakan nftables. Kalian akan menulis ruleset dengan CLI nft, memahami struktur table, chain, dan rule, serta mengaktifkan IP forwarding dan NAT untuk membangun gateway atau router dari sistem Void.

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

Pendahuluan

Setelah web server berdiri di episode 12, sistem kalian mulai terpapar internet — dan inilah saat yang tepat untuk membangun firewall. Episode 13 membahas nftables, framework firewall modern pengganti iptables, dengan pendekatan Void yang jelas dan langsung.

nftables menyusun aturan dalam struktur yang lebih bersih: table berisi chain, chain berisi rule. Dengan sintaks yang ringkas dan dukungan konfigurasi berbasis berkas, nftables jauh lebih mudah dibaca dan dikelola dibanding script iptables panjang.

Mari kita mulai dari konsep dasar.

Konsep Dasar nftables

Table, Chain, dan Rule

nftables bekerja dalam tiga lapis:

Struktur nftables
Table  -> Chain -> Rule
         (hook)   (match + verdict)

Table mengelompokkan konfigurasi, chain menentukan titik intervensi (input, forward, output), dan rule menentukan keputusan untuk traffic yang cocok. Lihat konfigurasi yang aktif:

Lihat seluruh ruleset aktif
sudo nft list ruleset

Output nft list ruleset menampilkan seluruh konfigurasi firewall yang sedang berjalan.

Membuat Table dan Chain

Buat table dan chain dasar:

Buat table dan chain dasar
sudo nft add table inet filter
sudo nft add chain inet filter input '{ type filter hook input priority 0; policy accept; }'
sudo nft add chain inet filter forward '{ type filter hook forward priority 0; policy accept; }'
sudo nft add chain inet filter output '{ type filter hook output priority 0; policy accept; }'

Pada nft add chain, sintaks { type filter hook input priority 0; policy accept; } mendefinisikan chain input dengan policy default accept.

Menambahkan Aturan

Tambahkan aturan untuk membuka port yang dibutuhkan — misalnya SSH dan web:

Buka port SSH, HTTP, HTTPS
sudo nft add rule inet filter input tcp dport 22 accept
sudo nft add rule inet filter input tcp dport 80 accept
sudo nft add rule inet filter input tcp dport 443 accept

Untuk kebijakan yang lebih ketat, set policy default ke drop dan tambahkan aturan untuk koneksi yang sudah terdaftar:

Ruleset dengan policy drop
sudo nft add chain inet filter input '{ type filter hook input priority 0; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept

Ruleset Persisten

Menyimpan Ruleset ke Berkas

Aturan yang ditambahkan lewat CLI hilang saat reboot. Simpan ke berkas dan buat service runit agar persisten:

Simpan ruleset
sudo nft list ruleset | sudo tee /etc/nftables.conf
sudo ln -s /etc/sv/nftables /var/service/

Perintah nft list ruleset | sudo tee /etc/nftables.conf menyimpan ruleset aktif ke berkas yang akan dimuat saat boot oleh service nftables.

Memuat Ulang Ruleset

Setelah mengedit berkas, muat ulang dan verifikasi:

Muat ulang ruleset
sudo nft -f /etc/nftables.conf
sudo nft list ruleset

Kebiasaan baik: selalu verifikasi dengan nft list ruleset setelah setiap perubahan agar aturan yang salah tidak menutup akses secara diam-diam.

Routing dan NAT

Mengaktifkan IP Forwarding

Untuk membangun gateway, aktifkan IP forwarding:

Aktifkan IP forwarding
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/ipforward.conf
sudo sysctl -p /etc/sysctl.d/ipforward.conf

Perintah echo 'net.ipv4.ip_forward = 1' pada /etc/sysctl.d/ipforward.conf membuat pengaturan persisten di reboot.

Masquerade untuk NAT

Agar klien di jaringan lokal bisa keluar ke internet, tambahkan chain postrouting dengan masquerade:

Setel NAT masquerade
sudo nft add table ip nat
sudo nft add chain ip nat postrouting '{ type nat hook postrouting priority 100; }'
sudo nft add rule ip nat postrouting oifname "eth0" masquerade

Perintah nft add rule ip nat postrouting oifname "eth0" masquerade menyamarkan seluruh traffic keluar melalui eth0. Sesuaikan nama antarmuka WAN kalian.

Verifikasi dan Troubleshooting

Memeriksa Aturan yang Cocok

Untuk melihat bagaimana traffic diproses, tambahkan counter pada aturan lalu amati:

Tambah counter dan lihat hitungan
sudo nft add rule inet filter input tcp dport 22 counter accept
sudo nft list ruleset | grep counter

Output nft list ruleset | grep counter menampilkan jumlah paket yang cocok dengan aturan. Counter ini sangat membantu memastikan firewall bekerja seperti yang diharapkan.

Kesalahan Umum

Dua kesalahan yang paling sering: lupa aturan established,related sehingga koneksi yang sudah berjalan terputus, dan salah menyimpan ruleset sehingga aturan hilang setelah reboot. Ingat dua hal ini saat menulis firewall pertama kalian.

Penutup

Episode 13 membekali kalian keterampilan firewall nftables di Void: memahami struktur table, chain, dan rule, menulis ruleset dengan CLI nft, membuat konfigurasi persisten, serta mengaktifkan IP forwarding dan NAT masquerade untuk membangun gateway.

Inti yang harus dibawa pulang:

  • nftables menyusun aturan dalam table, chain, dan rule.
  • nft list ruleset menampilkan seluruh konfigurasi aktif.
  • Simpan ruleset ke /etc/nftables.conf agar persisten.
  • Selalu sertakan aturan established,related dengan policy drop.
  • IP forwarding diaktifkan lewat sysctl.
  • NAT masquerade memungkinkan klien lokal keluar ke internet.

Di episode 14 selanjutnya kita akan membahas security dan hardening — memperkuat SSH, menerapkan kebijakan sudo, menjaga firewall, menjalankan audit dengan lynis dan fail2ban, serta membiasakan upgrade rutin dengan xbps-install -Su.

Belajar Void Linux - Firewall: nftables | Belajar Void Linux