FreeBSD'de Squid Proxy Server

Squid yüksek performanslı bir proxy (vekil) sunucusudur. Vekil
sunucu, tek bir hat üstünden bir çok kişiye internet bağlantısı sağlar.
HTTP, FTP, SSL, gopher protokollerini desteklemektedir. Squid cgi, phpi, aspi, jspi gibi dinamik sayfaları önbellekte tutmaz.

Squid'i port ağacından kurmak için,

# cd /usr/ports/www/squid

# make install clean

Squid'in yapılandırma dosyası, /usr/local/etc/squid/squid.conf 'dur.

Yapılandırma dosyasında yaygın olarak kullanılan değişkenler ve bunların açıklamalarına gelince;

http_port:
Squid'in hangi port numarasını dinlediğini belirtir. Öntanımlı olarak
3128 numaralı portu dinlemektedir. Vekil sunucular için genel olarak
8080 numaralı port kullanılmaktadır.

cache_mem: Squid'in verileri diske yazarken ne kadar bellek kullanacağını belirler. Öntanımlı olarak 8mb bellek kullanılır.

maximum_object_size: Diskte saklanacak nesnelerin en yüksek tekil boyutunu belirler. Bu değerden büyük boyutlu nesneler diskte saklanmaz.

cache_dir: Squid'in internetten indirdiği dosyaların hangi dizinde saklanacağını belirler.

cache_dir <dosya sistemi tipi> <dizin> <boyut> <dsayi1> <dsayi2>

Dosya sistemi tipi genelde, ufs'tir.
<dizin> parametresi ile dizinin tam yolu belirlenir.
<boyut>, mb cinsinden ne kadar disk alanı kullanılacağını
belirler. <dsayi1> parametresi <dizin> ile belirtilen dizin
altında kaç tane dizin açılacağını belirler. <dsayi2>
parametresi, <dsayi1> ile belirtilen her bir dizin altında kaç
tane dizin açılacağını belirler.

Ör: cache_dir /usr/local/squid/cache 100 16 256

cache_access_log: Bu değişken ile istemcilerin istekte bulunduğu sitelerin bilgilerinin tutulduğu günlük dosyası belirlenir.

Ör: cache_access_log /usr/local/squid/logs/access.log

cache_effective_user: Squid'in hangi kullanıcı haklarıyla çalışacağını belirler.

Ör: cache_effective_user nobody

cache_effective_group: Squid'in hangi grup haklarıyla çalışacağını belirler.

Ör: cache_effective_group nobody

Önemli
not: cache_effective_user ve cache_effective group ile belirtilen
kullanıcı adı ve grubun, cache_dir ile belirtilen dizinde okuma ve
yazma haklarına sahip olması gerekir. cache_effective_user değeri
nobody, cache_effective_group değeri nobody ve cache_dir değeri
/usr/local/squid olan bir yapılandırmada gerekli erişim hakkını vermek
için aşağıdaki komut verilir:

# chown -R nobody:nobody /usr/local/squid

visible_hostname:
Hata mesajlarında gözükecek olan sunucu adını belirler. Bu değişkene
değer atanmamışsa, gethostname() fonksiyonunun döndürdüğü değer
kullanılır.

Ör: visible_hostname: squid.alpersomuncu.com

cache_mgr: Sistemden sorumlu kişinin eposta adresini belirler.

Ör: cache_mgr alpersomuncu@gmail.com

Squid Erişim Kontrolü:

Squid'de
erişim kontrolleri acl (access control list) değişkenleri ile
belirlenir. Acl değişkenleri ile belirtilen erişim kurallarına izin
verilip verilmeyeceği ise http_access değişkeni ile belirlenir. Acl
değişkeninin biçimi aşağıdaki şekillerde olabilir.

acl isim tip ifade

acl isim tp dosya_adı

Yaygın olarak kullanılan tiplerden bazıları şunlardır:

src: İstemcinin kaynak IP adresini belirtir.

dst: İstemcinin bağlanmaya çalıştığı sunucunun hedef IP adresini belirtir.

srcdomain: İstemcinin alan adını belirtir.

dstdomain: İstemcinin bağlanmaya çalıştığı sunucunun alan adını belirtir.

url_regex: Filtre uygulanacak site adlarında geçen kelimeleri belirlemek için kullanılır.

time: Günün saati ve haftanın gününü belirtir.

http_access değişkeninin biçimi aşağıdaki şekillerde olabilir:

http_access deny|allow acl_adı

squid.conf dosyasında öntanımlı IP adresi erişim kontrolleri aşağıdaki gibidir:

acl localhost src 127.0.0.1/255.255.255.255

acl all src 0.0.0.0/0.0.0.0

http_access allow localhost

http_access deny all

Örneğin, 192.168.2.10 ağındaki herkese squid'i kullanma izni vermek için;

acl yerelag 192.168.2.10/24

şeklinde bir kural tanımladıktan sonra,

http_access deny all satırından bir önceki satıra aşağıdaki satır eklenmelidir.

http_access allow yerelag

Çünkü,
squid kuralları dosya başından sonuna doğru uygulanmaktadır ve ilk
uyuşan http_access kuralı uygulanır, sonraki kurallara bakılmaz. Bu
nedenle http_access deny all satırının http_access ile ilgili son satır olmasına dikkat edilmelidir.

Erişim Kuralları:

acl yasak dstdomain .yasakdomain.com .yasakdomain2.com

Bu ifade ile ilgili alan adlarına ve onların alt alan adlarına erişim kuralı tanımlanmış olur.

acl p0rn url_regex "/usr/local/etc/squid/p0rn.txt"

Bu
ifade ile ilgili p0rn.txt dosyasında bulunan kelimelerden herhangi
birini içeren kelimeye üstte belirtilen erişim kuralı tanımlanmış olur.

Bu izinleri/yasakları uygulamak için,

http_access deny p0rn

Squid'in Çalıştırılması;

Çalıştırmak için öncelikle cache dizinini oluşturmamız gerekir. Bu dizini oluşturmak için,

#squid -z

Squid'i çalıştırmak için,

# /usr/local/etc/rc.d/squid.sh start

komutu verilir. Durdurmak için ise,

# /usr/local/etc/rc.d/squid.sh start

veya

#squid -k shutdown

squid.conf dosyasında değişiklik yaptıktan sonra yeni yapılandırmaların geçerli olması için,

#squid -k reconfigure

 

Alper Somuncu

alpersomuncu@gmail.com

http://www.alpersomuncu.com

__________________________

5
Ortalama: 5 (2 votes)