IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 19 Şubat 2006, 13:46   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
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

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
ile, kurulumu, openbsd, pf, proxy, squid, transparent, ve


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
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
Squid 3.1 Ocean GNU, Linux ve UNIX 0 05 Eylül 2010 15:04