Tuesday, June 24, 2025

Konfigurasi Firewall dengan pf dan ipfw di FreeBSD: Biar Servermu Gak Kebobolan!

 


 

Halo para pejuang terminal!

Kalau kamu sudah sampai tahap belajar firewall di FreeBSD, selamat ya! Kamu sudah naik level dari sekadar ngoprek jaringan ke ranah keamanan jaringan — atau istilah kerennya: network hardening.

Di dunia FreeBSD, kita punya dua jagoan utama untuk urusan firewall:

  • pf (Packet Filter)
  • ipfw (IP Firewall)

Keduanya sama-sama powerful, tapi punya filosofi berbeda. Jadi, artikel ini akan ngebahas:

  • Apa itu firewall dan kenapa penting
  • Perbedaan pf vs ipfw
  • Cara konfigurasi dasar masing-masing
  • Contoh rule praktis
  • Tips buat pemula

Siapkan terminal dan secangkir kopi (atau teh), kita mulai!

 

Kenapa Perlu Firewall?

Coba bayangin kamu punya rumah tanpa pagar. Siapa pun bisa masuk, lihat-lihat, bahkan bawa pulang barangmu. Nah, firewall itu ibarat pagar dan satpam digital. Dia bisa:

  • Nolak koneksi asing yang mencurigakan
  • Batasi akses ke port tertentu
  • Log aktivitas jaringan
  • Ngatur lalu lintas data (baik dari/ke dalam jaringan)

Jadi, firewall bukan cuma buat “orang paranoid”, tapi kebutuhan dasar buat sistem yang online.

 

pf vs ipfw: Mana yang Cocok Buat Kamu?

 

pf (Packet Filter)

  • Asalnya dari OpenBSD
  • Syntax gampang dibaca dan ditulis
  • Lebih modern dan banyak dipakai di router/firewall profesional (misalnya pfSense)
  • Fokus pada simplicity dan deklaratif

 

ipfw (IP Firewall)

  • Buatan asli FreeBSD
  • Lebih fleksibel dan granular
  • Bisa dikombinasikan dengan traffic shaping (dummynet)
  • Syntax mirip ACL, agak “kaku” tapi powerful

 

Konfigurasi pf di FreeBSD

 

1. Aktifkan pf

Edit file /etc/rc.conf:

pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"

 

2. Buat Rules di /etc/pf.conf

ext_if = "em0"

set block-policy drop
set skip on lo

block all

pass in on $ext_if proto tcp to port 22
pass out proto { tcp udp } to port { 53 80 443 }

 

3. Jalankan pf

sudo service pf start

Untuk reload:

sudo pfctl -nf /etc/pf.conf
sudo pfctl -f /etc/pf.conf

 

4. Lihat status pf

sudo pfctl -sr
sudo pfctl -si

 

Log Aktivitas

tcpdump -n -e -ttt -i pflog0

 

Konfigurasi ipfw di FreeBSD

 

1. Aktifkan ipfw

firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
firewall_type="open"

 

2. Buat Skrip /etc/ipfw.rules

#!/bin/sh
ipfw -q -f flush

ipfw add 100 allow all from any to any via lo0
ipfw add 110 deny all from 127.0.0.0/8 to any in
ipfw add 120 deny all from any to 127.0.0.0/8 in
ipfw add 200 allow tcp from any to me 22 in
ipfw add 300 allow tcp from me to any 80,443 out
ipfw add 310 allow udp from me to any 53 out
ipfw add 400 allow tcp from any to me established
ipfw add 500 allow udp from any to me keep-state
ipfw add 65000 deny all from any to any

 

3. Jalankan

sudo service ipfw start
sudo sh /etc/ipfw.rules

 

4. Lihat Daftar Rule

sudo ipfw list

 

Perbandingan Singkat

Fiturpfipfw
AsalOpenBSDFreeBSD asli
KonfigurasiDeklaratif, ringkasImperatif, eksplisit
Log bawaanYa (pflog)Manual
StatefulYaYa
Traffic shapingTerbatasDengan dummynet
Cocok untukRouter/firewallServer, eksperimen

 

Tips Anti-Ngadat

  • Uji rules manual sebelum reboot.
  • Simpan backup konfigurasi.
  • Gunakan log dan tcpdump untuk debugging.
  • Gunakan urutan rule yang jelas dan tidak tumpang tindih.

 

Contoh Kasus Praktis

 

Kasus: Server Web dengan Port Terbatas

pf:
block all
pass in on em0 proto tcp to port { 80 443 }
pass out proto { tcp udp } to port { 53 80 443 }
ipfw:
ipfw add allow tcp from any to me 80,443 in
ipfw add allow tcp from me to any 80,443 out
ipfw add allow udp from me to any 53 out
ipfw add deny all from any to any

 

Kasus: Client Komputer yang Hanya Boleh Akses Internet

pf:
block all
pass out all
ipfw:
ipfw add allow all from me to any out
ipfw add deny all from any to any

 

Pilih Sesuai Gaya dan Kebutuhan

Kalau kamu pengen konfigurasi yang ringkas, nyaman dibaca, dan langsung bisa digunakan di router atau server — pf adalah temanmu.

Tapi kalau kamu pengen granular control, kombinasi dengan traffic shaping, dan gak keberatan syntax panjang — ipfw bisa jadi alat eksperimen favorit.

Yang penting:

  • Backup config-mu
  • Pahami rule yang kamu tulis
  • Uji coba di lingkungan aman dulu

Semoga artikel ini bikin kamu makin nyaman ngoprek FreeBSD tanpa takut kebobolan dari jaringan. 


0 comments:

Post a Comment