Episode ini membangun firewall Alpine memakai nftables dan iptables-nft. Kalian belajar setup-firewall, menulis aturan nft untuk chain input forward dan output, serta menyiapkan NAT masquerade dan IP forwarding agar Alpine berperan sebagai router atau gateway.

Firewall adalah garis pertahanan pertama setiap server yang terhubung jaringan. Episode 10 membangun firewall Alpine menggunakan nftables — framework firewall modern yang menjadi backend iptables-nft — dan mengubah Alpine menjadi router kecil dengan NAT dan IP forwarding.
Alpine dikenal sebagai platform router dan firewall sejak lahir, jadi materi episode ini adalah salah satu yang paling "Alpine" di seluruh series. Kalian akan menulis aturan nft secara langsung sekaligus memakai tool bantu setup-firewall yang menyederhanakan banyak pekerjaan.
Sejak kernel 3.13, framework firewall Linux adalah nftables. Perintah iptables yang kalian kenal adalah frontend yang diterjemahkan ke nftables. Di Alpine:
nftables menyediakan perintah nft untuk menulis aturan langsung.iptables-nft menyediakan perintah iptables yang memakai backend nftables.Cek tool firewall yang tersedia:
apk add nftables iptables-nft
nft --version
iptables-nft --versionOutput nft --version menampilkan versi framework nftables. Untuk konfigurasi baru, nft adalah pilihan yang direkomendasikan karena sintaksnya satu bahasa untuk semua keluarga protokol.
Alpine menyediakan setup-firewall yang membuat aturan dasar secara interaktif. Ketika paket firewall diinstall, perintah ini dijalankan otomatis. Untuk memuat ulang konfigurasi:
setup-firewall
rc-service firewall start
rc-update add firewall defaultKonfigurasi dihasilkan dari jawaban wizard dan disimpan di /etc/nftables.nft (atau /etc/iptables untuk iptables). Aturan dasar yang dihasilkan membuka SSH dan menolak sisanya pada chain input.
Untuk kontrol penuh, tulis aturan nft sendiri. Contoh konfigurasi dasar di /etc/nftables.nft:
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif lo accept
tcp dport 22 accept
tcp dport 80 accept
tcp dport 443 accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}Muat konfigurasi dan verifikasi:
nft -f /etc/nftables.nft
nft list rulesetnft -f /etc/nftables.nft memuat file aturan, dan nft list ruleset menampilkan seluruh ruleset yang aktif. Kebijakan policy drop pada chain input membuat semua koneksi masuk ditolak kecuali yang diizinkan eksplisit.
Agar Alpine bertindak sebagai gateway untuk jaringan lokal, aktifkan IP forwarding dan tambahkan rule masquerade pada table nat:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -pTambahkan NAT ke file nftables:
table inet nat {
chain postrouting {
type nat hook postrouting priority 100;
oif eth0 masquerade
}
}oif eth0 masquerade mengganti alamat sumber paket yang keluar lewat eth0 — teknik standar untuk membagikan koneksi internet ke LAN. Verifikasi ruleset lengkap:
nft list ruleset
sysctl net.ipv4.ip_forwardOutput sysctl net.ipv4.ip_forward harus 1 agar forwarding aktif.
Dari mesin client di LAN, uji koneksi keluar:
ping -c 4 8.8.8.8Jika berhasil, pastikan aturan tetap persisten dengan menjalankan rc-service firewall start dan mendaftarkannya ke runlevel default — atau pastikan nft -f /etc/nftables.nft dipanggil oleh script init firewall.
Warning
Aturan dengan policy drop akan mengunci kalian keluar bila salah menulis port SSH. Selalu uji aturan dari sesi SSH yang lain, atau siapkan akses console fisik sebagai jaring pengaman.
Episode 10 membangun firewall Alpine dari nol: memahami iptables-nft dan nftables, memakai setup-firewall untuk aturan dasar, menulis aturan nft dengan chain input forward dan output, serta mengaktifkan NAT masquerade dan IP forwarding untuk peran router.
Inti yang harus dibawa pulang:
Di episode 11 selanjutnya kita akan membahas web server dan LEMP stack — menginstall nginx dengan OpenRC, menambahkan PHP-FPM, menghubungkan ke MariaDB atau PostgreSQL, serta merangkai semuanya menjadi stack aplikasi web lengkap.