|
FreeBSD uzerinde IpFilter
kurulumu ve konfigurasyonu.
| ||
| ||
Bu makalede, daha once, dunyanin en guvenli Isletim Sistemi olarak, dost dusman butun guvenlik otoriteleri tarafindan kabul goren, ve Bugtraq listesinde guvenlik aciklari en az boy gosteren bir isletim sistemi olmasiyla goz dolduran OpenBSD uzerinde efsanevi BSD paket filter'i enfes ve muthis derecede etkin ve etkili kullanan basarili bir `paket filter l` olan Ipfilter'in bir `production` firewall makinasi uzerinde kurulumu anlatilmisti. Fakat, dort bes aydan beri bazi seyler degisti. Degisen en buyuk sey de, iki uc gun once Theo de Raadt'in, OpenBSD cvs tree den ipfilter'i cikarması kuskusuz. Yani, onumuzdeki OpenBSD lerde ipfilter olmaycak. Bunun sebebi olarak da, Darren Reed'in ipf34-current icin (ipfilter'in development versiyonu, Darrenin deyimiyle non-release code ) LICENCE 'i biraz degistirmesi yatiyordu. Darren, latest-release'de (3.4.17) eski BSD lisansini hala kullaniyor, degisikligin sadece, "release kabul edilmeyen surumun, kendisinden izinsiz 'degistirilmesinin' onune gecmek" amaciyla yapildigini, dolayisiyla, muhtemel breakdownlarin onune gecmek istedigini soyluyor. Fakat, OpenBSD takimi ve Darren bu konuda anlasamadilar, ve IPF, OpenBSD cvs tree'den cikarildi. Buna ragmen, Darren insanlarin geri donut vermeleri durumunda OpenBSD icin destegini surdurecegini belirtti: http://false.net/ipfilter/2001_05/0565.html Darren, neden bu degisikligi yaptigini soyle anlatiyor: http://false.net/ipfilter/2001_05/0458.html Aslinda bu dokumanda TODO olarak, OpenBSD ipfilter bridging i anlatmak duruyordu, fakat, bu durumda bunu anlatmak pek feasable bir dusunce degil. Fakat, Darren ve NetBSD ile FreeBSD 'core team' larinin yaptigi gorusmeler sonucunda, bu iki BSD isletim sistemi ipfilter'in kendi cvs tree'lerinde yer almasinda bir sakinca olmadigi gorusunde birlestiler. Darren'in bu konuda yaptigi aciklama maili asagida: http://false.net/ipfilter/2001_06/0051.html Her neyse devam edelim, Eger, sanal ortamdan korumaniz gereken `top-secret` bilgiler tasiyan birkac yuz ile birkac bin arasi makinaniz var, ticari firewall cozumlerini size kakalamaya calisan pazarlamacilarin istedigi kadar cok paraniz da yoksa, bu dokumani okumaya devam edin. FreeBSD+ipfilter tam size gore. Cunku siz `cok sey` istiyorsunuz ama, `az paraniz` var. ;)
| ||
| ||
| Bu dokumanin en guncel hali; http://www.enderunix.org/docs/ipfilter.html
adresindedir.
Aksi belirtilmedigi takdirde bu kabil dokumanlarin haklari kendilerini yazan yazarlarda saklidir. Bu dokuman da, parca parca ya da tamamen herhangi bir sekilde, yazarinin izni dahilinde dagitilabilir. Yazar, bu dokumani okuyanlarin ugrayacaklari herhangi bir zarardan oturu sorumluluk kabul etmez. Use at your own risk! Bu makalede, yeni kullanicilara ipfilter paketinin tanitimi, ve guzel firewall dizayni hakkinda bir kac bilgi verebilmek amaciyla yazilmistir. Kullanicinin temel network kavramlari, temel isletim sistemi kavramlari, paket filtreleme, tcp/ip hakkinda genel bilgisi oldugu kabul edilmektedir. Temel seviyede FreeBSD tecrubesi isinizi kolaylastirir, calisir bir sisteme kavusmak icin gerekli degildir, ama temel *NIX bilgisi gerekmektiedir!!!. Fakat firewall'inizin isletimini devam ettirmek icin BSD ogrenmek zorundasiniz!!!. Egerki, Linux uzerinde bir firewall uygulamasi ( ipchains'la ) Ismail hoca'nin Ipchains-Howto'sunu okuyun efendim. Adresi: http://www.enderunix.org/docs/ipchains.html Burada, temel ( www/smtp/ssh/pop/imap gibi ) birkac servisin firewall kontrolu altinda alinmasi, ve organizasyonun internet cikisinin firewall'imizdan yapilmasi icin gerekli konfigurasyonu, ipfilter'i genel olarak anlatarak yapacagiz. Burda DMZ ve trusted net arasinda herhangi bir kural konmamistir. Gene zaman darligi nedeniyle bu konu ileriki bir tarihe atilmistir. Ayrica, kurallari, rulegroup'lar haline getirilmesi de burada anlatilamistir. Bu da ileriki bir tarihte yapilmaya calisilacaktir. Fragmented paketlerin hepsi `ignore edilmistir`. Firewall'imiz fragmented paket kabul etmez. Isterseniz `keep frags` kelimesiyle burada da degisiklik yapabilirsiniz. Eger, herhangi bir konuda yardima ihtiyaciniz olursa, roots@enderunix.org adresine mail atabilirsiniz.! 4 Haziran, 2001 | ||
| FreeBSD mi OpenBSD mi? | ||
| OpenBSD'nin http://www.openbsd.org/ de bulunan
Turkiye yansi sayfasina girerseniz, gozunuze ilk carpan sey, sayfasinin
ortasinda kirmizi harflerle yazilan su ibaredir: "Four years without a remote hole in
default install". Yani bu su demek, 4 yil
once kurdugunuz teknolojik olarak bile outdated olmus bir OpenBSD
makinasi, eger tehlike arz edecek yerel kullaniciniz yoksa, remote olarak
kale gibi guvenli. Makinayi default olarak kuruyorsunuz, 4 sene yanina hic
gitmiyorsunuz, patch'lemiyorsunuz, iki de bir de bugraq'dan gelen bir mail'le
irkilip gecenin bi yarisi ofise gidip de paket guncellemekle ugrasmiyorsunz,makinaniz hala
guvenli sayilabilir durumda oluyor. Hala
`hacker-free`!!. Burada guvenli derken, OpenBSD'de remote r00t acigi
bulunmadigini ve kimsenin bulamayacagini iddia etmiyoruz. Dedigimiz sey,
underground piyasasinin seferber olmasina karsin, kaynak kodu da,
virgulune kadar acik oldugu halde hala `root` verecek bir remote bir acigin bulunamamasi, Isletim
Sistemi tarihinde efsanevi bir olaydir.
Biz, organizasyon guvenligimizin merkezi durumunda olacak makinamizin, herseyin ustunde `sekuyr` olmasini isteriz. Oyleyse, herseyden once, onun isletim sistemi bizim icimize su serpmelidir. Baskalarini koruyayim derken, arkadan vurulmamiz icin, once firewall makinamizin kalbi beyni herseyi olan isletim sisteminin bizim basimizi agritmayacak kadar guvenli olmasi lazimdir. OpenBSD'nin bu gibi artilari olmasina ragmen, GIRIS kisminda da belirttigim gibi, su anda OpenBSD gelistiricileri official olarak ipfilter'i cvs tree'lerinde tutmuyorlar, yani destek vermiyorlar. Ama gene dedigim gibi, Darren feedbacklerin surmesi durumunda OpenBSD icin destegini devam ettirecegini soyluyor. OpenBSD'yi nasil kuracagim? Endiseye hic mahal yok! Omer Faruk Sen'in yazdigi OpenBSD kurulumu gayet aciklayici bir
dokuman, zaten kurulumu tecrube ettiginizde su ana kadar neden OpenBSD
kurmadiginiza pisman olacaksiniz. Simdi, FreeBSD ise, OpenBSD kadar, guvenlige adanmis bir gelisim surecinde olmamasina ragmen, FreeBSD'nin kurulumu yapilirken, sadece ve sadece 'core system'in kurulmasiyla ayni guvenlige sahip olabilir.Sadece 'core system' diyorum ve firewall olacak makinada acik portun olmamasi gerektiginden bahsetmiyorum bile! Gelecegin ne getirecegini bilemeyiz, fakat, openipf.org domain adresi alinmis gorunuyor :) Biz de simdi, ipfilter'i official olarak destekleyen iki BSD sistemden birisi olan, ve sunucu kurulumlarinda robust olmasi ile un yapan FreeBSD uzerinde kuracagiz. FreeBSD'yi nasil kuracagim? Gene endiseye mahal
yok, EnderUNIX grubunun hazirladigi FreeBSD kurulum dokumani var:
| ||
| Ipfilter | ||
| Ipfilter, Darren Reed (darrenr@pobox.com) tarafindan
yazilmis, firewall ortamlarinda basariyla uygulanan bir TCP/IP paket
filtreleme programidir. BSD'nizin kernal'ina loadable module olarak yuklenebilecegi gibi, statik olarak da derlenebilir, fekat tavsiye edilen static olarak derlemenizdir. http://avalon.coombs.anu.edu.au/~avalon/ adresinde yazildigi uzere, Ipfilter,
uzerinde kurulu geliyor, ve asagidaki platformlar uzerinde de derleyip calistirmisler var:
Eger, paketi baska bir platformda denemek isterseniz, ipfilter'i ftp://coombs.anu.edu.au/pub/net/ip-filter/ip-fil3.4.17.tar.gz adresinden indirip derleyebilirsiniz. Peki ipfilter neleri yapabiliyor?
Iste bunlar Ipfilter'in onemli gordugum ozellikleri. Simdi, kurmaya baslayalim... --> | ||
| On hazirlik | ||
| Once, firewall ortamimizi dizayn edelim: Bir internet agimiz
var, bir adet DMZ yani server zone'umuz var, bir de trusted-net'imiz, yani
pc'lerimizin felam oldugu bolge var. Yani toplam, birbirinden fiziksel
katmanlari ayri 3 agimiz var:
Dolatisiyla, firewall olacak makinamizda 3 ethetnet kartina ihtiyacimiz var. Bunlar, buyuk ihtimalle, hele hele GENERIC kernel kullaniyorsaniz acilis sirasinda asagidaki gibi taninacaktir: fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x6400-0x641f mem
0xe4000000-0xe40fffff,0xe4100000-0xe4100fff irq 10 at device 10.0 on
pci0 Dolayisiyla ethernet arayuzlerimiz fxp0, fxp1 ve fxp2. bunlardan
Simdi de, makinamiz bir gateway olacagi, yani paketleri interface'leri arasinda forward edecegi icin, ip forwarding'i etkinlestirmemiz lazim, bunun icin, /etc/sysctl.conf'ta:
olarak degisecektir. | ||
| Baslatma | ||
Simdi. FreeBSD'nizi basariyla
kurdunuz,
Evet, gordugunuz gibi, default olarak bir suru servisimiz hic gereksiz yere calisiyor. Bunun icin inetd yi disable ediyoruz.
FreeBSD'nin acilirken okudugu dosyalardan olan /etc/rc.conf u favori editorunuzle aciniz, Burada asagidaki satirlari ekleyin:
Orada, ipfilter ve ipnat'i calisir hale getirelim, gereksiz servisleri kapatalim:
yapalim. Makinayi reboot ettiginizde, makina acilirken "Configuring
Ipfilter" diyerek ipfilter'i calistiracaktir.
yapiniz. burada `ipf` ve `ipnat` programlari filter ve nat rule'larini manipule eden baslica programlar oluyorlar. Ama durun, hemen simdi reboot etmeyelim, cunku ipfilter'i kernel icine derlememiz lazim:
| ||
| Kernel derleme | ||
Ipfilter, FreeBSD 4.3 Release ile
beraber geliyor, fekat kernel'da destegini vermek gerekiyor, Onun icin,
/usr/src/sys/i386/conf/GENERIC ya da konfigurasyon dosyaniz neyse, ona
minimum su iki satiri eklemeniz gerekiyor:
Basitce, sonra:
sonra, olaraki kernel'i derleyeceksiniz. Daha detayli kernel derlemek
icin de: adresindeki Kernel Handbook'tan yardim alabilirsiniz... | ||
| Genel Mantik | ||
| Ipfilter, her rule'un eklenmesinde ayni binary'nin
defalarca calistirilmasi yerine, calistiginda parse ettigi bir ruleset
dosyasi kullanir. Ipfilterin paket filtelemesi, by-default,
/etc/ipf.rules'deki ruleset'i, NAT'i da, /etc/ipnat.rules'dakileri
okuyarak calisir. Simdi, /etc/ipf.rules dosyasini acalim, hem rule
yazalim, hem de ipfilter'in calisma mantigini anlatalim:
Firewall kurallari, yukaridan asagiya okunur ve her yeni kural, ruleset'in sonuna eklenir.
Bir paket geldiginde, bilgisayar once, `pass in all` kuralini uygular, sonra da `pass out all`. Linux ipchains/iptables/ipfwadm ile ilgilenmis olanlar bilirler, orda bir paket geldiginde, kurallar yukaridan asagiya incelenir, eger paketi ilgilendiren bir kural yakalanirsa, ruleset'in taranmasi biter, ve o kural, nihai kural olarak pakete uygulanir. Fakat, durum ipfilter'de durum boyle degil. Her paket icin, ruleset'deki butun kurallar kontrol edilir. Bu durum da `quick` kelimesiyle degistirilebilmektedir. Her neyse, devam edelim: Yukaridaki kurallar her ingilizce bilen erkisinin anlayabilecegi uzre, gelene gidene eyvallah demektedir. yani gelen ve giden butun paketlere gecis izni vemektedir. Biraz daha ilerleyelim, peki bu napiyor?
192.168.0.0 ag adresli, 192.168.255.255'den yayin yapan, yani 16-bit ag adresine sahip paketlerin gecisine, diger kurallari incelemeyi birakarak ( quick kelimesiyle ) izin vermiyor. Peki bu napiyo?
gene ayni sey gecerli, ama bu defa tun0 arabirimi uzerinde bu kural gecerli (tun0 bsd'de point-to-point baglantinin interface'idir). Peki bu?
Bu da, bir onceki kuralla ayni etkiye sahip, ama bu sefer, bu paketi match eden paketleri logluoyor.
proto icmp, kuralin icmp paketleri icin gecerli oldugunu berlitiyor. Himm, icmp paketinin tipini bile belirtebiliyorsunuz: ping ve traceroute calissin diye:)
tcp/udp paketleri icin port dahi belirleyebiliyoruz. makinamizin remote shell portuna giden paketleri bloke ediyoruz simdi. Simdi, Cisco kullananlariniz heman hatirlayacaksiniz, cisco'da `established tcp` paketlerinin gecisini saglayan established kelimesini. ipfw'de established, ipfwadm'de setup/established' dir o hani? Iste, ipfilter, bu established baglantilarin gercekten onlar mi olduklarini gercekten cok iyi takip edebiliyor. Hem de, sadece tcp bazinda degil, udp ve icmp bazinda da! Bu fonksiyonellik icin kullanmaniz gereken sihirli sozcuk:
Simdi, biraz olayin felsefesine girelim. Istemeyenler bir sonraki paragraftan devam edebilirler. ipfilter'da, gelen ve giden paketler icin aslinda, ruleset kontrol edilmez. Aslinda kontrol edilen `state table` dir. bu tablo, firewall'dan sorgusuz sualsiz gecmeesine izin verilen tcp/udp/icmp sessionlarin tutuldugu bir tablodur. Bir nevi bir guvenlik acigi gibi gorunse de aslinda degil. Neden mi? Butun tcp/ip baglantilarinin bir baslangici, bir devami bi de sonu vardir. Yani ortasi olmayan bir son'lu baglanti olmaz! ya da baslangici olmayan!. Eger, firewall kurallarimiz, bir baglantinin baslangicina izin veriyorsa, mantiki olarak, ortasina ve dahi sonuna da izin verecektir, degil mi? Iste, keep state olayi, firewall'in sadece yeni (diger bir deyisle SYN flag'i set edilmis ) paketler uzerinde islem yapmasini ve orta ve sonla ugrasmamasini sagliyor. Eger bir baglanti'da SYN paketinin gecmesine izin veriliyorsa, sonra gelen ACK ve FIN paketlerine de izin veriliyor. Iste state-table bu izin verilen baglantilardan olusuyor. Keep state bize gelen her incoming baglanti icin, outgoing kurallarimizda bir `pass out ...` kurali eklemekten kurtariyor. Oyle ya, bi taraftan gelen bir paket, ayni zamanda bizden oraya ulasabilmeli. Incoming olarak bi pakete izin veriyorsak, ondan kaynaklanan outgoing paketlerde otomatik olarak state table'a yaziliyor. Simdi de, FIN saldirilarini, bu state tablosu yardimiyla, ve de `flags S` kelimesi yardimiyla engelleyelim. Bu kelime ustunde SYN flag basili paketler demektir;
Simdi, 193.140.205.1 makinasina sadece SYN flagi basili paketler izin veriliyor, yani, kimde bize direk olarak FIN paketi yollayamaz, once SYN le established bi baglantisinin olmasi lazim.
| ||
| /etc/ipf.rules | ||
| Eveeet, simdi firewall kurallarimizi yazmaya baslayalim:
Simdi, iki cesit firewall dizayni var.
Efendim, bendeniz, `security through obscurity` taraftariyim, onun icin 2. secenegi uygulayacagiz ;)
loopback arayuzune gelis-gidis izni verelim. lo0 makinanin kendisi oldugu icin bu kural zorunlu!
Bazi sacma sapan paketlerin rahatimizi bozmamasi icin bunu ekliyoruz. bkz: http://www.enderunix.org/openbsd/faq/faq6.html
Nmap gibi programlarin `tcp-ip fingerprinting` yontemiyle agimizdaki makinalarin isletim sistemini tespit etme amaclarini bu kuralla onluyoruz.
ident portuna erisim oldugunda, portumuzun kapali oldugunu port unreachable icmp paketi ile iletiyoruz. Bu, sunun icin gerekli: mesela bir makinaya telnet baglantisi aciyorsunuz. Karsi makina, sizin 113 portunuza baglanmaya calisacak, orda calismasi *gereken* identd ile konusmak isteyecektir. Ama firewall'da biz default olarak butun paketleri drop ettigimiz icin, ve de, 113 icin gecis izni olmadigi nedeniyle, karsi makina belli bi sure 113'e baglanmaya calisacak bize de telnet baglantisini bir sure acmayacaktir. Bu nedenle, biz, bu makinalara portun unreachable oldugunu bildiriyoruz ki, o makina da time-out'a dusmeyi beklemeden, o portun kapali oldugunu ogrenip, denemekten vazgecerek, bize baglantiyi derhal aciyor.
Burda da yaptgimiz sey, het turlu non-routable private ip uzayindan, bizim networkumuze, bizim agimizdan da, disariya bu kabilden paketlerin cikmasini engelliyoruz. Bu, ip spoofing denen olayin bir nevi onune gecmek icin.
ICMP_ECHO_REPLY, 'a izin verelim ki, insanlar ping cekerek bizim up & alive oldugumuzu anlayabilsinler, icmp-type 11 ttl expired, 0, echo-reply, 3, destination-unreachable, icin oluyor arkadaslar. Bu hangisiydi hatirlamiyorum, galiba firewall rfc ile belirtilen standartlara uyum icin. yani belli internet servisleri calistiriyorsaniz, minumum echo_reply ve ttl expired'a izin vermek zorundasiniz. Ama arkada oyle, web/smtp/dns felam gibi servisiniz yoksa buna da izin vermeyin, tavsiye etmiyorum, cunku bu kadarcik icmp bile, cok *evil* seyler icin kullanilabiliyor ! Firewall arkasinda calisan sql serveriniza icmp ASLA izni vermeyin mesela, insanlarin orda bir sql server var uzakta deyip, onunla yerli yersiz ugrasmasini istemeyiz degil mi?
Burda da, mail sunucumuza, 25 ve 110 (smtp ve pop3) port erisimini , web sunucumuza da 80 ( www ) flags s ve keep-state sihirli sozcuklerini kullanarak izin veriyoruz.
Evet, bizim agimizdan disari butun cikisa izin! Evet, biliyorum guzel bi dizayn sayilmaz pek, ama simdilik bu kadar, ileri de vakit olursa bu detaylara da gireriz icabinda.
Diger butun tcp paketler icin, default olarak, tcp-reset paketi yolluyoruz. Udp paketler icin de, gercek destination adresi, pakete basarak (firewallin ip'sini degil) icmp port unreachable paketi yolluyoruz. icmp'leri de logluyoruz ;) Evet arkadaslar, simdi /etc/ipf.rules dosyamiz adam oldu sayilir. Simdi de, /etc/ipnat.rules dosyamiza bakalim. | ||
| /etc/ipnat.rules | ||
Firewall teknolojilerininen buyul kiyaklarindan biri de,
hic suphesiz, bir suru bilgisayarin, Internet servis saglayicilarin ruhu
bile duymadan tek bir dis arayuz araciligiyla internetle bulusabilmesidir.
Yani bir suru bilgisayarin tek bir ip/internet baglantisi ile internete
cikmasi. Linux dunyasi bunu, IP Masquerading olarak biliyor,
ama aslindan bunun ASIL ismi, Network Address Translation yani NAT.
ipfilter, bize ip'eri ip'lere `map` etmeyi olasi kiliyor. Aslinda,
ipfilter, NPAT yapiyor, yani Network Port & Address
Translation.Ipfilter sayesinde, kaynak ve hedef port ve adresi kolaylikla
degistirebiliyoruz.
Ne zaman ki fxp0 arayuzumuze 172.16.0.0 blogundan bir paket gelse, paket, kaynak adres ve portu belirttigimiz (193.140.192.219) adresininkiyle degistiriliyor, orijinal hedef port ve adres korunarak yollaniyor. Hatta, ipfilter, bu islemi yaparken, ayni zamanda bunu bir litede tutarki, gelen paketleri de karsilayabilsin, istenilen adrese geri yollasin. Fekaat, yukaridaki kuralin bir eksigi var. Ya biz internete acilan ehternet'imiziz Ip'sini bilmiyorsak, yani mesela baglantimiz dinamic point-to-point baglantisi ise? O zaman IP yerine 0/32 yazarsak, NAT, kurali uygularken, tun0 ya da herneyse o arayuzdeki IP'yi otomatik bulacak, ve 0/32 yerinde kullanacaktir!.
Simdi.... yukaridaki kuralimiz hala eksik sayilir. Yukarida kaynak porta herhangi bir manipulasyon yapilmiyor, bu da problemlere yol acabilir. Mesela, 172.16.3.3 makinasi da, 172.16.3.9 makinasi da, kaynal portu 1300 olan bir paket yolladi. E simdi, dis arayuzumuzden ayni IP'den iki ayni port disari cikacak? Luckily, durum boyle degil, ifilter `portmap` kelimesiyle portlari da kendisinin yonetmesine imkan sagilyor.
Evet, simdi soyle bir senaryo dusunelim: 193.140.192.40 Ip'sinde, 80. portta calisan bir IIS webserverimiz var. `.com` dunyasinda, makinamiz sIk sIk rahatsiz edilecektir... Biz bunu `prilileged port`lar olan 0-1024 arasinda bir portta degil de, port > 1024 calistirmak istiyoruz. Mesela 8000. portta. E ama, insanlar standart port olan 80'e baglanmak isteyeceklerdir. Insanlar bizim web serverimizin 8000. portta oldugunu hangi cehennemden ogrenecekler? Isin asli oyle degil, ipfilter, bize `redirection` sayesinde bunu gerceklestirebilm imkanini sagliyor:
Dis arayuzumuz olan fxp0'da 193.140.205.219/32 IP'sine 80. portuna gelen paketler, firewall'imizin arkasindaki 192.168.0.5 makinasinin 8000. portuna yonlendiriliyor. Temiz is, degil mi? ipnat, paketler uzerinden gecerken, paketlerin tekrar yazimina olanak sagladigi icin, `application proxy` prograrinin uygulanabilmesi icin cok guzel bir mekan oluyor. Bu da, ftp gibi bazi protokollerin NAT'inda, mudahil olmayi sagliyor. Bu, da cogu ftp server'in `active connection` tutmasindan dolayi, ortaya cikabilecek problemleri onluyor:
Fakat ftp ile ilgili yukaridaki kuralimizin butun diger NAT kurallarindan once yazilma zorunlulugu vardir. Secure LAN'imizi da internet'e cikaralim:
evet, simdi de,
ile ipnat kurallarimizi etkin hale getiriyoruz. | ||
| Yardimci programlar: ipmon, ipfstat | ||
| IPFSTAT:
Ipfstat'i en basit formunda calistirdiginizda, firewall'inizin neler yaptigini gormenizi saglayacak istatistiki bilgiler verecektir.
Eger, bu listeyi, her kuralimizin neler yaptigini `hit-count` lariyla detayli olarak gormek istersek -hio parametresini ekliyoruz:
Hatirlarsaniz /etc/ipf.rules 'lari yazarken magic state table' dan bahsetmistim ;) Iste state table'in su andaki durumunu gormek isterseniz:
IPMON: ipfstat, bize yukaridaki turden accounting bilgisi saglamasi acisindan gercekten cok guzel bir program, ama bazen bundan daha fazlasini isteyebiliyoruz. Yani, gelen giden paketlerin loglanmasini isteyebiliyoruz. Iste ipmon bunun icin yazilmis bi tool. Eger, state-table'imizi calisirken gormek istersek:
Hanimi$ NAT table? Iste burda :
| ||
| Simdi, hepsini bir araya koyalim: | ||
| ---------------------- /etc/ipf.rules buradan basliyor
---------------------------------- pass out quick on lo0 pass in quick on lo0 block in quick on fxp0 all with opt lsrr block in quick on fxp0 all with opt ssrr block in quick on fxp0 proto tcp from any to any flags FUP block return-icmp(port-unr) in quick on fxp0 from any to any port = 113 ## ## ## for web server ## for smtp servers ## pop3 for smtp servers ## ssh sadece apache.cslab.itu.edu.tr 'den ## imap for only our localnet ## mssql server port unu uzaktaki bir makina icin acmamizi
istemisler: ## disari cikisa kayitsiz sartsiz izin veriyoruz: ## diger butun tcp paketler icin by-default tcp reset paketi
yolluyoz. ## icmp'ler icin de port unreachable, hem de destination adresi source
adres yaparak: ## icmp'leri de bloke edip logluyoruz. ---------------------- /etc/ipnat.rules buradan basliyor
---------------------------------- ## wishmaster ipnat.rules ## map pathfinder to 212.174.107.33 ## map secure lan to 193.140.192.219 ## map local lan to 107.13 ## Squid Redirection ## for web server ## for smtp servers ## pop3 for smtp servers ## ssh sadece apache.cslab.itu.edu.tr 'den ## imap for only our localnet ## mssql server port unu uzaktaki bir makina icin acmamizi
istemisler: ---------------------- /etc/ipnat.rules burada bitiyor
----------------------------------
girmeniz yeterli olacaktir. | ||
| SSS (SIK Sorulan Sorular) | ||
|
||
| TODO: | ||
| ||
| Kaynaklar: | ||
| Official Ipf-Homepage: http://coombs.anu.edu.au/~avalon/ip-filter.html Ipf-Howto: Linux Firewall Howto OpenBSD Networking FAQ |
| Son Sozler: |
Lutfen soru sormadan once bu dokumani bir daha okuyun Eger sorunuza cevap bulamazsaniz false.net/ipfilter adresindeki mail arsivlerini okuyun. Eger hala aradiginizi bulamazsaniz !!! bana mail atin belki bir kac ay icinde cevap verebilirim.
murat@EnderUNIX.ORG Murat Balaban Copyright (c) 2001 Murat Balaban Kaynak gosterilmek sartiyla
kullanilabilir. EnderUNIX Software Development Team
Member
http://www.EnderUNIX.ORG/
http://www.enderunix.org/murat/