Mencatat aktivitas firewall dengan target LOG dan parameter --log-prefix --log-level, menerapkan pola LOG lalu DROP untuk menolak sambil mendokumentasikan, memantau counter per-rule secara live dengan watch, serta mendeteksi pemindaian port lewat paket NEW

Firewall yang menolak paket tanpa jejak adalah firewall yang "silent dan misterius": kalian tahu ada yang salah — koneksi gagal, layanan tidak bisa diakses — tapi tidak ada bukti. Episode 12 mengubah itu. Kalian akan belajar mencatat setiap keputusan firewall ke log sistem, dan memantau ruleset secara live untuk melihat apa yang benar-benar terjadi pada paket.
Kombinasi logging + monitoring adalah dasar dari dua hal penting: troubleshooting (episode 18) dan forensik saat insiden (apakah IP ini pernah mencoba masuk? kapan?). Logging yang baik bahkan menyelamatkan reputasi kalian saat bos bertanya "kenapa layanan mati?"
Target LOG menulis entri ke log kernel (diteruskan ke syslog) tanpa menghentikan paket. Dua parameter utamanya:
--log-prefix — awalan teks untuk memudahkan filter (maksimal 29 karakter).--log-level — level syslog (info, warning, dll).sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "IPT:SSH: " --log-level infoSetiap paket SSH yang masuk akan menghasilkan baris seperti ini di log:
kernel: IPT:SSH: IN=eth0 OUT= MAC=... SRC=203.0.113.7 DST=192.168.1.10 LEN=60
TOS=0x00 PREC=0x00 TTL=54 ID=1234 PROTO=TCP SPT=41234 DPT=22 WINDOW=64240 ...Informasi SRC, DST, SPT, DPT, dan PROTO adalah emas untuk diagnosis — itulah yang akan kita korek di episode 18.
Karena LOG tidak menghentikan paket, pola standar untuk aturan yang menolak adalah LOG dulu, DROP setelahnya:
sudo iptables -A INPUT -s 203.0.113.9 -j LOG --log-prefix "IPT:DROP-SPOOF: "
sudo iptables -A INPUT -s 203.0.113.9 -j DROPPaket yang cocok akan: dicatat (LOG) → lalu dijatuhkan (DROP). Ini disebut duplicate target — dua aturan terpisah untuk satu tindakan. Gunakan pola ini untuk semua penolakan penting di ruleset produksi.
Warning
Bahaya log flood: pola LOG+DROP pada aturan yang sering di-DROP (misal menolak semua scan dari internet) bisa membanjiri disk dengan ribuan baris per detik. Aturasi (rate limit) log dengan modul limit, arahkan ke file terpisah, atau terapkan rotasi log yang agresif. Di episode 16 kita pasang remnya.
Kombinasi LOG + -m limit mencegah banjir log tanpa kehilangan jejak:
sudo iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min -j LOG --log-prefix "IPT:SSH: "Sekarang paling banyak 3 entri log per menit untuk trafik port 22 — cukup untuk melihat "ada sesuatu" tanpa membuat disk penuh.
Di distro modern, log kernel ikut ke journald:
sudo journalctl -k --since "5 min ago" | grep "IPT:"Di sistem dengan rsyslog klasik, baris kernel masuk ke /var/log/kern.log atau /var/log/syslog:
grep "IPT:" /var/log/kern.logPola yang konsisten pada --log-prefix (misal IPT:SSH:, IPT:DROP:, IPT:NAT:) membuat pencarian jauh lebih mudah.
Setiap aturan punya counter paket dan byte (kita lihat sejak episode 4). Untuk memantau secara live:
watch -n 2 iptables -L -n -vwatch me-refresh output iptables -L -n -v tiap 2 detik. Counter yang naik cepat = aturan itu sedang bekerja keras. Untuk melihat counter dari semua tabel sekaligus:
watch -n 2 "iptables -L -n -v; iptables -t nat -L -n -v"Counter bisa di-reset kapan pun dengan -Z — berguna sebelum eksperimen:
sudo iptables -ZPemindai port mengirim SYN ke banyak port untuk menemukan layanan terbuka. Karena koneksi ini tidak pernah tuntas, mereka masuk kategori NEW berulang dari IP yang sama. Deteksi dasarnya:
sudo iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -m limit --limit 5/min -j LOG --log-prefix "IPT:SCAN: "Pola tambahan yang lebih kuat memakai modul recent (kita bedah penuh di episode 13). Untuk saat ini, cukup perhatikan: lonjakan IPT:SCAN: dari satu IP dalam waktu singkat adalah indikasi pemindaian.
sudo journalctl -k | grep "IPT:SCAN:" | grep -oP 'SRC=\K[0-9.]+' | sort | uniq -c | sort -rn | head--log-prefix lebih dari 29 karakter — prefix terpotong dan menyulitkan filter.-j setelahnya — paket lolos tanpa ditindak; jika itu yang kalian mau (misal observasi murni) tidak masalah, tapi pastikan sadar.Inti yang harus dibawa pulang:
LOG mencatat tapi tidak menghentikan paket; parameter kunci: --log-prefix, --log-level.-m limit agar tidak banjir.watch iptables -L -n -v memantau counter live; -Z me-reset counter.NEW yang tak wajar dari satu IP adalah sinyal pemindaian.Di episode 13 selanjutnya kita akan membahas advanced matches — modul iprange, mac, string, time, dan recent — untuk membatasi berdasarkan rentang IP, alamat MAC, isi string paket, waktu, serta membangun ban dinamis per-IP. Sampai jumpa di episode 13!