[LinuxFocus-icon]
Ev  |  Eri�imd�zeni  |  ��indekiler  |  Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

[DSOberoi]
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�

[squid]

�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:
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 :
  1. acl_eleman_ad� kullan�c� taraf�ndan tan�mlanm�� herhangi bir ad olabilir.
  2. Herhangi iki ACL eleman� ayn� isme sahip olamaz.
  3. 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.
  4. ACL elemanlar�nda hepsi eri�im listeleri ile birlikte kullan�lamamaktad�r.
  5. 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: 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:
  1. Kurallar yaz�m s�ras�na g�re uygulanmaktad�r ve uygun olana denk gelir gelmez i�lem sona erdirilmektedir.
  2. Eri�im denetim listesi birden fazla kuraldan olu�abilir.
  3. 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.
  4. 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.
  5. 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:
  1. service squid restart
  2. /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:
  1. Tools -> Internet Options k�sm�na gidin.
  2. Connection Tab se�in ve LAN Setting k�sm�na t�klay�n.
  3. Proxy Server kutusunu i�aretleyin ve vekil(proxy) sunucusunun IP adresi ile ba�lant� noktas� (http_port) bilgilerini girin.

Netscape Navigator i�in:
  1. Edit -> Preference -> Advanced -> Proxies k�sm�na gidin.
  2. Manual Proxy Configuration tu�unu i�aretleyin.
  3. View Button tu�una bas�n.
  4. 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.
  1. 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.
  2. 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.
  3. 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.
  4. 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

  5. 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.
  6. 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

  7. 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:
  1. LDAP : Linux Lightweight Directory Access Protocol kullanmaktad�r.
  2. NCSA : NCSA tipi kullan�c� ad� ve �ifre dosyas� kullanmaktad�r.
  3. SMB : SAMBA veya Windows NT, SMB sunucusu kullanmaktad�r.
  4. MSNT : Windows NT kimliklendirme alan�n� kullanmaktad�r.
  5. PAM : Linux Pluggable Authentication Modules kullanmaktad�r.
  6. 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.
 talkback page 

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© D.S. Oberoi, FDL
LinuxFocus.org

Buray� klikleyerek hatalar� rapor edebilir ya da yorumlar�n�z� LinuxFocus'a g�nderebilirsiniz
�eviri bilgisi:
en --> -- : D.S. Oberoi <ds_oberoi(at)yahoo.com>
en --> tr: Erdal MUTLU <erdal(at)linuxfocus.org>

2002-03-13, generated by lfparser version 2.27