Pardus Kurumsal 2 - Squid Kurulumu (Web Proxy)(Vekil Sunucu)

Sunucu Sistemleri, Linux, Pardus — 23 Kasım 2011 — Murat SELÇUK
<img class="alignleft size-full wp-image-369" title="pardus_kurumsal2" src="http://www.muratselcuk.com/wp-content/uploads/2011/11/pardus_kurumsal2.jpg" alt="" width="180" height="135" />Pardus deposundan paket yöneticisi ile Squid kurulumu yaptığımızda temel ayarları yapılmış olarak kuruluyor. Bu kurulumun ardından 3-4 temel ayar ile Proxy Sunucumuz hazır hale gelecek. Ben tek bir ethernet kartı ile Proxy Sunucu kullanılması için gereken ayarları anlatacağım. Proxy Sunucu için sabit ip adresi tanımlıyorum. 192.168.2.200 (Adsl Modem ip si 192.168.2.1 dolayısıyla Proxy Sunucu varsayılan ağ geçidini 192.168.2.1 olarak ayarladım.)<!--more-->
Kurulum anlatımlarını terminal penceresi üzerinden anlatacağım, konsol kullanımı başlangıçta zor gibi gözükse de aslında daha kolay kullanım ve adımları takip edebilme olanağı sağlıyor. Aklıma gelmişken konsol kullanırken TAB tuşu ile klasör, dosya ve komutlarda otomatik tamamlama özelliği büyük kolaylık sağlıyor.
Sabit ip ayarından sonra programın kurulumuna geçiyoruz. Squid programını Paket Yönetici (PİSİ) yardımıyla da kurabilirsiniz. Kurulum için Terminal Penceresinde
<blockquote>sudo pisi it squid</blockquote> yazıyoruz. Ardından, squid.conf dosyasında yapılması gereken düzenlemeler için, <blockquote>kdesu kwrite /etc/squid/squid.conf</blockquote> yazıyoruz ve aşağıdaki düzenlemeleri yapıyoruz. dediğim gibi paketi hazırlayan arkadaşlar temel ayarlar ile hazırladıkları için, sadece 1-2 değişiklik yeterli oluyor.aşağıdaki satırlarda ip adreslerini kendi ip adreslerime göre yapıyorum.
<blockquote>acl allowed_hosts src 192.168.2.0/24 acl localnet src 192.168.2.0/24</blockquote> aşağıdaki kod, Proxy'nin kullanacağı Ram Miktarını belirliyor. <blockquote>cache_mem 200 MB</blockquote> aşağıdaki kod ile depolanacak önbellek klasörünün dosya boyutu sınırını belirliyoruz. standart kod 100mb olarak belirlenmiş, <blockquote>cache_dir ufs /var/cache/squid 100 16 256</blockquote> ben okulda kullanacağım ve eğitim sitelerindeki animasyon dosyalarının önbelleklenmesini istediğim için ve aynı zamanda yer problemi olmadığı için dosya boyutunu 20gb olarak belirliyorum. <blockquote>cache_dir ufs /var/cache/squid 20000 16 256</blockquote> Şimdilik temel Proxy işlevi için yapacağımız ayarlar bu kadar. squid.conf dosyası bir derya deniz, performans için bir dolu ayar gerekiyor benim yaptığım ayarlar ile ne kadar performanslı olacak bilmiyorum. Bu konu, üzerine araştırma gerektiren başka bir yazı konusu olabilir.Dosyayı kaydedip kapattıktan sonra çok sevdiğimiz konsola geri dönüyoruz.
Aşağıdaki komutlar ile Squid servisini durdurup yeniden başlatıyoruz.
<blockquote>sudo service squid stop sudo service squid start</blockquote> aslında restart komutu da var fakat bende sağlıklı çalışmadı nedeni nedir bilmiyorum, servis durduktan sonra çalışmıyor. Bu ayarları dilerseniz sistem menüsü altından Servis Yöneticisi ile de yapabilirsiniz. Aşağıdaki komut ile servisin durumu hakkında bilgi alabiliyoruz. <blockquote>sudo service squid status</blockquote> son olarak <blockquote>sudo service squid on</blockquote> komutu ile servisin sistem her açıldığında otomatik olarak çalışmasını sağlıyoruz.Evet artık vekil Sunucu çalışmaya başladı Tarayıcınızın ağ ayarlarından vekil sunucu bölümünden sunucu ip adresini ve portunu girebilirsiniz. Bizim örneğimizde Sunucu ip no: 192.168.2.200 ve port 3128 <img class="aligncenter size-medium wp-image-371" title="proxysunucu" src="http://www.muratselcuk.com/wp-content/uploads/2011/11/proxysunucu-300x151.png" alt="" width="300" height="151" />
(Transparent Proxy) Eğer vekil sunucu herhangi bir ayar yapmadan sadece varsayılan ağ geçidi ayarlarını sunucu adresi olarak tanımladıktan sonra otomatik olarak çalışsın isteniyorsa port yönlendirmesi yapılması gerekir. Bunun için aşağıdaki komutu uygulayarak 3128 nolu portu 80. porta yönlendiriyoruz.
<blockquote><code>sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128</code></blockquote> düzeltme: dikkat edin kopyala yapıştır sırasında --to-port ve --dport parametrelerinden önce iki tire "--" var. "sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128" Sonrasında "sudo iptables-save" komutunu uygulamak gerekiyor. Kullandığım squid.conf dosyasının tamamı <blockquote># Transparent Squid proxy configuration for Pardus Linuxhttp_port 3128 transparent
visible_hostname localhost
pid_filename /var/run/squid.pid
icp_port 0
cache_mem 200 MB
cache_dir ufs /var/cache/squid 20000 16 256 access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log coredump_dir /var/cache/squid
acl allowed_hosts src 192.168.2.0/24 acl localhost src 127.0.0.1 acl localnet src 192.168.2.0/24 acl SSL_ports port 443 acl purge method PURGE acl CONNECT method CONNECT
acl manager proto cache_object acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 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 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT
http_access allow allowed_hosts http_access allow manager localhost http_access deny manager
http_access allow purge localhost http_access deny purge
http_access deny !Safe_ports http_access deny CONNECT !SSL_ports
http_access allow localhost http_access allow allowed_hosts http_access deny all
icp_access allow allowed_hosts icp_access deny all
miss_access allow allowed_hosts miss_access deny all
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ? cache deny QUERY
acl apache rep_header Server ^Apache
error_directory /etc/squid/errors</blockquote>