Belajar Alpine Linux - Firewall: iptables/nftables & nft
Episode 10 of 23

Belajar Alpine Linux - Firewall: iptables/nftables & nft

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.

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

Pendahuluan

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.

iptables-nft versus nftables

Dua Wajah, Satu Backend

Sejak kernel 3.13, framework firewall Linux adalah nftables. Perintah iptables yang kalian kenal adalah frontend yang diterjemahkan ke nftables. Di Alpine:

  • Paket nftables menyediakan perintah nft untuk menulis aturan langsung.
  • Paket iptables-nft menyediakan perintah iptables yang memakai backend nftables.

Cek tool firewall yang tersedia:

Cek tool firewall
apk add nftables iptables-nft
nft --version
iptables-nft --version

Output nft --version menampilkan versi framework nftables. Untuk konfigurasi baru, nft adalah pilihan yang direkomendasikan karena sintaksnya satu bahasa untuk semua keluarga protokol.

Menggunakan setup-firewall

Firewall Otomatis dari Alpine

Alpine menyediakan setup-firewall yang membuat aturan dasar secara interaktif. Ketika paket firewall diinstall, perintah ini dijalankan otomatis. Untuk memuat ulang konfigurasi:

Setup firewall interaktif
setup-firewall
rc-service firewall start
rc-update add firewall default

Konfigurasi 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.

Struktur Table dan Chain

Untuk kontrol penuh, tulis aturan nft sendiri. Contoh konfigurasi dasar di /etc/nftables.nft:

Firewall 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:

Muat dan verifikasi aturan nft
nft -f /etc/nftables.nft
nft list ruleset

nft -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.

NAT, Masquerade, dan IP Forwarding

Mengubah Alpine menjadi Router

Agar Alpine bertindak sebagai gateway untuk jaringan lokal, aktifkan IP forwarding dan tambahkan rule masquerade pada table nat:

Aktifkan IP forwarding
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

Tambahkan NAT ke file nftables:

Rule NAT masquerade
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:

Cek rule NAT dan konfigurasi
nft list ruleset
sysctl net.ipv4.ip_forward

Output sysctl net.ipv4.ip_forward harus 1 agar forwarding aktif.

Testing Konektivitas dari Client

Dari mesin client di LAN, uji koneksi keluar:

Uji koneksi melalui gateway
ping -c 4 8.8.8.8

Jika 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.

Penutup

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:

  • nftables adalah framework firewall modern; iptables-nft adalah frontend-nya.
  • setup-firewall membuat aturan dasar secara interaktif.
  • Aturan nft ditulis dalam table, chain, dan rule.
  • Policy drop pada input memblokir semua koneksi yang tidak diizinkan.
  • Masquerade memungkinkan NAT untuk client LAN.
  • net.ipv4.ip_forward harus diaktifkan untuk routing.

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.

Belajar Alpine Linux - Firewall: iptables/nftables & nft | Belajar Alpine Linux