Bridge FreeBSD PF ve Transparent Squid FreeBSD işletim sistemini bridge modda yapılandırıp üzerinde PF ile transparent squid kullanımı anlatılmıştır. Nasıl Çalışır FreeBSD PF fiziksel olarak gateway ile istemciler arasına yerleştirilir, mevcut network yapısı ve istemcilerin ağ ayarları değiştirilmeden layer 2 seviyesinde filtreleme yapılır. İstemciler bilinmeyenlerin çıkış noktası olarak yine gateway'lerini grürler ve internete çıkmak için tüm paketleri gateway'lerine iletirler fakat gateway'lerine paketler ulaşmadan bridge modda çalışan PF ve Squid bunları işlenen kural listesine gre süzüp ardından trafiği olduğu gibi gateway'e iletir. Bridge modda FreeBSD tıpkı bir switch gibi çalışır... Bylelikle grünmez modda PF ve Squid çalıştırmış oluyoruz. İstenilen Network Yapısı FreeBSD bridge yapılandırması Ağ kartlarının "fxp0" ve "fxp1" olduğu düşünülmüştür. # ifconfig bridge createbridge0# ifconfig bridge0bridge0: flags=8802<BROADCAST, SIMPLEX, MULTICAST> metric 0 mtu 1500ether 96:3d:4b:f1:79:7aid 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0 <>#> ifconfig bridge0 addm fxp0 addm fxp1 up<> #> ifconfig fxp0 up<> #> ifconfig fxp1 up Ayarların açılışta geçerli olması için /etc/rc. conf dosyasına aşağıdaki satırlar eklenir; cloned_interfaces="bridge0" ifconfig_bridge0="addm fxp0 addm fxp1 up" ifconfig_fxp0="up" ifconfig_fxp1="up" Bridge interface için ip ataması yapılmak isteniliyorsa;ifconfig bridge0 inet 192.168.0.1/24 PF ile istemcilerden gelen ve hedef port 80 olan isteklerin squid'e ynlendirilmesi PF aktif edilmesi ; kldload pf. ko /etc/rc. conf; pf_enable="YES" pf_rules="/etc/pf. conf" pf_flags="" pflog_enable="YES" pflog_logfile="/var/log/pflog" pflog_flags="" <> Servisin başlatılması #>/etc/rc. d/pf start Kural dosyası# touch /etc/pf. confİstemcilerden gelen herhangi bir hedefin 80. Portuna giden istekler squid e ynlendirilirpf. conf ;int_if="vr0ext_if="fxp0rdr on $int_if inet proto tcp from $lan to any port -> 127.0.0.1 port 3128pass in quick on $int_if route-to lo0 inet proto tcp from $lan to 127.0.0.1 port 3128 keep state Not: $lan = yerel network aralığınız. rnek : 192.168.5.0/24Squid Kurulumu;-Port ağacından kurulumu ;# cd /usr/ports/www/squid && make install clean Not: squid port ağacından kurarken PF desteğini aktif etmenizde fayda var. - Depodan kurulumu# pkg_add rv ftp://ftp. freebsd. org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/squid. tbz Transparent olarak çalışması için squid. conf dosyasına eklenecek satır ;http_port 127.0.0.1:3128 transparent Eğer herşey yolunda gittiyse squid. conf dosyasına aşağıdaki gibi bir kural tanımlayıp test edebilirsiniz ; acl yasakli dstdomain. yahoo.comhttp_access deny yasakli Daha fazla bilgi;Bridge: http://www.freebsd.org/doc/handbook/network-bridging.htmlPf ve Squid : http://www.benzedrine.cx/transquid.html Alıntı Emekli