Mempertahankan aturan firewall melewati reboot dengan iptables-save dan iptables-restore, menyimpannya ke file /etc/iptables/rules.v4, mengotomasi lewat netfilter-persistent, serta strategi rollback cepat ketika ruleset baru bermasalah

Di episode 4-7 kalian sudah membangun aturan-aturan nyata: policy default, target, match, dan stateful filtering. Tapi ada satu pertanyaan yang mengubah segalanya: apa yang terjadi setelah reboot? Jawaban defaultnya mengecewakan — semua aturan hilang. Aturan iptables hidup di kernel, dan kernel tidak menyimpan apa pun antar reboot.
Episode ini mengajarkan kalian menutup lubang itu: mengekspor ruleset ke file, memuatnya kembali saat boot, dan — sama pentingnya — menciptakan mekanisme rollback cepat untuk saat konfigurasi baru membuat firewall bermasalah. Persistensi bukan fitur tambahan; ini yang membedakan eksperimen lab dari konfigurasi produksi.
iptables-save mencetak seluruh ruleset — semua tabel — dalam format yang siap dimuat ulang:
sudo iptables-save# Generated by iptables-save v1.8.9 on ...
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
COMMITPerhatikan strukturnya: setiap tabel dibuka dengan *nama-tabel, baris :CHAIN POLICY [counter] mendefinisikan chain & policy, aturan-aturan -A mengikutinya, dan COMMIT menutup setiap tabel. Format ini adalah bahasa umum ekosistem iptables — dipakai iptables-restore, iptables-restore-translate (episode 20), dan Ansible.
Redirection standar membuat file backup:
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6Buat direktori dulu jika belum ada (sudo mkdir -p /etc/iptables). Kebiasaan yang disarankan: simpan versi "baik" ke file, dan buat snapshot bertanggal sebelum setiap perubahan besar:
sudo iptables-save > ~/backup/iptables-$(date +%Y%m%d-%H%M).rulesiptables-restore memuat seluruh isi file dalam satu operasi atomik — jauh lebih aman daripada menjalankan baris per baris secara manual:
sudo iptables-restore < /etc/iptables/rules.v4Bandingkan dengan pola manual: kalau kalian mengetik 20 perintah -A satu per satu dan terputus di tengah, ruleset kalian setengah jadi. iptables-restore menggantikan seluruh state tabel sekaligus — tidak ada kondisi setengah.
sudo iptables-save | diff - /etc/iptables/rules.v4 && echo "OK"Menjalankan iptables-restore manual setiap boot itu melelahkan. Paket netfilter-persistent (Debian/Ubuntu) otomatis memuat rules.v4 dan rules.v6 saat boot:
sudo apt install iptables-persistent
sudo systemctl enable --now netfilter-persistentSiklus kerjanya:
sudo netfilter-persistent save # simpan ruleset aktif ke file
sudo netfilter-persistent flush # kosongkan aturan (semua ACCEPT)
sudo netfilter-persistent reload # muat ulang dari fileDi RHEL/Fedora, persistensi ditangani layanan iptables.service:
sudo systemctl enable --now iptables
sudo systemctl restart iptables
sudo service iptables saveWarning
Bahaya tersembunyi netfilter-persistent: file rules.v4 yang rusak atau policy DROP yang tidak sengaja tersimpan akan dimuat setiap kali boot — membuat kalian terkunci bahkan sebelum login. Aturan pertama operasional: sebelum menyimpan, selalu uji bahwa ruleset aktif memang benar-benar yang kalian inginkan.
Kesalahan firewall terjadi. Yang membedakan operator berpengalaman adalah kecepatan pulihnya. Tiga lapis pertahanan:
Lapis 1 — snapshot: sebelum mengubah aturan apa pun, simpan state sekarang:
sudo iptables-save > /tmp/rules.beforeLapis 2 — cron auto-restore: untuk sesi kerja jarak jauh yang rawan, pasang timer pengaman yang memulihkan ruleset jika koneksi tidak kunjung dikonfirmasi:
echo '0 * * * * root iptables-restore < /tmp/rules.before' | sudo tee /etc/cron.d/iptables-undoPola "auto-revert" ini adalah trik yang dipakai admin untuk pekerjaan perubahan firewall jarak jauh — meski untuk produksi, out-of-band console tetap yang paling andal.
Lapis 3 — restore manual: kapan pun ada masalah, muat kembali state terakhir yang diketahui baik:
sudo iptables-restore < /tmp/rules.beforerules.v4 yang salah baris akan ditolak seluruhnya oleh iptables-restore (karena sifat atomik) — kabar baiknya, tidak ada kerusakan parsial.iptables-save itu ketat.-A di dalam file menambah ke chain yang harus sudah dideklarasikan di baris :CHAIN ....Inti yang harus dibawa pulang:
iptables-save mengekspor seluruh ruleset; iptables-restore memuatnya secara atomik./etc/iptables/rules.v4 (IPv4) dan rules.v6 (IPv6); otomasi boot dengan netfilter-persistent.Di episode 9 selanjutnya kita masuk fase baru: NAT — masquerade, SNAT & DNAT — membangun internet sharing dengan MASQUERADE, SNAT untuk IP statis, DNAT untuk port forwarding 80/443 ke server LAN, dan mengaktifkan net.ipv4.ip_forward. Sampai jumpa di episode 9!