Belajar Iptables - Aturan Pertama: List, Flush & Policy
Episode 4 of 23

Belajar Iptables - Aturan Pertama: List, Flush & Policy

Membaca ruleset iptables dengan -L -n -v dan -S, memahami perbedaan output verbose, mengatur policy default chain dengan -P, serta membersihkan aturan dengan -F dan -X beserta risiko terkunci SSH yang menyertai operasi flush

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

Pendahuluan

Setelah di episode 3 environment kita terbukti berfungsi — iptables 1.8.x terinstall dan tabel-tabel bisa diakses — sekarang kita melakukan operasi pertama yang sebenarnya: membaca, membersihkan, dan menetapkan policy. Ini adalah "hello world"-nya iptables, tapi jangan terkecoh: tiga perintah yang tampak sederhana ini (-L, -F, -P) adalah biang keladi nomor satu admin terkunci dari server sendiri.

Di episode ini kita akan belajar membaca ruleset seperti SysAdmin berpengalaman, memahami konsep policy default, dan — bagian paling penting — bagaimana melakukan flush dengan aman tanpa mengorbankan koneksi SSH kalian.

List Aturan: -L, -n, dan -v

Perintah paling sering dipakai adalah iptables -L. Tambahkan -n (no DNS resolve, tampilkan IP mentah) dan -v (verbose, tampilkan counter) untuk melihat gambaran lengkap:

List tabel filter lengkap
sudo iptables -L -n -v

Output akan berbentuk tabel per chain:

text
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination
0         0     DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts      bytes target     prot opt in     out     source               destination

Kolom pkts dan bytes adalah counter — jumlah paket yang sudah cocok dengan aturan tersebut. Counter ini berharga untuk troubleshooting (episode 12 dan 18).

List dengan -S: Bentuk Persis Perintah

Cara kedua membaca ruleset adalah -S (save format), yang menampilkan setiap aturan dalam bentuk yang bisa langsung dijalankan ulang:

List dalam format perintah
sudo iptables -S
text
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j DROP

Keunggulan -S: outputnya identik dengan apa yang kalian ketik saat membuat aturan — dan merupakan bentuk mentah yang dipakai iptables-save (episode 8). Untuk tabel lain, gunakan -t:

List tabel nat
sudo iptables -t nat -S

Nomor Baris untuk Referensi

Saat ruleset makin panjang, kalian butuh nomor baris untuk merujuk aturan (untuk -D dan -R di episode 6):

List dengan nomor baris
sudo iptables -L -n --line-numbers
text
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0    tcp dpt:22
2    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0    tcp dpt:80

Nomor di kolom num adalah handle yang akan kita pakai di episode 6 untuk -I 1, -D 2, dan -R 1.

Policy Default: -P

Setiap chain built-in punya policy — nasib paket yang tidak cocok dengan aturan mana pun di chain itu. Mengubah policy adalah cara paling ringkas mengubah perilaku firewall:

Ubah policy default
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

Arti dari tiga baris di atas: "semua yang masuk dan tidak cocok aturan apa pun → DROP; semua yang diteruskan → DROP; semua yang keluar → biarkan". Inilah fondasi filosofi default drop yang akan kita bangun penuh di episode 17.

Danger

Bahaya terbesar di series ini ada di baris sudo iptables -P INPUT DROP. Jika dijalankan di server yang hanya diakses via SSH — dan belum ada aturan ACCEPT untuk port 22 — koneksi SSH kalian akan mati seketika. Selalu tambahkan rule ACCEPT SSH lebih dulu, atau lakukan perubahan ini lewat konsol fisik/out-of-band.

Flush: -F dan -X

-F (flush) menghapus semua aturan di sebuah chain, dan -X menghapus chain user-defined yang kosong:

Flush tabel filter
sudo iptables -F
sudo iptables -X

Penting: -F tidak mengubah policy. Jika policy INPUT sudah DROP, flush tidak membuat koneksi kalian aman — malah sebaliknya, semua aturan ACCEPT ikut hilang sehingga semua paket masuk jatuh ke policy DROP. Kombinasi -P INPUT DROP + -F tanpa rule ACCEPT SSH = terkunci total.

Urutan aman untuk "reset bersih" tabel filter di sandbox:

Reset aman tabel filter
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo iptables -X

Set policy kembali ke ACCEPT dulu, baru flush. Dengan begitu setelah flush, semua trafik mengalir bebas dan kalian tidak akan terkunci.

Aturan Aman Pertama: Jangan Pernah Terkunci

Latihan pertama kita: buat aturan SSH yang menang dulu, baru ketatkan policy:

Aturan pertama yang aman
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -L -n --line-numbers

Urutannya sengaja: ACCEPT SSH sebelum policy diperketat. Sekarang coba buka sesi SSH kedua dari mesin lain — jika tetap bisa masuk, aturan kalian benar.

Tip

Selalu uji perubahan firewall dari dua sesi: satu sesi yang sudah masuk untuk melakukan perubahan, satu sesi baru untuk menguji apakah pintu masih terbuka. Jika sesi uji gagal, kalian masih punya sesi pertama untuk memperbaiki aturan — ini pola kerja standar SysAdmin.

Penutup

Inti yang harus dibawa pulang:

  • Baca ruleset dengan -L -n -v, bentuk perintah persis dengan -S, dan nomor baris dengan --line-numbers.
  • -P menetapkan policy default — nasib paket yang tidak cocok aturan mana pun.
  • -F menghapus aturan tapi tidak mengubah policy; -X menghapus chain user-defined kosong.
  • Selalu ACCEPT SSH dulu sebelum -P INPUT DROP, dan uji dari sesi kedua.
  • Reset aman: kembalikan policy ke ACCEPT, baru flush.

Di episode 5 selanjutnya kita akan membedah target, match, dan parameter rule — target ACCEPT, DROP, REJECT, LOG, dan user chain; match -s/-d, -p, --dport/--sport, -i/-o; serta kombinasi multi-match yang menjadi bahasa dasar semua aturan iptables. Pastikan kalian nyaman dengan list & flush, karena episode 5 akan memakai keduanya terus-menerus!