FreeBSD IPFW 2

Bu siteyi ilk actigimiz gunlerde FreeBSD ve ipfw hakkinda basit alalade bir makale yayinlamistim. Simdi (01:33 AM) aklima geldi ve bu makaleye bir yerlerden devam edelim dedim. Zira FreeBSD en sevdigim isletim sistemlerinden biridir. IPFW ise bsd uzerinde ogredigim ilk ve bence en basit (kullanici dostu) firewalldur.

Onceki konudanda hatirlatma baabinda birkac metin alacagim bilginize. Bu sefer biraz komplike olucak bilginize..

Simdi oncelikle bu yazida bir senaryomuz olsun biraz gercekci olalim herkes basitce anlasin.

Sunucu ismi: fw

Bsd Versionu: 6.1

Sourcelarla birlikte standart kurulmus bir BSd.

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

# cp GENERIC FW

# cp GENERIC.hints FW.hints

# vi FW

simdi buraya kadar olan kismi anlatalim. Oncelikle FreeBSD de kernel source default olarak /usr/src/sys/i386/conf/ dizini altina GENERIC ismiyle kurulur. Biz bu dizine girdik ve yeni kernel dosyamiz olacak olan FW dosyasini GENERIC dosyasindan turettik.

vi editoru ile dosyayi actik ve kernelimizi editlemeye basladik…

Amac ipfw oldugu icin kernela genel olarak bakmayacagiz. sadece ident bolumunu FW olarak degistirelim ve GENERIC.hints satirindan # i kaldirip FW.hints olarak degistirelim.

Sonra ipfw parametlerini ekleyelim

options      IPFIREWALL

Bu parametre ile IPFW yi aktif ediyoruz…

options    IPFIREWALL_VERBOSE

Log sistemini aktif ediyoruz.

options    IPFIREWALL_VERBOSE_LIMIT=5

Log sayimizi limitledik.

options   IPFIREWALL_DEFAULT_TO_ACCEPT

bu komutla firewallumuz gelen herseyi kabul edicek..

options    IPDIVERT

Nat/pat ihtiyacimiz var ise…

options    DUMMYNET

limit ihtiyacimiz var ise…

dosyayi kaydedip dosyadan cikalim.

Simdi kernelimizi derleyelim (derleyelim mi gecenden sozumuz vardi hadi yapalim :o))

# config FW

# ../compile/FW

# make depend

# make

# make install clean

# reboot

Bir hata almadiysak gonul rahatliyla restart atalim FreeBSD baska OS lara benzemez…

# uname -a

Wow kernelimiz orda bu kerneli biz derledik. Bu bizim kernelimiz… Biz kraliz biz herseyi yapariz, biz mukemmeliz…Ne mutlu Turk’ um diyeniz..

Simdi /etc/rc.conf dosyasina geldik bu dosya ozellike bsd de hayati onem tasir…

firewall_enable=”YES”

yeterli…

simdi firewallumuzu olusturalim..

Hatta olusturmadan once senaryomuzu cizelim.

Ornek olarak 2005 yilinda Beykent Universitesine kurdugum firewallu alalim.

Senaryo su; 200 Client (ogrenciler kullaniyor) surekli yonja da msnde bu arkadaslar.. (ayip ama bizde kutuphanede odev hazirliyacagiz sira bekliyoruz)..  Simdi bunlara ip dagitmak lazim yani DHCPD lazim. Daire baskani bana bir adet statik verdi dis bacak icin demekki nat yapmak lazim daha dogrusu pat yapmak lazim. (baska bir konuda farka deginirim ikisi arasindaki). Sonracima yonja monca yasaklamak lazim demekki proxy lazim demekki SQUID lazim… Eh pek tabiki firewall lazim.

Simdi bu is icin cok detaya girmeyecegim cunku bugun hala universitede bu firewall aktif diyebiliyorum ogrenciler okuyup aciklarindan faydalanabilirler 🙂

DHCPD kismini kafadan atliyorum direk firewall dan bahsediyorum.

vi /usr/local/etc/fikri/firewall.conf

#!/usr/local/bin/bash

ipfw -f flush

#Degiskenler (bunlar aslinda bende dosya :9

msnizinliler=”192.168.1.x…..”

msnports=”xxxx….”

amcalar=”192.168…..”

izinliportlar=”80,443,xxx”

ipfw -f flush

ipfw add allow ip from  $amcalar to any

ipfw add allow ip from $msnizinliler to any $msnports
ipfw add allow ip from any to any $izinliportlar

ipfw add allow ip from any $izinliportlar to any

ipfw add deny ip from any to any

 

Pek guzel olmadi ama olsun sadece basit bir ornek yazdim konuyla yakindan ilgilenenler varsa elimde bir cok calisan sistem var yardimci olabilirim elimden geldigi kadar…

#chmod +x firewall.conf

# vi /etc/rc.loca

#!/usr/local/bin/bash

/usr/local/etc/fikri/firewall.conf

#chmod +x /etc/rc.local

Hadi gecmis olsun cok yoruldum arkadaslar uyku vakti sabah bir cuval is bekliyor. Bu arada saat 02:06 ehh cok ta agir gitmemisiz. hadi iyi geceler.. Bu arada bundan sonra bsd ye devam…

FreeBSD IPFW 2” üzerine 3 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.