Mengamankan mesin yang bertindak sebagai router lewat chain FORWARD: filtering trafik antar interface dengan -i dan -o, policy FORWARD DROP sebagai default, memisahkan segmen LAN DMZ, dan isolasi jaringan tamu yang tidak boleh menjangkau segmen internal

Di episode 9 kalian membangun NAT untuk menghubungkan LAN ke internet. Sekarang kita angkat satu lapis lebih tinggi: mesin yang sama — atau mesin khusus — diposisikan sebagai router & firewall antar segmen. Di sinilah chain FORWARD bersinar.
Perhatikan pembedanya: INPUT mengamankan mesin itu sendiri, sedangkan FORWARD mengamankan trafik yang hanya lewat. Kalau kalian menaruh aturan guest-isolation di INPUT, aturan itu tidak akan pernah menangkap paket yang diteruskan. Episode ini mengajarkan mindset "firewall untuk jaringan, bukan untuk mesin".
Dari packet flow episode 2, paket yang tidak ditujukan ke mesin lokal dan tidak berasal dari mesin lokal melewati FORWARD:
Chain FORWARD adalah satu-satunya tempat kebijakan antar-segmen dieksekusi untuk trafik yang lewat. -i menunjukkan interface asal, -o interface tujuan.
Langkah pertama membangun router firewall yang sehat: tutup forwarding secara default.
sudo iptables -P FORWARD DROP
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTDengan policy FORWARD DROP, semua trafik yang lewat ditolak kecuali yang diizinkan eksplisit. Baris kedua — pola stateful dari episode 7 — memastikan balasan koneksi yang sudah diizinkan tetap mengalir.
Skenario nyata: tiga interface — eth0 ke internet, eth1 ke segmen LAN, eth2 ke DMZ tempat server web. Kebijakannya:
# LAN boleh keluar internet
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# LAN boleh akses DMZ (SSH, web)
sudo iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 80 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 443 -j ACCEPT
# DMZ TIDAK boleh masuk ke LAN
sudo iptables -A FORWARD -i eth2 -o eth1 -j DROPPerhatikan pola -i ethX -o ethY — ini bahasa arah di chain FORWARD. Aturan "DMZ tidak boleh ke LAN" adalah satu baris DROP dengan arah terbalik.
Note
Jika server DMZ dikompromikan, segmen LAN tetap aman karena tidak ada jalur dari DMZ ke LAN. Inilah esensi pemisahan segmen — bukan sekadar organisasi, tapi pembatasan radius ledakan (blast radius) saat terjadi insiden.
Kasus klasik kedua: guest Wi-Fi yang boleh internet tapi tidak boleh menyentuh segmen internal.
# Guest boleh internet
sudo iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT
# Guest TIDAK boleh ke segmen internal mana pun
sudo iptables -A FORWARD -i wlan1 -o eth1 -j DROP
sudo iptables -A FORWARD -i wlan1 -o eth2 -j DROPDitambah zone-based stateful untuk balasan:
sudo iptables -A FORWARD -i eth0 -o wlan1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTAturan terakhir memastikan balasan dari internet sampai ke guest, sementara koneksi baru dari luar menuju guest tetap ditolak. Hasilnya: tamu berselancar bebas, segmen internal tak tersentuh.
Sesuai first match wins, susun FORWARD dengan pola:
ESTABLISHED,RELATED) — paling atas.sudo iptables -P FORWARD DROP
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o eth1 -j DROP
sudo iptables -A FORWARD -i wlan1 -o eth2 -j DROP
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPTJangan lupa sinergi dengan episode 9: trafik yang di-DNAT ke server LAN tetap melewati FORWARD setelah PREROUTING. Ruleset lengkap router selalu terdiri dari tiga lapis:
Kalau salah satu lapis hilang, alurnya putus. Inilah alasan kenapa di episode 18 kita akan menguji NAT dengan urutan pengecekan tiga titik yang sama.
Setelah aturan terpasang, uji dari client di segmen tamu dan segmen LAN:
ip route get 8.8.8.8
ping -c 3 8.8.8.8Dan pastikan counter FORWARD menunjukkan paket yang benar-benar lewat:
sudo iptables -L FORWARD -n -v --line-numbersInti yang harus dibawa pulang:
FORWARD mengamankan trafik yang lewat — bukan untuk mesin lokal.-P FORWARD DROP + ESTABLISHED,RELATED di awal.-i/-o: LAN → internet diizinkan, DMZ → LAN diblokir, guest hanya internet.Di episode 11 selanjutnya kita akan membahas mangle, TOS & rate limiting — modifikasi paket dengan MARK, TTL, dan TOS di tabel mangle, plus modul limit untuk membatasi laju paket dan melindungi dari flood & brute-force. Sampai jumpa di episode 11!