Pada system operasi FreeBSD ada beberapa aplikasi yang digunakan sebagai Firewall diantaranya PF dan IPFW. IPFW tidak hanya digunakan untuk Firewall tetapi juga dapat digunakan untuk management bandwith dengan QoS.
Pada dasarnya FreeBSD sudah terintegrasi dengan IPFW namun belum dapat digunakan sebelum kita setting dengan cara kompile ulang kernelnya atau dengan kompile ulang module kernelnya. Disini kita akan melakuakn kompile kernel untuk mengaktifkan IPFW-nya. Untuk melakukan kompile kernel hak akses haruslah sebagai root (administrator). Disini FreeBSD kita buat sebagai router
Agar tidak terjadi kesalah pahaman maka penulis beritahukan bahwa tanda (#) adalah user root dan tanda ($) adalah user biasa.
Dibawah ini adalah cara untuk mengaktifkan IPFW

Jika anda sebagai user biasa maka loginlah sebagai root dengan perintah su –

$ su –

Pindahlah direktori ketempat dimana terdapat konfigurasi kernel-nya

# cd /usr/src/sys/i386/conf

Copy kernel GENERIC ke nama kernel yang baru, kita beri nama IPFWKERNEL

# cp GENERIC IPFWKERNEL

Editlah IPFWKERNEL dengan ee (editor electronic) milik FreeBSD

# ee IPFWKERNEL

Setelah itu tambahkan opsi dibawah ini pada barisan paling bawah. Opsi yang ditambahkan tadi dapat digunakan untuk melakukan management Bandwith (QoS). Kemudian simpan

# IP FIREWALL AND IPFILTER
options IPFILTER
options IPFILTER_LOG
options IPFIREWALL
#options IPFW
#options IPFW2
options IPDIVERT
options DUMMYNET
options HZ=1000
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options TCP_DROP_SYNFIN

Langkah selnajutnya adalah mengkompile ulang kernelnya. Lakukanlah perintah config pada kernel yang baru..kemudian pindah direktori dan lakukan perintah untuk kompile configurasi kernel.

# config IPFWKERNEL
# cd .. /compile/IPFWKERNEL

Lakukan perintah berikut untuk mengecek dependency dari FreeBSD

# make depend

Kemudian lakukan kompile pada kernel tersebut setelah selesai lakukan installasi kernel tersebut

# make 
# make install

Restartlah komputer anda agar IPFW dapat aktif

# reboot

setelah direboot maka langkah selanjutnya adalah mengaktifkan IPFW agar dapat digunakan untuk megatur port mana saja yang boleh dibuka dan harus ditutup

Pindahlah ke Direktori /etc dan editlah file rc.conf tambahakan opsi firewall
Dan letak rules IPFW diletakkan

# cd  /etc
# ee rc.conf
# -- sysinstall generated deltas -- # Mon Aug 27 21:40:21 2007
# Created: Mon Aug 27 21:40:21 2007
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
gateway_enable="YES"
hostname="trio.magang.net"
ifconfig_rl0="inet 192.168.100.1  netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.101.1  netmask 255.255.255.0"
rpcbind_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
firewall_enable="YES"
firewall_script="/usr/local/ect/ipfwkernel.rules"

Kemudian sekarang kita akan menulis rules untuk IPFW agar dapat bekerja dengan baik. Pindahlah kedirektori /usr/local/etc/ dan edit file ipfwkernel.rules

# cd /usr/local/etc/
# ee ipfwkernel.rules

Tambahkan rules berikut kemudian simpan filenya

	 IPF="ipfw -q add"
	 ipfw -q -f flush

	 #loopback
	 $IPF 10 allow all from any to any via lo0
	 $IPF 20 deny all from any to 127.0.0.0/8
	 $IPF 30 deny all from 127.0.0.0/8 to any
	 $IPF 40 deny tcp from any to any frag

	 # statefull
	 $IPF 50 check-state
	 $IPF 60 allow tcp from any to any established
	 $IPF 70 allow all from any to any out keep-state
	 $IPF 80 allow icmp from any to any

	 # open port ftp (20,21), ssh (22), mail (25)
	 # http (80), dns (53) etc
	 $IPF 110 allow tcp from any to any 21 in
	 $IPF 120 allow tcp from any to any 21 out
	 $IPF 130 allow tcp from any to any 22 in
	 $IPF 140 allow tcp from any to any 22 out
	 $IPF 150 allow tcp from any to any 25 in
	 $IPF 160 allow tcp from any to any 25 out
	 $IPF 170 allow udp from any to any 53 in
 	 $IPF 175 allow tcp from any to any 53 in
	 $IPF 180 allow udp from any to any 53 out
	 $IPF 185 allow tcp from any to any 53 out
	 $IPF 200 allow tcp from any to any 80 in
	 $IPF 210 allow tcp from any to any 80 out

	 # deny and log everything
	 $IPF 500 deny log all from any to any

Jalankan IPFW-nya dengan perintah berikut

# sh /usr/local/etc/ipfwkernel.rules

Listlah IPFW-nya dengan perintah berikut

# ipfw list

sebagai conntoh disini kita akan melakukan blok terhadap icmp dan mengizinkan ssh terhadap FreeBSD dari komputer lain.

Pindahlah ke direktori /usr/local/etc/ dan editlah file ipfw.rules, ubah rulesnya menjadi seperti berikut, kemudian save filenya

# cd /usr/local/etc
# ee ipfw.rules
IPF="ipfw -q add"
ipfw -q -f flush

#loopback
$IPF 10 allow all from any to any via lo0
$IPF 20 deny all from any to 127.0.0.0/8
$IPF 30 deny all from 127.0.0.0/8 to any
$IPF 40 deny tcp from any to any frag

#allow open port ssh (22)
$IPF 50 allow tcp from 192.168.100.7 to any 22 in
$IPF 60 allow tcp from 192.168.100.7 to any 22 out

# deny icmp
$IPF 70 deny icmp from 192.168.100.1 to any

Restartlah ipfw agar menjalankan rules yang baru saja dibuat kemudian reboot komputer anda dan listlah ipfw-nya

 
# sh /usr/local/etc/ipfw.rules
# reboot
# ipfw list

Panduan IPFW pada FreeBSD 5.5

Advertisements