Mendalami IPFW sebagai alternatif packet filter FreeBSD: sintaks berbasis nomor rule, tabel, dan pemuatan modul kernel dengan kldload. Kalian juga akan membandingkan pf vs IPFW vs ipfilter, lalu memakai tcpdump, ngrep, dan netstat untuk analisis paket dan troubleshooting jaringan.

Di episode 12 sebelumnya kalian sudah menguasai pf dan NAT. Sekarang kita jelajahi alternatif packet filtering: IPFW, plus perbandingan dengan pf dan ipfilter. Tidak semua kebutuhan sama, dan memilih tool yang tepat adalah bagian dari keahlian administrator.
IPFW memiliki sejarah panjang di FreeBSD dan dikenal dengan sintaks berbasis nomor rule yang sangat presisi. Episode ini juga memperkenalkan tool analisis paket — tcpdump, ngrep, dan netstat — yang menjadi mata kalian di lapisan jaringan.
IPFW mengatur lalu lintas dengan rule bernomor. Nomor menentukan urutan evaluasi — nomor kecil dievaluasi lebih dulu. Aturan-aturan ini hidup di kernel dan dikelola dengan perintah ipfw.
IPFW adalah modul kernel yang perlu dimuat:
kldload ipfw
kldstat | grep ipfwUntuk memuat otomatis saat boot, tambahkan di /etc/rc.conf:
sysrc firewall_enable="YES"
sysrc firewall_type="open"Warning
Saat modul ipfw dimuat, secara default semua lalu lintas diblokir sampai aturan ditambahkan. Pastikan aturan permissive sudah ada, atau kalian akan terputus dari sesi administrasi. Gunakan firewall_type="open" dulu sebagai titik aman saat belajar.
ipfw add 100 allow ip from any to any via lo0
ipfw add 200 allow tcp from any to me dst-port 22
ipfw add 300 allow ip from me to any
ipfw add 400 deny ip from any to anySetiap aturan memiliki nomor unik. Aturan allow tcp from any to me dst-port 22 membuka SSH, dan deny ip from any to any di akhir menjadi default yang menolak.
Lihat aturan aktif, tambahkan, dan hapus:
ipfw list
ipfw add 500 count ip from any to any
ipfw delete 500
ipfw flushipfw flush menghapus semua aturan — gunakan dengan sangat hati-hati karena bisa memutus jaringan.
Danger
ipfw flush tanpa aturan pengganti akan mengunci semua koneksi. Sebelum flush, siapkan file aturan yang bisa dimuat kembali: ipfw -q flush lalu ipfw -q -f /etc/ipfw.rules.
IPFW juga mendukung tabel untuk daftar alamat dinamis:
ipfw table 1 create type addr
ipfw table 1 add 203.0.113.7
ipfw add 1000 deny ip from table\(1\) to anyTabel IPFW diperbarui saat runtime tanpa memuat ulang aturan — pola yang berguna untuk blacklist dinamis seperti pf tables.
| Aspek | pf | IPFW | ipfilter |
|---|---|---|---|
| Sintaks | Deklaratif, macro | Nomor rule | Mirip AT&T |
| Sumber | OpenBSD (diadopsi) | FreeBSD native | Eksternal |
| Kemudahan | Tinggi | Sedang | Sedang |
| Stateful | Ya, bawaan | Via keep-state | Via state |
| NAT | nat/rdr | nat via fwd | map |
| Cocok untuk | Firewall umum | Policy berurutan kompleks | Legacy/kompatibilitas |
Info
Untuk proyek baru, pf adalah pilihan paling nyaman dan didukung penuh. IPFW tetap relevan untuk lingkungan yang sudah memakai nomor rule dan butuh kontrol urutan yang eksplisit. ipfilter lebih cocok untuk kompatibilitas dengan konfigurasi yang sudah ada.
tcpdump adalah tool analisis paket standar. Contoh penggunaannya:
tcpdump -i em0 -n
tcpdump -i em0 -n port 80
tcpdump -i em0 -n host 192.168.1.100-i memilih interface, -n mematikan resolusi nama, dan filter seperti port atau host menyempitkan tangkapan.
Success
tcpdump -n -i pflog0 adalah pasangan sempurna untuk pf: log firewall berisi detail koneksi yang ditolak. Kombinasi keduanya mempercepat troubleshooting keamanan secara drastis.
ngrep mencari pola dalam payload paket — seperti grep untuk lalu lintas jaringan:
ngrep -d em0 "GET /"
ngrep -d em0 -W byline "password"ngrep berguna untuk memverifikasi isi protokol, misalnya memastikan request HTTP yang dikirim benar.
netstat menampilkan tabel koneksi, statistik interface, dan routing:
netstat -an
netstat -Lan
netstat -rnnetstat -Lan menampilkan daftar socket yang mendengarkan — cara cepat memeriksa service mana yang terbuka. netstat -rn menampilkan tabel routing.
Info
netstat -Lan memberi daftar lengkap port yang terbuka di sistem. Bandingkan dengan aturan firewall untuk menemukan service yang tidak sengaja terbuka ke publik.
Ketika ada masalah koneksi, ikuti urutan alat ini:
ifconfig em0 — pastikan interface dan IP benar.netstat -rn — pastikan routing masuk akal.ping dan traceroute — uji jalur.tcpdump -i em0 — lihat paket yang sebenarnya berjalan.ifconfig em0
netstat -rn
ping -c 3 8.8.8.8
tcpdump -n -i em0 icmpDi episode 13 ini kalian sudah mempelajari IPFW dengan sintaks nomor rule dan tables, perbandingan pf vs IPFW vs ipfilter, serta tool analisis paket tcpdump, ngrep, dan netstat. Kalian kini punya dua firewall bawaan di gudang senjata, ditambah kemampuan menganalisis apa yang terjadi di jaringan.
Inti yang harus dibawa pulang:
ipfw list untuk inspeksi.kldload atau firewall_enable di rc.conf.tcpdump dan ngrep adalah mata kalian; netstat -Lan memetakan port terbuka.Di episode 14 selanjutnya kita akan membahas OpenSSL, TLS & certificates — pembuatan sertifikat dengan openssl, manajemen trust store dengan ca_root_nss, hardening SSH dengan ed25519, dan tunneling untuk akses aman. Keamanan lapisan transport dimulai dari sini.