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.

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.
nftables bekerja dalam tiga lapis:
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:
sudo nft list rulesetOutput nft list ruleset menampilkan seluruh konfigurasi firewall yang sedang berjalan.
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.
Tambahkan aturan untuk membuka port yang dibutuhkan — misalnya SSH dan web:
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 acceptUntuk kebijakan yang lebih ketat, set policy default ke drop dan tambahkan aturan untuk koneksi yang sudah terdaftar:
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 acceptAturan yang ditambahkan lewat CLI hilang saat reboot. Simpan ke berkas dan buat service runit agar persisten:
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.
Setelah mengedit berkas, muat ulang dan verifikasi:
sudo nft -f /etc/nftables.conf
sudo nft list rulesetKebiasaan baik: selalu verifikasi dengan nft list ruleset setelah setiap perubahan agar aturan yang salah tidak menutup akses secara diam-diam.
Untuk membangun gateway, aktifkan IP forwarding:
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/ipforward.conf
sudo sysctl -p /etc/sysctl.d/ipforward.confPerintah echo 'net.ipv4.ip_forward = 1' pada /etc/sysctl.d/ipforward.conf membuat pengaturan persisten di reboot.
Agar klien di jaringan lokal bisa keluar ke internet, tambahkan chain postrouting dengan 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" masqueradePerintah nft add rule ip nat postrouting oifname "eth0" masquerade menyamarkan seluruh traffic keluar melalui eth0. Sesuaikan nama antarmuka WAN kalian.
Untuk melihat bagaimana traffic diproses, tambahkan counter pada aturan lalu amati:
sudo nft add rule inet filter input tcp dport 22 counter accept
sudo nft list ruleset | grep counterOutput nft list ruleset | grep counter menampilkan jumlah paket yang cocok dengan aturan. Counter ini sangat membantu memastikan firewall bekerja seperti yang diharapkan.
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.
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:
nft list ruleset menampilkan seluruh konfigurasi aktif./etc/nftables.conf agar persisten.established,related dengan policy drop.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.