Debian üzerine Squid Proxy kurulumu
Adim 1 (Squid Kurulur)#apt-get install squid
Gelen uyariya evet yada enter ile onay verilir ve squid 'in guncel versiyonu indirilir ve kurulur.
Adim 2 (Temel Yapilandirma)Squid kurulum islemi basariyla tamamlandi ise bu adim ile devam edebiliriz.
sysctl.conf dosyasinda ip forward 'i enable etmemiz icin net/ipv4/ip_forward=1 satirinin olmasi gerekiyor. Verilen komut ile bu islemi dosyayi acmadan zahmetsiz bir sekilde ekleyebilirsiniz.
#cat >> etc/sysctl.conf
net/ipv4/ip_forward=1
CTRL + C ile kaydediyoruz.
Artik ip forward 'i aktif etmis durumdayiz.
#etc/init.d/networking restart
komutlari ile ag konfigurasyonlarini yeniden baslatarak ayarlarin etkin olmasini saglayabiliriz.
#cat proc/sys/net/ipv4/ip_forward
komutu ile ip_forward dosyasina bakarak 1 sonucu gormemiz gerekiyor. Sayet 0 goruyorsak Adim 2 konfigurasyonlarini tekrar gozden gecirmeniz lazim.
Adim 3 (Temel Yapilandirma)Bu adimda iptables ile istemcilerden 80. porta gelen isteklerini 3128. porta yonlendirmemiz gerekiyor. 3128 portu squid 'in calistigi standart porttur. İstege gore degistirilebilir.
Burada benim Squid kurdugum bilgisayarin IP adresi 192.168.1.37 ağ gecidim ise 192.168.1.1 o yuzden konsolda asagidaki komutu verecegim.
#iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to 192.168.1.37:3128
Adim 4 (Squid Yapilandirma)Squid ile ilgili ayarlari yapacagimiz dosya squid.conf 'dur.
Oncelikle;
http_accel_host virtual ile baslayan kisimlari squid.conf icerisine eklememiz gerekiyor. Asagidaki komut ile direkt ekleyebilirsiniz.
Konsoldan
#cat >> etc/squid/squid.conf
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_ proxy on
httpd_accel_uses_host_header on
satirlarini yazdiktan sonra
CTRL + C tusu ile kaydediyoruz.
Adim 5 (Squid Yapilandirma)#nano etc/squid/squid.conf
komutu ile squid.conf dosyasini nano editoru ile aciyoruz.
Buradaki islemler Squid Yapilandirmayla ilgili islemlerdir.
Squid.conf dosyasinda bir cok ilgili ayarlar tanimlidir. Biz bu makalede hepsine deginmeyecegiz.
Ornegin
#http_port 3128 bu alanda standart portta hizmet verdigini gosteriyor. Bunu kendinize gore uyarlayabilirsiniz. Ancak dikkat etmeniz onemli hususlardan birisi hizmette olan bir port numarasi vermeyiniz.
Aksi takdirde o port numarasindaki hizmet ile squid arasinda cakisma durumu olabilir.
Nano editoru ile squid.conf dosyasi icerisindeyken
CTRL + W tuslari yaridimi ile arama yontemini kullanarak;
arama cubuguna
acl manager proto cache_object yazalim. Squid.conf dosyasi oldukca buyuktur.
Asagidaki satirlari bulmaniz oldukca uzun surer diye ben anahtar bir tanim belirtmek istedim.
acl izinsiz1 url_regex deneme
acl ic_ag src 192.168.1.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
Yukaridaki alanda tanimlanmak istenen port ve aglarin tanimlamalasi yapilmistir. Ancak altini cizmek isterim sadece tanimlamalar yapilmistir. Gerekli izin ayarlari Adim 6 da yapilacaktir.
Ben kendi ag ayarim olarak ic_ag isminde bir tanimlamada bulundum. Bunu yapmamin amaci sadece benim agimin proxy i kullanmasina izin verecegim.
Yukaridaki ic_ag tanimindaki ip araliklari benim ip blogumdur. Sizde kendi ip blogunuzu giriniz.
Yine farkindaysaniz izinsiz1 isminde bir tanimlamada bulundum ve deger olarak "deneme" yazdim. Adim 6 ' da tanimlamis oldugum izinsiz1 taniminin erisimini belirtecegim.
Adim 6Nano editoru ile squid.conf icerisindeyken
CTRL + W tuslarina basarak arama cubuguna
And finally deny all other access to this proxy anahtar deyimini girelim ve entera basalim Arama tamamlandiginda asagidaki ilgili satir cikacaktir.
# And finally deny all other access to this proxy
http_access deny izinsiz1
http_access allow localhost
http_access allow ic_ag
http_access deny all
Yukaridaki ilgili satiri squid.conf icerisinde bularak yazmis oldugumuz tanimlarin erisim izinlerini belirttik.
Burada http_access deyimi ile basladik ve deny ifadesi ile izinsiz1 taniminin erisimini engelledik. ve Proxy 'imizi sadece
yerel agimiz kullansin ve baskalari kullanamasin diye sadece ic_ag tanimina allow ile izin verdik. http_access deny all deyimi ile
geriye kalan tum aglarin erisimini kapattik. Boylece Proxy imizi sadece bizim agimiz (ic_ag) ve localhostumuz kullanabilecek.
Squid Proxy cok genis bir yapiya sahip. Bu alanda internet erisim ile ilgili yapamayacagimiz sey yok.
Ornegin;
Uzanti, domain adresi, kelime gibi bir cok faktorleri kisitlayabildigimiz gibi bu ayarlari bazi bilgisayarlarin kullanimina acarken bazi bilgisayarlarin kullanimina kapatabilmekteyiz.
Mesela squid ile exe uzantisini kisitlamak istiyoruz;
acl izinsiz_uzanti1 urlpath_regex \.[eE][xX][eE] tanimini Adim 5 ' teki tanim alanina belirttikten sonra
http_access deny izinsiz_uzanti1
ile erisimini kapattik.
Burada [eE][xX][eE] deyimi hem EXE yani buyuk harf ile baslayan uzanti ismi ve exe yani kucuk harfle baslayan uzanti ismini erisim kontrolunu saglasin diye belirttik
Siz isterseniz sadece acl_izinsiz1 urlpath_regex \.exe olarak belirtebilirsiniz.
Ancak bu sekilde belirtirseniz, buyuk harfle baslayan uzanti isimlerini squid engellemeyecektir.
Tanimlarin erisim ayarlarini http_access deny all ifadesinin en ustune yazmaniz gerekiyor. Yoksa squid tanimlarin erisimlerini atlar.
Bazi tanimlama turleri;
acl izinsiz_domain1 dstdomain domainadi.com.tr
acl Safe_ports port 8443
acl izinsiz_uzanti1 urlpath_regex \.jpg
Tanimlarin erisim ayarlarinin belirtilmesi;
http_access deny izinsiz_domain1 (Tanimlanan domain adini kisitlar)
http_access deny !Safe_ports (Tanimlanan portlar disindaki tum portlari kisitlar. Burada ! isareti belirtilen portlarin aksi oldugunu belirtmektedir.)
http_access deny izinsiz_uzanti1 (Tanimlanan uzantiyi kisitlar. Burada jpg uzantisini kisitladik web sitelerinde .jpg uzantisina sahip tum resimleri gostermeyecek.)
Squid Yapilandirmasini yaptik ve ayarlari uygulamak kaldi.
#squid -k reconfigure
komutu ile squid durmaksizin yapmis oldugumuz degisiklikleri aninda uygulamaktadir.
Yine squid bir hizmet oldugu icin etc/init.d/squid altindan kontrol edilebilir.
Squid ' i calistirmak icin
#squid -z
komutunu vermek yeterlidir.
Hepsi bu kadar artik Squid Proxy sorunsuz bir sekilde calisiyor.
Kurmus oldugumuz Squid Transparent (Zorunlu) bir proxy i degildir. Zorunlu proxy yapabilmek icin ayni bilgisayari ag gecidi olarak kullanmamiz gerekir. Yada Active Directory gibi Istemci ve kullanici kontrollu yazilimlarla proxy zorunlu kilinabilir.
Bu yuzden İstemcilerden ayarlari manuel olarak yapmamiz gerekiyor.
Internet Explorer icin Ayarlar;1-
Internet Explorer ikonuna sag tiklanir.
Özellikler denir yada Internet Explorer ikonuna cift tiklanir.
Araçlar menusu altindan
Internet Secenekleri menusune girilir.
2- Acilan pencerede yukarida bulunan sekmelerden
Baglantilar 'a tiklanir.
3- Acilan pencerede
Yerel Ag Ayarlari basligi altinda bulunan
Yerel Ag Ayarlari butonuna tiklanir.
4- Acilan pencerede
Proxy Sunucusu basligi altindaki ilk ilk onay kutusu isaretlenir.
5- Aktif olan kutularda
Adres yazan kisima Proxy Sunucunuzun ip adresi yazilir. Burada ben 192.168.1.37 yazmam gerekiyor.
6-
B.noktasi yani Baglanti Noktasi kismina ise Proxy Sunucumuzun hizmet verdigi port numarasini yazmaliyiz. Yine burada ben 3128 yazmam gerekiyor.
7-
Tamam diyerek ayarlari Uyguluyoruz.
Mozilla Firefox icin Ayarlar;1-
Mozilla Firefox ikonuna cift tiklanir.
Araçlar menusu altindan
Seçenekler menusune girilir.
2- Acilan pencerede yukarida bulunan sekmelerden
Gelişmiş 'e girilir.
3- Acilan pencerede Sekmelerin altindaki alt menulerde bulunan
Ag menusune girilir.
4- Baglanti basliginin altinda
Ayarlar butonuna tiklanir.
5-
"Vekil Sunucuları Düzenleyin" basligi altinda
Vekil Sunucu ayarlari bolumu aktif hale getirilir.
6-
HTTP Vekil Sunucusu yazan bolume proxy ip adresini yaziyoruz.
7-
Port yazan kisima Proxy Sunucumuzun hizmet verdigi port numarasini yaziyoruz.
8-
Tamam diyerek ayarlari uyguluyoruz.