Belajar Iptables - Append, Insert, Delete & Replace
Episode 6 of 23

Belajar Iptables - Append, Insert, Delete & Replace

Menguasai empat operasi manipulasi aturan iptables: -A append di akhir chain, -I insert di posisi tertentu, -D delete dengan nomor baris atau spesifikasi lengkap, dan -R replace, beserta pentingnya urutan rule first match wins dan iterasi yang aman

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 5 kita mengenal target, match, dan parameter rule, sekarang kita belajar mengelola aturan yang sudah ada. Firewall jarang dibangun sekali jadi — biasanya diubah berkali-kali: menambah layanan, memindahkan urutan, menghapus aturan yang salah, mengganti yang usang. Empat operasi ini — append, insert, delete, replace — adalah cara kita melakukannya.

Mengapa episode ini krusial? Karena prinsip first match wins dari episode 2 berarti posisi aturan menentukan efektivitasnya. Menambahkan aturan dengan cara yang salah bisa membuat firewall kalian — yang tampak benar di -L — sebenarnya tidak melakukan apa yang kalian inginkan.

Append: -A (Tambahkan di Akhir)

-A menambahkan aturan di akhir chain — paling bawah, setelah semua aturan yang ada:

Append aturan
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -L -n --line-numbers
text
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0    tcp dpt:22
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0    tcp dpt:443

Aturan baru mendapat nomor 2. Jika chain sudah punya -A INPUT -j DROP di paling bawah, aturan yang di-append setelahnya tidak akan pernah dieksekusi — semua paket sudah di-DROP lebih dulu. Inilah jebakan klasik append.

Insert: -I (Sisipkan di Posisi Tertentu)

-I menyisipkan aturan di atas aturan yang ada. Tanpa nomor, aturan masuk di posisi 1 — paling atas:

Insert di posisi 1
sudo iptables -I INPUT -s 203.0.113.9 -j DROP

Untuk posisi spesifik, sebutkan nomornya:

Insert di posisi 3
sudo iptables -I INPUT 3 -p tcp --dport 8080 -j ACCEPT

-I INPUT 3 menempatkan aturan di nomor 3, mendorong aturan lama turun satu langkah. Insert adalah cara tercepat menangani masalah urgent — misalnya memblokir IP penyerang yang sedang menyerang — karena aturannya langsung dievaluasi paling awal.

Delete: -D (Hapus Aturan)

Ada dua cara menghapus: dengan nomor baris atau dengan spesifikasi lengkap:

Delete berdasarkan nomor
sudo iptables -D INPUT 2
Delete berdasarkan spesifikasi
sudo iptables -D INPUT -p tcp --dport 8080 -j ACCEPT

Cara pertama perlu --line-numbers untuk tahu nomor yang benar. Cara kedua menghapus aturan yang persis sama dengan spesifikasi yang diberikan — berguna saat menulis script idempotent (hapus dulu, lalu append ulang). Kesalahan umum: spesifikasi yang sedikit berbeda dari aturan aslinya tidak akan cocok, dan perintah gagal dengan pesan Bad rule.

Tip

Untuk script, gunakan pola hapus-tanpa-peduli-error dulu, lalu append: iptables -D INPUT ... 2>/dev/null || true diikuti iptables -A INPUT .... Pola ini membuat script idempotent — aman dijalankan berulang kali tanpa menumpuk duplikat aturan.

Replace: -R (Ganti Aturan)

-R mengganti aturan pada posisi tertentu dengan spesifikasi baru:

Replace aturan nomor 1
sudo iptables -R INPUT 1 -p tcp --dport 22 -s 10.0.0.0/8 -j ACCEPT

Aturan nomor 1 — yang tadinya membuka SSH untuk semua orang — sekarang hanya untuk subnet 10.0.0.0/8. Replace sering dipakai untuk tightening tanpa mengubah jumlah aturan, sehingga posisi aturan lain tidak bergeser.

Urutan Aturan: Mengapa Itu Penting

Prinsip first match wins memberi aturan praktis:

  1. Aturan deny spesifik di atas — blokir IP/subnet tertentu lebih dulu.
  2. Aturan accept spesifik di tengah — buka layanan yang diizinkan.
  3. Aturan umum di bawah — LOG/DROP sisa trafik di paling bawah.

Urutan yang salah adalah sumber bug firewall paling umum:

Urutan salah vs benar
# SALAH: aturan umum menutupi aturan khusus
sudo iptables -A INPUT -p tcp -j DROP
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT   # tidak pernah dieksekusi!
 
# BENAR: khusus dulu, umum belakangan
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -j DROP

Iterasi Aman: Siklus Ubah-verifikasi

Praktik standar mengubah ruleset di server langsung:

Siklus ubah & verifikasi
sudo iptables -I INPUT -p tcp --dport 22 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -L -n --line-numbers
# verifikasi dengan sesi SSH kedua dari subnet 10.0.0.0/8

Jika perubahan bermasalah, hapus secepatnya lewat sesi yang masih hidup:

Rollback cepat
sudo iptables -D INPUT 1

Warning

Jangan pernah merombak banyak aturan sekaligus di mesin produksi tanpa mekanisme rollback. Pola yang aman: ubah satu aturan, verifikasi, lalu lanjut. Kalau harus banyak perubahan, simpan ruleset lama dengan iptables-save dulu (episode 8) supaya bisa dikembalikan dalam satu langkah.

Mengelola chain user-defined berpasangan dengan manipulasi di atas. Buat chain baru, insert/append di dalamnya, dan delete seluruh chain setelah bersih:

Kelola chain user-defined
sudo iptables -N GUEST
sudo iptables -A GUEST -j DROP
sudo iptables -D GUEST -j DROP
sudo iptables -X GUEST

-X hanya berhasil jika chain sudah kosong — urutannya harus delete semua isi dulu, baru hapus chain-nya.

Penutup

Inti yang harus dibawa pulang:

  • -A append di akhir, -I insert di posisi (default 1), -D delete (nomor atau spesifikasi), -R replace.
  • First match wins: aturan deny spesifik di atas, accept di tengah, deny umum di bawah.
  • Script idempotent: hapus dulu (abaikan error), lalu append.
  • Ubah satu aturan per langkah, verifikasi, dan siapkan rollback.

Di episode 7 selanjutnya kita akan membahas state & conntrack — module conntrack dengan --ctstate ESTABLISHED,RELATED, perbedaannya dengan module state yang lama, serta cara membangun filter stateful yang membuka koneksi keluar tanpa membuka seluruh port masuk. Sampai jumpa di episode 7!

Belajar Iptables - Append, Insert, Delete & Replace | Belajar Iptables