![]() |
![]() |
![]() | #1 | |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | OpenBSD Pf ve Squid ile Transparent Proxy Kurulumu !!Bu yazıda OpenBSD 3.7 işletim sistemi kullanılmıştır. Transparent (saydam) Proxy nedir? Transparent(seffaf, saydam) proxy kullanıcı tarafında herhangi ek ayar gerektirmeden kullanıcıdan gelen istekleri bir proxy aracılığı ile yönetmektir. Kısacası kullanıcıdan habersiz kullanıcı ile orjinal sunucu arasına girmektir. Resimleyecek olursak; Kullanıcı----->Seffaf_proxy----->orjinal_web_sunucu Burada kullanıcı “orjinal_web_sunucu” ile haberleştiğini düşünür ve istekleri orjinal sunucuya gönderir, araya yerleştirilen seffaf proxy kullanıcıdan gelen isteği yakalayarak kendisi bu isteği yerine getirir ve cevabını kullanıcıya sanki orjinal sunucudan geliyormuş gibi döndürür. Squid transparent modda nasıl çalışır? Squid'i seffaf proxy modunda kullanmak istedigimizde bir filtreleme aracı ile proxy makinesine gelen 80. port isteklerini squid'in çalıştığı porta yönlendirmek gerekir. Squid ile filtreleme aracı farklı makinelerde olabilir. Linux uzerinde netfilter/iptables, *BSD ler üzerinde PF(Packet Filter), IPF gibi araçlarla yapılabilir. Squid bu farklı filtreleme araçları için farklı derleme seçenekleri sunar. Mesela squid ile iptables kullanılacaksa --enable-netfilter, squid ile pf kullanılacaksa --enable-pf-transparent seçenekleri kullanılabilir. Bu derleme seçeneklerinin kullanılmaması squid'in şeffaf proxy özelliğini yerine getirmesini engellemez ama ilerde yaşanabilecek bazı problemler için baştan çözüm sunar. Evet derleme esnasındaki --enable-netfilter ya da enable--pf squid'e ne sağlar? Squid istemciden gelen istekteki orjinal sunucu Ip adresini Host başlığına bakarak alır, eğer host başlığı gönderilmemişse squid --enable-netfilter ile derlendiği için bu derlemede kendisine katılan Linux/UNIX spesifik ag ozellikleri ile orjinal sunucunun IP adresini öğrenebilir. Günümüze bakıldığında tüm http istemciler host başlığını göndermektedir. Yani bu derleme seçenekleri sadece işi sağlama alma amaçlıdır. Squid Kurulumu OpenBSD altında Squid iki farklı şekilde kurulabilir. Biri klasik kaynak koddan derleme şeklinde , diğeri ise OpenBSD port sistemi kullanarak. OpenBSD Port sistemi kurulacak paketlerin bağımlılık sorunlarını kolayca çözen ve sisteme kurulan paketlerin kontrolünün kolay takip edilmesini sağlayan bir yapı sunar. Klasik yöntemi tercih edenler [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adresinden son sürüm squid paketini indirerek kurabilir. Bu yazıda Squid OpenBSD port ağacından kurulacaktır. OpenBSD port sistemini kullanarak squid'i transparent proxy işlevi görecek şekilde kurmak için aşağıdaki komutlar verilir. #cd /usr/ports/ Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kurulum seçeneklerini sorgulamak için; #make show=FLAVORS transparent snmp Kurulum için; #env "FLAVOR=transparent" make install komutları verilir. NOT: /usr/ports/ Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. dizinideki Makefile dosyasi incelenerek Squid’in hangi secenekler ile kurulacagi belirlenebilir. CONFIGURE_ARGS+ ile baslayan satir Squid’in derleme seceneklerini belirtir. Kurulum Sonrası genel yapılandırma Kurulum sonrasında Squid aşağıdaki dosyaları oluşturur: Yapılandırma dosyaları /etc/squid Örnek yapılandırma dosyaları /usr/local/share/examples/squid Hata mesajları /usr/local/share/squid/errors Örnek hata mesajları /usr/local/share/examples/squid/errors Simgeler /usr/local/share/squid/icons Örnek simgeler /usr/local/share/examples/squid/icons Cache dizini /var/squid/cache Log dizini /var/squid/logs Squid kullanici ve grubu _squid:_squid Kurulum sonrasında Squid’in hangi seçeneklerle kurulduğunu görmek için –v parametresi kullanılır. #squid -v Squid Cache: Version 2.5.STABLE9 configure options: --datadir=/usr/local/share/squid '--enable-auth=basic digest' '--enable-basic-auth-helpers=NCSA YP' --enable-digest-auth-helpers=password 'enable-external-acl-helpers=ip_user unix_group' '--enable-removal-policies=lru heap' --enable-ssl '--enable-storeio=ufs diskd' localstatedir=/var/squid --enable-pf-transparent --prefix=/usr/local --sysconfdir=/etc Kurulum tamamlandıktan sonra /etc/squid/squid.conf dosyasında bazı değişiklikler yapılması gerekmekte. Squid.conf dosyası herhangi bir editör ile açılarak aşağıdaki satırlar eklenmeli/değiştirilmelidir. http_port 127.0.0.1:3128 acl our_networks src 10.0.0.0/8 #10.0.0.0/8benim local ağım, burayı kendinize göre düzenleyin httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on http_access allow our_networks Bundan sonra squid'in kullanacağı gerekli takas dizinlerinini oluşturmak için squid -z komutu çalıştırılmalıdır. #/usr/local/sbin/squid -z 2005/09/13 19:09:46| Creating Swap Directories Squid’in sistemin her açılışında çalışmasını sağlamak için /etc/rc.conf dosyasına squid=YES satırı eklenmeli . Ardından /etc/rc.local dosyasında echo "." Satırının ustune aşağıdaki satırlar eklenmeli. if [ -f /etc/squid/squid.conf ]; then if [ X"${squid}" = X"YES" -a -x /usr/local/sbin/squid ]; then echo -n ' squid'; /usr/local/sbin/squid fi fi Squid yapılandırma dosyasında yapılan değişikliklerin aktif olması için #squid –k reconfigure Komutu verilmelidir. Squid Loglama mekanizması Squid tum loglarını 3 farklı dosyada tutar. Bunlar cache.log, access.log, store.log. Useragent.log ve referrar.log dosyalarıda seçimliktir ve access.log benzeridir fakat daha detayli bilgi icerirler. Cache.log : Squid'in yapılandırma dosyasına ait hatalar, performans uyarıları gibi bilgiler içerir. Yapılandirma dosyasindaki cache_log anahtarı ile belirlenir. Access.log : Bu dosya squid üzerinden yapılan her isteğin loglandığı dosyadır. Yapılandırma dosyasındaki cache_access_log yönergesi tarafından belirlenir. Store.log : Cache'e eklenen nesneler için düşük seviye bilgi verir. Squid her erişilen siteyi detaylı bir şekilde loglamaktadır. Squid’in oluşturduğu erişim logları gün geçtikçe büyüyecektir bu da log dosyalarından rapor çıkarmayı zorlaştıracaktır. Squid'in logları günlük olarak döndürülürse (rotate) raporlama işi daha kolay ve düzenli yapılabilir. Logları günlük döndürmek için /etc/daily.conf dosyasına aşağıdaki satırlar eklenmelidir. if [ -x /usr/local/sbin/squid -a -f /var/squid/logs/squid.pid ]; then /usr/local/sbin/squid -k rotate fi Sorun giderme Squid beklediğiniz gibi çalışmıyorsa yapılandırma dosyasında hata yapmışsınızdır. Bu hatayı bulmanın en kolay yolu squid.conf'taki debug_options değerini artırmaktır. debug_options ALL,1 32,2 Hata bulmanın bir diğer yolu da squid'i çalıştırırken tam debug modda çalıştırmaktır. Bunun için Squid'e -X parametresi verilir ve hatanın sebebi araştırılır. #squid -X Firewall(PF) Ayarları OpenBSD Packet Filter kullanarak istemciden gelen istekleri Squid’e yonlendirmek için gerekli kurallar; NOT: OpenBSD Packet Filter hakkında detaylı bilgi için [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ve [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adreslerinden faydalanılabilir. -----Pf.conf----- ic_ag="xl0" #sizin ag arabiriminiz farkli olabilir dis_ag="rl0" rdr on $ic_ag inet proto tcp from 10.0.0.0/8 to any port Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. 127.0.0.1 port 3128 pass in on $ic_ag inet proto tcp from any to 127.0.0.1 port 3128 keep state pass out on $dis_ag inet proto tcp from any to any port Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. keep state -----Pf.conf----- gerekli kurallar eklendikten sonra #pfctl –f /etc/pf.conf komutu ile yeni kuralların aktif olması sağlanmalı. Bundan sonra yapılacak iş Squid'in packet filteri sorgulayabilmesi için /dev/pf dosyasına erişim sağlamasını ayarlamak . /dev/pf dosyasının öntanımlı sahibi root dur. Squid ise _squid/_squid kullanici adi/grubu şeklinde çalışır. /dev/pf dosyasının grubunu, Squid okuyacak şekilde yapılandırmak için aşağıdaki komutlar verilmelidir. #chgrp _squid /dev/pf #chmod g+rw /dev/pf | |
| ![]() |
![]() |
Etiketler |
ile, kurulumu, openbsd, pf, proxy, squid, transparent, ve |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
![]() | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Güncel Proxy Listeleri, Online Proxy Site, Proxy Server List, Free Proxy Forum | Sarya | Güncel Proxy | 1 | 01 Kasım 2022 13:13 |
OpenBSD 5.1 duyuruldu. | Ocean | GNU, Linux ve UNIX | 0 | 06 Mayıs 2012 16:41 |
OpenBSD 5.0 duyuruldu. | Ocean | GNU, Linux ve UNIX | 0 | 01 Kasım 2011 18:53 |
OpenBSD Packet Filter Kullanarak Yedekli Firewall Kurulumu | Ocean | Güvenlik ve Güvenlik Açıkları | 0 | 30 Mayıs 2011 19:59 |