Eğer bir vekil kullanmayacak olsak, güvenlik duvarımız kullanmaya hazır
idi. Fakat vekil sunucular, özellikle http için performans kazandırıcı
bir unsurdur.
Özellikle Web (Internet'te sörf) kullanımında, her bir sayfa, her bir
tarayıcı istemi için tekrar tekrar ana sunucudan getirilmektedir.
Ağ üzerinde yüz istemcinin Hürriyet gazetesini okumak istemesi, aynı
sayfanın tam 100 defa ağa getirilmesi demektir. Araya vekil konduğu
zaman ise, ilgili sayfa yalnızca bir defa getirilir ve daha sonra
isteyen bütün istemcilere vekilin kendi deposundan sunulur. Dolayısıyla
Internet trafiği azaltıldığı gibi, ilk istemden sonraki bütün istemcilere
yerel ağdan sunum yapıldığı için kullanıcılar sayfaya çok daha hızlı
(yerel ağ hızlarında) erişirler. Ülkemizde Internet bağlantılarının
pahalılığı ve yavaşlığı göze alınırsa, şirketlerin hiç bir izin
mekanizması uygulamak niyetleri olmasa dahi, salt performans arttırmak
için vekil uygulamaları tavsiye edilir.
Vekilde izin mekanizması uygulamak ve dolayısı ile çeşitli hizmetleri
herkese yasaklamak, çeşitli kullanıcılara bazı hizmetleri yasaklamak
gibi izinlendirme politikaları uygulamak mümkündür.
- Performans kazandırıcı [depolama (caching)]
- Şeffaf (transparent) -- kullanmak için kullanıcı tarafında
bir ayar gerektirmeyen
- Web sitesi bazında izin mekanizmalı
bir web vekil uygulaması konu alınmıştır.
Redhat 7.2 güncelleme paketi squid-2.4.STABLE1-6.i386.rpm
indirilmiş ve
# rpm -Uvh squid-2.4.STABLE1-6.i386.rpm
komutu ile kurulmuştur. Sistem açılışında squid
servisinin başlatılması için
# mv /etc/rc.d/rc3.d/K25squid /etc/rc.d/rc3.d/S25squid
komutu uygulanmıştır.
-
Squid'in Internet web deposu (cache) için 1 GB yer ayrılmıştır.
-
İzinlendirme squidGuard paketi ile yapılmaktadır.
-
Yasaklanan siteler: Kimi sitelere erişim engellenmektedir. Bu
siteler squidGuard'un yayınladığı Internet
karalistesi kullanılarak belirlenmektedir.
Ayar dosyası
/etc/squid/squid.conf dosyası bir hayli uzun
olduğundan yalnızca değiştirilen ayarlar buraya alınmıştır. Dosyanın
tamamını
proxy-fw-files.tar.bz2 paketinde bulabilirsiniz.
#VEKIL
#Öntanımlı portun yanısıra 8080 üzerinden de proxy servisi veriyoruz
http_port 3128 8080
#VEKIL
#Başka squid'lerle bilgi paylaşmıyoruz
icp_port 0
#VEKIL
#Yerel ağımızı burada tanımlıyoruz
acl intranet src 10.0.0.0/255.0.0.0
#VEKIL
#erişim engellemesi squidGuard tarafından yapılacağı için
#burada yer almıyor
http_access allow intranet
#VEKIL
#Eger proxy yolu ile ftp yaparsak, anonymous isteklerde bu adresi
#verecek
ftp_user [email protected]
#VEKIL
#1 Gig'lik (1000) büyüklüğünde bir cache dizini kullanıyoruz.
#Ayrıca diske bloksuz yazma yöntemini kullanıyoruz
cache_dir aufs /var/spool/squid 1000 16 256
#VEKIL
#squidGuard kullanıyoruz
redirect_program /usr/local/squidGuard/bin/squidGuard
#VEKIL
#20 adet squidGuard başlatıyoruz. Çok fazla sayıda olursa kaynak israfı
#çok az sayıda olursa beklemeye yol açabilir.
redirect_children 20
#VEKIL
#ICP sorgularına izin vermiyoruz
icp_access deny all
#VEKIL
#Hata iletilerimizi Türkçe verelim
error_directory /usr/lib/squid/errors/Turkish
#VEKIL
#Squid'i şeffaf (yani kullanıcıların herhangi bir ayar yapmasına gerek
#kalmaksızın şeffaf olarak kullanmak için bu ayarlara ihtiyacımız var.
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
httpd_accel_single_host off
Squid Kurulumunda ikinci adım: SquidGuard
- Neden SquidGuard?
SquidGuard,
squid ile
birlikte çalışan ve erişim izinlerini belirleyen bir yazılımdır.
squid'in kendisi de erişim izinlerini
belirleyebildiğine göre
SquidGuard'a
ihtiyaç olmadığı düşünülebilir. Fakat,
SquidGuard kullanımının bazı avantajları
vardır:
Erişim izinlerini
squid.conf'un
içine yazmak yerine, diskte ayrı dosyalar halinde
tutabilirsiniz. Dolayısıyla bir ek izin/kısıtlama
ilave ederken yanlışlıkla
squid
ayarlarını bozma ihtimaliniz ortadan kalkar.
SquidGuard, Internet'te bir arama
yazılımı yardımı ile çeşitli kriterlerde karalisteler
hazırlamakta ve bunları düzenli olarak güncellemektedir.
SquidGuard kullanmazsanız, buna
alternatifiniz trafiğinizi kontrol etmek ve
kullanıcıların gittiği siteleri gözden geçirip kendi
karalistenizi oluşturmaktır. Bunun yerine
SquidGuard'un karalistesini
kullanabilirsiniz.
- SquidGuard Kurulumu
SquidGuard web
sitesinden
squidguard-1.2.0.tar.gz ve
blacklists.tar.gz paketleri indirildi ve
/usr/local/src dizinine kaydedildi.
# tar -xzvf squidguard-1.2.0.tar.gz
#
komutu ile paket açıldı.
# cd /usr/local/src/squidGuard-1.2.0
#
Paketin ayarları için configure.squidGuard
betiği:
./configure --prefix=/usr/local/squidGuard \
--with-db-lib=/usr/lib \
--with-db-inc=/usr/include/db2 \
--with-sg-config=/usr/local/squidGuard/configs/filter.conf \
--with-sg-logdir=/usr/local/squidGuard/logs \
--with-sg-dbhome=/usr/local/squidGuard/db
aynı dizine kaydedildi:
# cp configure.squidGuard /usr/local/src/squidGuard-1.2.0
# cd /usr/local/src/squidGuard-1.2.0
# chmod 755 configure.squidGuard
# ./configure.squidGuard
# make
# make install
#
komutları ile paket sisteme kuruldu.
- Karalistenin Oluşturulması
İndirilmiş olan
blacklists.tar.gz paketi
/usr/local/squidGuard/db/blacklists altına
açıldı.
/usr/local/squidGuard/configs/filter.conf
dosyasında erişim izinleri belirlendi. Esas olarak kara listedeki
tüm adresler engellendi. Karaliste
SquidGuard
tarafından haftada 3 kez güncelleniyor. Biz de, zaman zaman bu
güncellemeyi yapacağız.
- Hata İletisi
SquidGuard'ın bir kötü tarafı kendi içerisinde
bir hata iletisi oluşturmayıp, bir web sunucusuna gereksinim
duyması. Sırf bu sebeple güvenlik duvarı üzerinde bir
apache web sunucusu kurmak zorunda kaldık.
Aslında bunun için içeride herhangi bir web sunucusu da
kullanılabilir, fakat mümkün olduğunca güvenlik duvarını kendi
başına çalışabilecek halde kurmak istedik.
SquidGuard paketinin içinden çıkan
squidGuard.cgi betiğine Türkçe dilini ilave ettik
ve dışarıdan bir siteye verdiği gif bağını kaldırıp yerel bir bağ haline
getirdik. Betik öntanımlı olarak tarayıcıdaki dil seçeneğine göre dil
seçimini yapmakta idi, fakat biz salt Türkçe olmasını istedik.
Değiştirilmiş
squidGuard.cgi
buradan temin edilebilir. Bu betiği
cgi-bin
dizinine kaydettik:
# cp squidGuard.cgi /var/www/cgi-bin
#
Erişim izinlerinin doğru olduğundan emin olduk:
# cd /var/www/cgi-bin
# chown nobody.nobody squidGuard.cgi
# chmod 755 squidGuard.cgi
#
Yasak işareti veren
forbidden.gif dosyasını
ilgili dizine kaydettik:
# cp forbidden.gif /var/www/html
#
En sonunda web sunucusunun sistem açıldığı zaman açılmasını sağladık:
# mv /etc/rc.d/rc3.d/*httpd /etc/rc.d/rc3.d/S15httpd
#