Memasang iptables 1.8.x di Debian Ubuntu dan RHEL, memverifikasi versi dan backend yang aktif, serta memahami perbedaan iptables-nft vs iptables-legacy beserta update-alternatives untuk memilih backend yang benar di distro modern

Setelah di episode 2 kita memahami struktur tabel, chains, dan packet flow, sekarang saatnya memastikan perangkat lunaknya benar-benar siap. Episode ini tentang instalasi & verifikasi — tetapi ada satu twist yang sering membingungkan pemula: di distro modern, perintah iptables yang kalian jalankan ternyata bukan "iptables asli" yang menulis ke kernel ip_tables, melainkan iptables-nft, sebuah compatibility layer yang menerjemahkan aturan kalian ke kernel nftables.
Memahami dualitas backend ini sejak dini akan menyelamatkan kalian dari kebingungan besar di episode 19 dan 20, ketika kita mengecek kompatibilitas dan migrasi. Untuk sekarang, kita fokus: install yang benar, verifikasi versi 1.8.x, dan kenali backend apa yang aktif.
Paket iptables tersedia di hampir semua distro. Target series ini adalah versi 1.8.x — rilis stabil terakhir yang membawa semua fitur kompatibilitas modern termasuk iptables-translate.
sudo apt update && sudo apt install iptables nftables # Debian/Ubuntu
sudo dnf install iptables nftables # RHEL/Fedora
sudo pacman -S iptables nftables # ArchDi RHEL 8+, paketnya bernama iptables dan menyediakan alternatif backend; paket nftables memberi kita tool nft untuk perbandingan dan migrasi. Di Debian/Ubuntu modern, iptables dan nftables biasanya sudah terinstall secara default.
Setelah install, verifikasi versi dan — yang lebih penting — backend yang aktif:
iptables --versionOutput pada distro modern:
iptables v1.8.9 (nf_tables)Bagian (nf_tables) adalah kunci: artinya binary iptables yang dipanggil sebenarnya adalah iptables-nft. Di distro lama atau jika backend legacy dipilih, outputnya akan menampilkan (legacy).
Tip
Seluruh series ini bisa dipraktikkan dengan backend apa pun secara fungsional. Namun mulai sekarang biasakan membaca bagian dalam kurung pada iptables -V — karena menentukan cara aturan disimpan di kernel dan berpengaruh saat migrasi ke nftables (episode 19-20).
Perbedaan keduanya penting untuk dipahami:
| Aspek | iptables-nft | iptables-legacy |
|---|---|---|
| Kernel backend | nf_tables | ip_tables (lama) |
| Status | Default distro modern | Peninggalan era pra-nftables |
| Kompatibilitas | Aturan nampak di nft list ruleset | Aturan tidak nampak di nft |
| Alasan dipakai | Distro modern, interoperabilitas | Tool lama yang belum pernah dimigrasi |
Keduanya tidak boleh dicampur untuk tabel yang sama tanpa perencanaan, karena mereka menulis ke subsistem kernel yang berbeda. Kasus campuran yang nyata: Docker secara historis memakai backend legacy di mesin yang lama, sementara distro default-nya nft — hasilnya "dua firewall" yang saling tidak tahu. Itu salah satu sumber misteri "NAT saya tidak bekerja" yang kita bahas di episode 18.
Di Debian/Ubuntu, pilihan backend dikelola lewat update-alternatives:
sudo update-alternatives --config iptablesMenu ini menawarkan iptables-legacy atau iptables-nft (auto). Untuk series ini, biarkan di iptables-nft (auto) karena itu default distro modern dan paling mewakili realitas produksi.
Di RHEL/Fedora, backend dipilih lewat alternatives berbasis symlink:
sudo alternatives --config iptablesPerintah iptables-nft-save, iptables-nft-restore, iptables-legacy-save, dan iptables-legacy-restore juga tersedia sebagai binary terpisah — berguna saat kalian perlu memanggil backend spesifik secara eksplisit.
Sebelum lanjut, pastikan seluruh rantai bekerja — modul kernel, komunikasi user-space ke netfilter, dan tabel-tabel:
sudo iptables -t filter -L -n
sudo iptables -t nat -L -n
sudo iptables -t mangle -L -n
sudo iptables -t raw -L -nKeempat perintah harus mencetak chain-chain tabel tanpa error. Kalau muncul error Permission denied, tambahkan sudo. Kalau muncul error Module not found, cek apakah modul kernel yang dibutuhkan termuat:
lsmod | grep -E "nf_tables|ip_tables|iptable"Jika chain-chain tampil kosong, jangan khawatir — itu normal. Aturan belum ada; di episode 4 kita mulai mengisinya.
Warning
Jangan pernah menjalankan iptables -P, -A, atau -F sebelum memastikan kalian punya akses konsol fisik atau out-of-band ke mesin. Kesalahan konfigurasi firewall adalah penyebab paling umum admin terkunci dari server sendiri — verifikasi backend dulu, simpan ruleset awal, baru mulai bereksperimen.
Kriteria "environment siap" di episode ini:
iptables --version mencetak v1.8.x dan menampilkan backend (nf_tables) atau (legacy).nft --version berfungsi — tool untuk kompatibilitas dan migrasi.filter, nat, mangle, raw) bisa di-list tanpa error.update-alternatives sudah dipahami dan dibiarkan pada default distro.Inti yang harus dibawa pulang:
iptables -V menunjukkan backend: (nf_tables) = iptables-nft, (legacy) = iptables-legacy.update-alternatives (Debian) atau alternatives (RHEL) mengelola pilihan backend.Di episode 4 selanjutnya kita akan membahas aturan pertama: list, flush & policy — membaca ruleset dengan -L -n -v, -S, dan --line-numbers, lalu memahami -P untuk policy default, serta bahaya -F dan -X yang bisa mengunci kalian keluar. Siapkan sandbox kalian, karena episode 4 adalah praktik pertama yang sebenarnya!