IPFW Firewall

FreeBSD IP Firewall (IPFW) için KERNEL Derlenmesi

Merhaba FreeBSD üzerine firewall kurmaya çalışacağız. Başlangıç olarak IPFW kernel’i derlemek gerekiyor normalde IPFW FreeBSD ile birlikte geliyor fakat aktif halde olmadığından kernelin yeniden derlenip IPFW desteğinin verilmesi gerekiyor. IPFW nin aktif olup olmadığını anlamak için

#ipfw list
Yazdığınızda aşağıdaki gibi bir hata mesajı alacaksınız.
ipfw: getsockopt(IP_FW_GET): Protocol not available

Evet Kerneli nasıl derleyeceğiz genel olarak kernelin yolu /usr/src/sys/i386/conf altındadır. Default Adı GENERIC olarak verilmiştir biz GENERIC isimli KERNEL’e bikaç bişey ekleyeceğiz bunun için bi kopyasını oluşturup onun üzerinden yeni bir kernel derleyeceğiz yeni kernelimize IPFIREWALL izmini vereceğiz :

IPFW için default kernelimizin bi kopyasını alıyoruz.

# cd /usr/src/sys/i386/conf
# cp GENERIC IPFWKERNEL

Kernelimizi vi editörümüz ile açıp IPFW desteği vermek için aşağıdaki opsiyonları devreye alıyoruz :
# vi IPFWKERNEL

Opsiyonları Ekliyoruz:
options IPFIREWALL # IPFW desteği için gerekli
options IPFIREWALL_VERBOSE # opsiyonel
options IPFIREWALL_VERBOSE_LIMIT=10 # opsiyonel
options IPDIVERT # nat gerekli ise ki gerekli

Dosyamızı kaydediyoruz ve gerekli kernel derleme komutlarımızı veriyoruz :
# cd /usr/src
# make buildkernel KERNCONF=IPFWKERNEL

Build Ettiğimiz Kernelimizi Install Ediyoruz :
# make installkernel KERNCONF=IPFWKERNEL
Bu işlemler biraz sürebilir bitinceye kadar bekliyoruz birince sistemi Restart ediyoruz.
# reboot

Adım # 1: IPFW yi aktif hale getirelim

/etc/rc.conf dosyasına gidip aşağıdaki satırları ekleyelim.
# vi /etc/rc.conf
Eklenecek satırlar:
firewall_enable="YES"
firewall_script="/usr/local/etc/ipfw.rules"

Dosyamızı kaydedip çıkıyoruz.

Adım # 2 Firewall Script’imiz yani kurallarımızın olduğu komut dısyamız.

Öncelikle  /usr/local/etc/ipfw.rule adında bi dosya oluşturalım siz istediğiniz adı kullanabilirsiniz ama rc.conf da verdiğiniz isimle aynı olmalı aksi halde ilk açılışta Firewall kuralları yüklenmez.
# vi /usr/local/etc/ipfw.rules
Dosyamızı açıp içine aşağıdaki komutları yapıştıralım.

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

Dosyamısı kaydediyoruz.

Adım # 3: Şimdi Firewall ‘umuzu çalıştıralım.

Aslında makinamızı restart ettiğimizde kurallar yüklenecektir fakat restart etmek istemiyorsak aşağıdaki komutu yazabilirsiniz.
# sh /usr/local/etc/ipfw.rules

Yüklemiş olduğumuz kurallrı görmek için ise aşağıdaki komutu yazabilirsiniz.

# ipfw list

Bir yanıt yazın

Connect with: