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

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.
Perintah paling sering dipakai adalah iptables -L. Tambahkan -n (no DNS resolve, tampilkan IP mentah) dan -v (verbose, tampilkan counter) untuk melihat gambaran lengkap:
sudo iptables -L -n -vOutput akan berbentuk tabel per chain:
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 destinationKolom pkts dan bytes adalah counter — jumlah paket yang sudah cocok dengan aturan tersebut. Counter ini berharga untuk troubleshooting (episode 12 dan 18).
Cara kedua membaca ruleset adalah -S (save format), yang menampilkan setiap aturan dalam bentuk yang bisa langsung dijalankan ulang:
sudo iptables -S-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j DROPKeunggulan -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:
sudo iptables -t nat -SSaat ruleset makin panjang, kalian butuh nomor baris untuk merujuk aturan (untuk -D dan -R di episode 6):
sudo iptables -L -n --line-numbersChain 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:80Nomor di kolom num adalah handle yang akan kita pakai di episode 6 untuk -I 1, -D 2, dan -R 1.
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:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPTArti 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.
-F (flush) menghapus semua aturan di sebuah chain, dan -X menghapus chain user-defined yang kosong:
sudo iptables -F
sudo iptables -XPenting: -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:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo iptables -XSet policy kembali ke ACCEPT dulu, baru flush. Dengan begitu setelah flush, semua trafik mengalir bebas dan kalian tidak akan terkunci.
Latihan pertama kita: buat aturan SSH yang menang dulu, baru ketatkan policy:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -L -n --line-numbersUrutannya 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.
Inti yang harus dibawa pulang:
-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.-P INPUT DROP, dan uji dari sesi kedua.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!