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.)
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
sudo pisi it squid
yazıyoruz. Ardından, squid.conf dosyasında yapılması gereken düzenlemeler için,
kdesu kwrite /etc/squid/squid.conf
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.
acl allowed_hosts src 192.168.2.0/24
acl localnet src 192.168.2.0/24
aşağıdaki kod, Proxy’nin kullanacağı Ram Miktarını belirliyor.
cache_mem 200 MB
aşağıdaki kod ile depolanacak önbellek klasörünün dosya boyutu sınırını belirliyoruz.
standart kod 100mb olarak belirlenmiş,
cache_dir ufs /var/cache/squid 100 16 256
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.
cache_dir ufs /var/cache/squid 20000 16 256
Ş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.
sudo service squid stop
sudo service squid start
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.
sudo service squid status
son olarak
sudo service squid on
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
(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.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
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ı
# Transparent Squid proxy configuration for Pardus Linux
http_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/squidacl 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 CONNECTacl 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 CONNECThttp_access allow allowed_hosts
http_access allow manager localhost
http_access deny managerhttp_access allow purge localhost
http_access deny purgehttp_access deny !Safe_ports
http_access deny CONNECT !SSL_portshttp_access allow localhost
http_access allow allowed_hosts
http_access deny allicp_access allow allowed_hosts
icp_access deny allmiss_access allow allowed_hosts
miss_access deny allhierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERYacl apache rep_header Server ^Apache
error_directory /etc/squid/errors