taraf�ndan D.S. Oberoi <ds_oberoi(at)yahoo.com>
Yazar hakk�nda:
D.S. Oberoi Hindistan'�n Jammu kentinde ya�amakta ve s�rmekte olan
politik tart��malardan dolay� �nternet'e ba�lanma sorunlar� ya�amaktad�r.
T�rk�e'ye �eviri:
Erdal MUTLU <erdal(at)linuxfocus.org>
��erik:
|
Squid-Proxy Sunucusunun yap�l�nd�r�lmas�
�zet:
Linux, A� (Networking) ile �zde� anlaml� bir s�zc�k haline geldi.
Hem evde ve hem de i�yerlerinde, dosya, yaz�c�, e-ileti, uygulama ve
gittik�e daha �ok Proxy (vekil, sizin yerinize istekleri yerine
getiren) sunucusu olarak kullan�lmaya ba�land�.
Bir proxy sunucusu, tek bir hatt� payla�arak, bir�ok ki�iye
�nternet ba�lant�s� sa�lamaktad�r. �yi bir proxy ayn� zamanda
isteklerin bir kopyas�n� da saklamaktad�r, ki ba�ka birisi bu bilgilere
ula�mak istedi�inde, yava� olan �nternet'en getirmek yerine yerel
kopyay� sunsun. B�ylece, bilgilere olan eri�im zaman� k�salmakta ve
hat kullan�m� azalmaktad�r. Squid, HTTP, FTP, gopher vs.
vekilliklerini, yukar�daki anlamda yapabilen bir yaz�l�md�r. Ayr�ca, SSL,
eri�im denetimi ve DNS kay�tlar�n�n saklanmas�n� (cache) da desteklemektedir.
Bir de yap�lan t�m isteklerin tam �etelesini (log) tutmaktad�r.
Squid'in Windows-NT s�r�m� de vard�r
Logi Sense.
Bu yaz�n�n amac�, vekil (proxy) sunucusunun y�klenmesi ve
yap�land�r�lmas� hakk�nda temel bilgiler vermektir. Bunu
yaparken kullan�c� eri�imlerinin nas�l denetlenebilece�i de g�sterilecektir.
|
Squid sisteminizde y�kl� m�d�r?
RedHat 7.1 ile birlikte "Network OS" y�kleme se�ene�i
se�ilmi� ise, otomatik olarak y�klenmektedir. Program�n y�kl� olup
olmad���n� a�a��daki rpm komutunu �al��t�rarak ��renebilirsiniz:
rpm -q squid
Squid'in son s�r�m�n�
Squid ev sayfas�'ndan veya
yans� y�relerinden
elde edebilirsiniz. Squid'i y�klemek i�in a�a��daki rpm komtu
kullanabilirsiniz:
rpm -ivh squid-2.3.STABLE4-10.i386.rpm
Squid'in yap�land�r�lmas�
Squid'in �al��mas�, genellikle /etc/squid dizininde bulunan squid.conf
yap�land�rma dosyas� taraf�ndan sa�lanmaktad�r.
squid.conf dosyay� �ok uzundur, sayfalarca devam etmektedir. Ancak,
iyi taraf�, t�m se�enekleri a��klamalar� ile birlikte listelenmi�
olmas�d�r.
�lk de�i�tirilmesi gereken �ey, Squid'in istemcilerden gelen
ba�lant�lar� bekleyece�i adresi belirten http_port (http ba�lant� noktas�)
se�ene�idir. Benimsenmi� de�er olarak http_port 3128 dir. Ancak, kullan�c�
kendi iste�i do�rultusunda bu de�eri de�i�tirebilir. Ba�lant� noktas�n�n
yan�s�ra, Squid'in �al��t��� bilgisayar�n IP adresi de verilebilir :
http_port 192.168.0.1:8080
Yukar�daki tan�mlamayla Squid, IP adresi 192.168.0.1 olan
bilgisayar�n 8080 ba�lant� noktas�nda �al��acakt�r. Herhangi bir
ba�lant� noktas� verilebilir, ancak ba�ka programlar ile �ak��mamas�na
dikkat etmeniz gerekmektedir. Benzer �ekilde di�er servislerin de�erleri
ayarlanabilmektedir.
Eri�im denetimi
Eri�im denetimi �zellikleri arac�l��� ile, �nternet'e olan eri�imler,
eri�im zaman�na, eri�ilecek y�relere vs. g�re ayarlanabilmektedir.
Squid'in eri�im denetimi olarak iki mekanizmas� vard�r: ACL elemanlar� ve eri�im
listesi. Eri�im listesi, belli bir servise ya izin vermekte yada onu engellemektedir.
Birka� adet �nemli ACL eleman� a�a��da listelenmi�tir:
- src : Kaynak, istemcinin IP adresi.
- dst : Hedef, sunucunun IP adresi.
- srcdomain : Kaynak, istemcinin alan (domain) ad�.
- dstdomain : Hedef, sunucunun alan ad�
- time : G�n�n saati ve haftan�n g�n� olarak.
- url_regex : URL d�zenli ifadelerde desen denk getirilmesi
- urlpath_regex: protokol ve bilgisayar ad�n� d��ar�da b�rakarak
URL-yoltan�m� d�zenli ifadelerinde desen denk getirilmesi.
- proxy_auth : D�� s�re�ler (processes) taraf�ndan kimlik tan�mlama.
- maxconn : Tek bir IP'den gelecek ba�lant� say�s�n� k�s�tlamak.
Denetimleri ge�erli veya aktif hale getirebilmek i�in �ncelikle,
ACL elemanlar�n� tan�mlaman�z gerekmektedir. Daha sonra kurallar� bunlar
yard�m�yla koyabilirsiniz. ACL ifadelerinin bi�imi a�a��daki gibidir:
acl acl_eleman_ad� acl_eleman_tipi acl_de�eri
Not :
- acl_eleman_ad� kullan�c� taraf�ndan tan�mlanm�� herhangi bir ad
olabilir.
- Herhangi iki ACL eleman� ayn� isme sahip olamaz.
- Her ACL bir de�erler listesine sahiptir. Denk getirmek i�in
denetleme yap�l�rken, �oklu de�erler i�in VEYA mant��� kullan�lmaktad�r.
Ba�ka bir deyi�le, ACL de�erlerinden herhangi birisi denk d��erse, sonu�
olumlu ��kmaktad�r.
- ACL elemanlar�nda hepsi eri�im listeleri ile birlikte
kullan�lamamaktad�r.
- Farkl� sat�rlarda tan�mlanan farkl� ACL elemanlar�n� Squid
tek bir liste haline getirmektedir.
Bir�ok eri�im denetim listesi vard�r.
Bizim kullanaca��m�z eri�im listeleri a�a��da verilmi�tir:
- http_access: HTTP istemcilerinin HTTP ba�lant� noktas�na
eri�imlerini sa�lamaya yaramaktad�r. Bu ana eri�im denetim listesidir.
- no_cache: Gelen isteklerin kopyas�n�n al�m� ile ilgili
tan�mlamalarda bulunmaktad�r.
Eri�im denetim listesi kurallar� allow(izin ver) veya deny(engelle)
olu�maktad�r. Buna g�re, belli bir ACL eleman� veya bunlardan olu�an bir
grup i�in eri�ime izin verilip verilmeyece�i denetlenmektedir.
Not:
- Kurallar yaz�m s�ras�na g�re uygulanmaktad�r ve
uygun olana denk gelir gelmez i�lem sona erdirilmektedir.
- Eri�im denetim listesi birden fazla kuraldan olu�abilir.
- E�er, kurallardan hi� birisi denk d��mez ise, en son kural�n tersi
uygulanmaktad�r. Dolay�s�yla, benimsenmi� de�eri a��k olarak yazmakta
fayda vard�r.
- Eri�im denetimindeki t�m elemanlar VE mant���na g�re
birle�tirilmektedir.
http_access Kural ifade1 VE ifade2 AND ifade
VEYA.
http_access Kural ifade3
http_access elemanlar� VE ile birle�tirilirken, birden fazla http_access
ifadeleri aralar�nda VEYA ile birle�tirilmektedir.
- Unutmay�n�z ki kurallar dosya ba��ndan sonuna do�ru ele al�nmaktad�r.
Yap�land�rmaya d�n��
Benimsenmi� de�er olarak Squid, eri�im denetimlerini de�i�tirmeden,
istemcilere eri�im vermemektedir. Eri�im verebilmek i�in kendi
kurallar�n�z� listelemeniz gerekmektedir.
squid.conf dosyas�nda http_access deny all sat�r�ndan bir �nceki
yere kadar gelin ve a�a��daki sat�rlar� ekleyin:
acl benim_ag 192.168.0.1/255.255.255.0
http_access allow benim_ag
benim_ag bir ACL ismidir ve ondan sonra gelen sat�r ise,
benim_ag ACL eleman�na uygulanacak kurald�r.
192.168.0.1 a��, a� maskesi 255.255.255.0 olan a�� temsil etmektedir.
benim_ag, a�'da yer alan belli bir bilgisayar grubuna verilen bir isimdir ve
ondan sonra gelen kural sayesinde bunlara eri�im hakk� verilmektedir.
Yukar�da belirtilen http_port ile birlikte kullan�ld���nda Squid'i
�al��t�rmak i�in yeterli olmaktad�r.
Bu de�i�ikliklerden sonra Squid'i �al��t�rmak i�in a�a��daki komutu
�al��t�r�n�z :
service squid start
Not :
Bilgisayar�n a��l��� s�ras�nda Squid'i otomatik olarak �al��t�rmak
m�mk�nd�r. Bunu i�in ntsysv veya (System Service Menu) aktif hale getirmeniz
gerekmektedir.
�evirenin notu:
Linux i�in:
cd /etc/rc3.d
ln -s ../init.de/squid S80squid
Yap�land�r�m dosyas�nda yap�lan her de�i�iklikten sonra, de�i�ikliklerin
etkin hale getirilmesi i�in Squid'in yeniden �al��t�r�lmas� gerekmektedir.
Bunu yapmak i�in a�a��dakilerden birini kullanabilirsiniz:
- service squid restart
- /etc/rc.d/init.d/squid restart
�stemci bilgisayarlar�n yap�land�r�lmas�
�stemciden gelecek ba�lant�lar belli bir ba�lant� noktas�nda
olaca��ndan, istemci bilgisayarlar� bunun i�in ayarlamak gerekmektedir.
Bilgisayarlar�n yerel a��n�za ba�l� olduklar�n� (do�ru IP'lere sahip)
ve Linux sunucusuna ping atabildiklerini varsayarsak, �nternet Explorer
i�in:
- Tools -> Internet Options k�sm�na gidin.
- Connection Tab se�in ve LAN Setting k�sm�na t�klay�n.
- Proxy Server kutusunu i�aretleyin ve vekil(proxy) sunucusunun IP adresi
ile ba�lant� noktas� (http_port) bilgilerini girin.
Netscape Navigator i�in:
- Edit -> Preference -> Advanced ->
Proxies k�sm�na gidin.
- Manual Proxy Configuration tu�unu i�aretleyin.
- View Button tu�una bas�n.
- Proxy Server kutusunu i�aretleyin ve vekil(proxy) sunucusunun IP adresi
ile ba�lant� noktas� (http_port) bilgilerini girin.
Eri�im denetimlerin kullan�m�
Squid, birden fazla eri�im denetimi ve kural� sayesinde, istemcilerin �nternet'e
ba�lanmalar�n� olduk�a esnek bir �ekilde yapabilmenizi sa�lamaktad�r.
S�k kullan�lan eri�im denetimlerine bir ka� �rnek a�a��da verilmi�tir. Ancak bu,
eri�im denetimlerin sadece bunlar oldu�u anlam�na gelmez.
-
Sadece belirli bilgisayarlara �nternet eri�im hakk� vermek i�in:
acl izin_verilen_istemciler src 192.168.0.10
192.168.0.20 192.168.0.30
http_access allow izin_verilen_istemciler
http_access deny !izin_verilen_istemciler
Buna g�re IP adresleri 192.168.0.10, 192.168.0.20 ve 192.168.0.30
olanlara �nternet eri�imi hakk� verilmi�tir ve listede bulunmayan di�er
IP adreslere sahip bilgisayarlara eri�im hakk� verilmemei�tir.
-
Eri�im hakk�na zaman k�s�tlamas� getirmek i�in :
acl izin_verilen_istemciler src
192.168.0.1/255.255.255.0
acl normal_gunler time MTWHF 10:00-16:00
http_access allow izin_verilen_istemciler normal_gunler
http_access deny izin_verilen_istemciler
Buna g�re 192.168.0.1 a��nda bulunan t�m bilgisayarlar,
Pazartesi(dahil) ile Cuma(dahil) g�nleri aras�nda
saat 10:00 ile 16:00 aras� eri�im hakk� verilmi�tir.
-
Farkl� bilgisayarlara birden fazla zamansal eri�im vermek i�in :
acl bilgisayarlar1 src 192.168.0.10
acl bilgisayarlar2 src 192.168.0.20
acl bilgisayarlar3 src 192.168.0.30
acl sabah time 10:00-13:00
acl oglen time 13:30-14:30
acl ogledensonra time 15:00-18:00
http_access allow bilgisayarlar1 sabah
http_access allow bilgisayarlar1 ogledensonra
http_access allow bilgisayarlar2 oglen
http_access allow bilgisayarlar3 ogledensonra
http_access deny all
Yukar�daki kurallara g�re bilgisayarlar1 hem sabah hem de
��leden sonra, bilgisayarlar2 o�lenleri ve bilgisayarlar3 ise,
��leden sonralar� eri�im hakk�na sahip olacakt�r.
Not:
Eri�im denetim elemanlar� VE ile birle�tiridklerinden ve a�a��daki gibi
de�erlendirildiklerinden
http_access Kural ifade1 VE ifade2
VE ifade VEYA.
birden fazla http_access ifadesi VEYEA ile birle�tirilirken,
eri�im denetiminindeki elemanlar VE ile birle�tirilmektedir. Dolay�s�yla
http_access allow bilgisayarlar1 sabah ogledensonra
hi� bir zaman �al��mayacakt�r, ��nk� sabah ile ��leden sonran�n (sabah
VE ogledensonra) sonucu hi�bir zaman DO�RU ��kmayacakt�r.
-
Y�relerin s�n�rland�r�lmas�
Squid ile belli kelimeleri i�eren y�relere olan eri�imi s�n�rland�rmak
m�mk�nd�r. Bunu a�a��daki gibi yapabilirsiniz:
acl izin_verilen_istemciler src 192.168.0.1/255.255.255.0
acl izin_verilmeyen_yoreler url_regex abc.com *()(*.com
http_access deny izin_verilmeyen_yoreler
http_access allow izin_verilen_istemciler
Benzer �ekilde dummy , fake gibi kelimeleri i�eren y�relere olan
eri�im engellenebilir:
acl izin_verilen_istemciler src 192.168.0.1/255.255.255.0
acl izin_verilmeyen_yoreler url_regex dummy fake
http_access deny izin_verilmeyen_yoreler
http_access allow izin_verilen_istemciler
Pratikte izin verilmeyen t�m y�releri ve i�eren kelimeleri
burada listelemek pek uygun de�ildir. Bunun yerine
listeleri bir dosyaya (s�zgelimi /etc dizinindeki izin_verilmeyen.liste) yazmak
m�mk�nd�r. B�ylece, ACL bu dosyadaki bilgilere bakarak
eri�im denetimi yapabilir.
acl izin_verilen_istemciler src 192.168.0.1/255.255.255.0
acl izin_verilmeyen_yoreler url_regex "/etc/izin_verilmeyen.liste"
http_access deny izin_verilmeyen_yoreler
http_access allow izin_verilen_istemciler
-
Kullan�m� etkinle�tirmek
Belli bir istemciden gelen ba�lant� say�s�n�
k�s�tlamak maxconn eleman� ile m�mk�nd�r.
Bu se�enekten faydalanabilmek i�in, �ncelikle client_db �zelli�inin
aktif hale getirilmesi gerekmektedir.
acl benim_ag 192.168.0.1/255.255.255.0
acl baglanti_sayisi maxconn 5
http_access deny benim_ag baglanti_sayisi
Not:
maxconn ACL kar��la�t�rmadan daha az�n� kullanmaktad�r. Bu ACL
ancak ba�lant� say�s�n�n verilen say�dan b�y�k oldu�u
durumda denk d��mektedir (ge�erli olmaktad�r). Bu y�zdendir
ki, bu ACL http_access ile birlikte kullan�lmaz.
-
Verilerin saklanmas�(caching)
�steklerin cevaplar� an�nda saklanmaktad�r. Bu �zellikle
dura�an sayfalar i�in etkilidir. Ancak, cgi-bin ve Servlet
olan sayfalar� saklaman�n anlam� yoktur. Bunlar�n saklanmas�n�
�nemlek i�in no_cache ACL eleman� kullan�labilir:
acl cache_engelle1 url_regex cgi-bin /?
acl cache_engelle2 url_regex Servlet
no_cache deny cache_engelle1
no_cache deny cache_engelle2
-
Kendi hata mesaj�n�z� yaratmak
Eri�im hakk�n�n k�s�tland��� (engellendi�i) kural ile birlikte �zel
hata mesaj� kullan�labilir. Bu, deny_info se�ene�i ile
yap�l�r. Benimsenmi� de�er olarak Squid'in t�m hata
mesajlar� /etc/squid/errors dizininde yer almaktad�r.
Hata dizinin yeri error_directory se�ene�i ile yap�land�r�labilir.
Hatta, var olan hata mesajlar�n� bile de�i�tirebilirsiniz.
acl izin_verilen_istemciler src 192.168.0.1/255.255.255.0
acl izin_verilmeyen_yoreler url_regex abc.com *()(*.com
http_access deny izin_verilmeyen_yoreler
deny_info ERR_IZIN_VERILMEYEN_YORELER izin_verilmeyen_yoreler
http_access allow izin_verilen_istemciler
Kullan�c�lar, izin_verilmeyen_yoreler'deki y�releri ziyaret etmeye kalk��t�klar�nda
yukar�daki �rnekte verilen �zel hata mesaj� kar��lar�na gelecektir.
Bu hata mesaj� dosyas� HTML format�nda olmak zorundad�r.
Yukar�da verilen �rnekler ACL'in �zelliklerinin ve yeteneklerin
sadece k���k bir k�sm�d�r. Squid'in ev sayfal�r�nda yer alan
SSS b�l�m�n� ve
di�er belgeleri okuyarak, ACL elemanlar� ve eri�im denetimleri
ile ilgili daha geni� a��klamalar bulabilirsiniz.
�etele(Log) dosyalar�
Squid'in t�m �etele dosyalar� /var/log/squid dizininde yer almaktad�r.
Burada, eri�im (access), saklama (cache) ve depolama (store)
�etelelerini bulabilibilirsiniz. �stemcilerden
gelen isteklerin, olaylar�n ve vekil (proxy) sunucusu taraf�ndan
al�nan t�m HTTP ve ICP sorgular�n�n (istemcilerin IP adresleri, sorgulama
y�ntemi, istenilen URL vs) �etelesi access.log dosyas�nda
tutulmaktad�r. Bu dosyadaki verileri analiz etmek m�mk�nd�r.
sarg,
calamaris,
Squid-Log-Analyzer
gibi bir�ok program verileri inceleyebilir ve �e�itli raporlar (HTML
bi�iminde) olu�turabilirler. Olu�turulabilen raporlar aras�nda,
ziyaret edilen y�reler, kullan�c� listeleri, istemci IP
adresleri vs. cinsindedir.
�etele dosyalr�n yoltan�mlar�n� a�a��daki se�enekler
ile de�i�tirebilirsiniz:
cache_access_log access.log i�in.
cache_log cache.log i�in.
cache_store_log store.log i�in.
pid_filename Squid s�re� numaras�n�n yer ald��� dosya.
Kullan�c� kimliklendirme(denetim) y�ntemleri
Benimsenmi� de�er olarak Squid, t�m kullan�c�lara kimlik bilgisi
sormadan eri�im izni tan�maktad�r. Kullan�c�lar� kimliklendirmek ve
buna g�re sadece ge�erli olan kullan�c�lara eri�im hakk� vermek i�in
Squid kendisi d���ndaki programlardan yararlanmaktad�r.
Bunun i�in kullan�c� ad� ve ge�i�s�zc��� kullanmak gerekmektedir.
Yap�land�r�m dosyas�nda proxy_auth ACL ve authenticate_program
se�eneklerini ayarlamak gerekmektedir.
Bunlar sayesinde, kullan�c� ba�lant�s�n� sa�lamadan �nce ge�erli bir
kullan�c� ad� ve ge�i�s�zc��� vermek zorundad�r. Bunun i�in Squid'in
kullanabilece�i birden fazla y�ntem ve program vard�r:
- LDAP : Linux Lightweight Directory Access
Protocol kullanmaktad�r.
- NCSA : NCSA tipi kullan�c� ad� ve �ifre dosyas� kullanmaktad�r.
- SMB : SAMBA veya Windows NT, SMB sunucusu kullanmaktad�r.
- MSNT : Windows NT kimliklendirme alan�n� kullanmaktad�r.
- PAM : Linux Pluggable Authentication Modules kullanmaktad�r.
- getpwam : Linux password dosyas�n� kullanmaktad�r.
Kimliklendirme program�n� authenticate_program se�ene�i ile
belirtebilirsiniz. Bundan �nce kimliklendirme program�n�n
y�kl� ve �al���r durumda oldu�undan emin olunuz.
Kimliklendirme program�n�n ad�n� squid.conf dosyas�na yazman�z
gerekmektedir:
acl pass proxy_auth REQUIRED
acl benim_ag src 192.168.0.1/255.255.255.0
http_access deny !benim_ag
http_access allow pass
http_access deny all
Bu PAM kimliklendirme program�n� kullanmaktad�r ve t�m kullan�c�lar
�nternet'e erimeden �nce, kimlik bilgilerini girmeleri gerekmektedir.
authenticate_ttl ve authenticate_ip_ttl gibi se�enekler
kullan�larak kimliklendirme program�n�n �al��ma �ekli (kullan�c�lar�n�n
yeniden kimliklendirilmesi gibi) ile
oynamak m�mk�nd�r.
Kaynaklar
Bu yaz� Squid buzda��n�n sadece tepesini g�stermektedir. daha fazla bilgi
i�in a�a��daki y�releri ziyaret edebilirsiniz:
Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz
Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
2002-03-13, generated by lfparser version 2.27