Takip et

Ubuntu’da Squid Proxy Kurulumu: Kapsamlı Bir Kılavuz

Ubuntu sunucunuzda Squid proxy’i nasıl kurup yapılandıracağınızı öğrenin. Ağınızı optimize edin, güvenliği artırın ve daha fazlasını yapın.

<h2>Ubuntu’da Squid Proxy Kurulumu: Kapsamlı Bir Kılavuz</h2>

İnternet erişimini yönetmek, performansı artırmak ve güvenliği sağlamak günümüzün dijital ortamında kritik öneme sahiptir. Peki, bu hedeflere ulaşmanın en etkili yollarından biri olan Squid proxy sunucusunu Ubuntu sisteminize nasıl kurar ve yapılandırırsınız? Bu rehber, konuya sıfırdan başlayanlardan deneyimli sistem yöneticilerine kadar herkesin anlayabileceği şekilde, adım adım ilerleyerek size Squid proxy’nin inceliklerini öğretecektir. Ağınızın potansiyelini en üst düzeye çıkarmak için bu yolculuğa çıkmaya hazır mısınız?

<h3>Neden Bir Proxy Sunucusuna İhtiyacınız Var? Temel Kavramlar ve Avantajları</h3>

Günümüzün birbirine bağlı dünyasında, bireysel kullanıcılar ve kurumlar için internet erişimini yönetmek giderek daha karmaşık hale gelmektedir. Birçok kullanıcı, proxy sunucularının ne işe yaradığını veya neden kullanılması gerektiğini tam olarak anlamayabilir. Basitçe ifade etmek gerekirse, bir proxy sunucusu, sizin ve internet arasındaki bir aracıdır. Siz bir web sitesine erişmek istediğinizde, isteğiniz önce proxy sunucusuna gider. Proxy sunucusu bu isteği alır, işler ve ardından hedef web sitesine iletir. Web sitesinden gelen yanıt da aynı şekilde önce proxy’ye gelir, oradan size ulaşır. Bu aracı rol, proxy sunucularına çeşitli avantajlar kazandırır.

Öncelikle, güvenlik açısından proxy’ler önemli bir katman oluşturur. Doğrudan internete maruz kalmak yerine, proxy sunucunuz dış tehditlere karşı bir kalkan görevi görebilir. IP adresinizi gizleyerek anonimliği artırabilir ve belirli web sitelerine veya içeriklere erişimi engelleyerek ağınızdaki kullanıcıların güvenli ve uygunsuz sitelere erişmesini önleyebilirsiniz. Özellikle kurumsal ortamlarda, bu tür içerik filtreleme politikaları hem üretkenliği artırır hem de yasal uyumluluğu sağlar.

İkinci olarak, performans optimizasyonu proxy’lerin en bilinen faydalarından biridir. Squid gibi önbellekleme (caching) yeteneklerine sahip proxy’ler, sıkça erişilen web sayfalarını ve dosyaları kendi belleğinde saklayabilir. Bir kullanıcı aynı sayfayı tekrar istediğinde, sayfa doğrudan internetten değil, proxy’nin önbelleğinden çok daha hızlı bir şekilde sunulur. Bu, özellikle yüksek trafikli ağlarda bant genişliği kullanımını önemli ölçüde azaltır ve genel internet deneyimini hızlandırır. Düşünün ki, aynı dokümanı defalarca indirmeniz gerekiyor; eğer bu doküman proxy’nin önbelleğinde varsa, her seferinde internetten indirmek yerine anında erişebilirsiniz.

Üçüncü olarak, Squid proxy, bant genişliği yönetiminde de kilit bir rol oynar. Belirli kullanıcıların veya uygulamaların bant genişliği kullanımını izleyebilir ve sınırlayabilirsiniz. Bu, kritik uygulamaların performansını garanti altına almanıza ve aşırı bant genişliği tüketen aktivitelerin ağınızı tıkamasını engellemenize olanak tanır. Örneğin, bir kurumda büyük dosyaların indirilmesi veya video akışlarının sürekli izlenmesi, diğer önemli iş süreçlerini yavaşlatabilir. Squid ile bu tür kullanımları kısıtlayarak ağ kaynaklarının daha adil dağılmasını sağlayabilirsiniz.

Son olarak, Squid proxy, ağ trafiğini izleme ve analiz etme yetenekleriyle de öne çıkar. Hangi kullanıcıların hangi sitelere eriştiğini, ne kadar veri indirdiğini ve hangi saatlerde yoğunluk yaşandığını görebilirsiniz. Bu veriler, ağınızın nasıl kullanıldığına dair değerli bilgiler sunar ve gelecekteki ağ planlaması için temel oluşturur. Bu bilgiler sayesinde olası güvenlik ihlallerini erkenden tespit edebilir veya ağdaki darboğazları belirleyebilirsiniz. Kısacası, Squid proxy, sadece bir ara sunucu olmanın ötesinde, ağınızın güvenliğini, performansını ve verimliliğini artıran çok yönlü bir araçtır. Bu rehberde, bu güçlü aracı Ubuntu sisteminize nasıl entegre edeceğinizi detaylı bir şekilde ele alacağız.

<h3>Ubuntu’da Squid Kurulumu: İlk Adımlar ve Temel Yapılandırma</h3>

Squid proxy’yi Ubuntu sisteminize kurmak, aslında oldukça basit bir işlemdir. Genellikle, Ubuntu’nun paket yöneticisi olan APT (Advanced Package Tool) aracılığıyla bu işlemi kolayca gerçekleştirebilirsiniz. Kurulum süreci, sisteminizin güncel olduğundan emin olmakla başlar ve ardından Squid paketini indirip kurmayı içerir. Bu adımları tamamladıktan sonra, Squid’in temel yapılandırma dosyalarını düzenleyerek ilk ayarlarınızı yapmaya hazır olacaksınız.

Öncelikle, terminali açın ve sisteminizin paket listesini güncelleyin. Bu, en son yazılım sürümlerine erişmenizi sağlar ve olası uyumluluk sorunlarını en aza indirir. Komut satırına şu komutu yazın:bash
sudo apt update

Bu komutu çalıştırdıktan sonra, sisteminizdeki mevcut paketleri yükseltmek isteyebilirsiniz. Bu, hem güvenlik güncellemelerini almanızı sağlar hem de Squid'in en kararlı sürümünü kurmanıza yardımcı olur. Yükseltme komutu ise şöyledir:

bash
sudo apt upgrade -y

-y parametresi, yükseltme sırasında sorulan onay sorularını otomatik olarak "evet" olarak yanıtlamanızı sağlar. Bu, özellikle script'ler içinde kullanıldığında veya toplu güncellemeler yaparken işleri kolaylaştırır. Sistem güncellemeleri tamamlandıktan sonra, artık Squid proxy'yi kurmaya hazırsınız.

Squid'i kurmak için aşağıdaki komutu kullanın:

bash
sudo apt install squid -y

Bu komut, Squid paketini ve ilgili bağımlılıklarını otomatik olarak indirip kuracaktır. Kurulum tamamlandığında, Squid servisi genellikle otomatik olarak başlatılır ve sistem açıldığında çalışacak şekilde ayarlanır. Ancak, servisin durumunu kontrol etmek ve manuel olarak başlatmak veya durdurmak için systemctl komutunu kullanabilirsiniz. Örneğin, Squid servisini başlatmak için:

bash
sudo systemctl start squid

Servisi durdurmak için:

bash
sudo systemctl stop squid

Ve servisin mevcut durumunu görmek için:

bash
sudo systemctl status squid

Squid'in yapılandırma dosyası genellikle /etc/squid/squid.conf yolunda bulunur. Bu dosya, Squid'in tüm davranışlarını kontrol eden birincil yapılandırma dosyasıdır. Kurulumdan sonra ilk yapmanız gereken şeylerden biri, bu dosyayı bir metin düzenleyici ile açarak temel ayarları gözden geçirmektir. Genellikle nano veya vim gibi komut satırı metin düzenleyicilerini kullanabilirsiniz. Örneğin, nano ile açmak için:

bash
sudo nano /etc/squid/squid.conf

Bu dosya oldukça uzun ve karmaşıktır, ancak başlangıçta odaklanmanız gereken birkaç önemli bölüm bulunmaktadır. En kritik ayarlar genellikle http_port, acl (Access Control List - Erişim Kontrol Listesi) ve http_access yönergeleridir. http_port yönergesi, Squid'in hangi port üzerinden gelen istekleri dinleyeceğini belirtir. Varsayılan olarak bu genellikle 3128'dir.

http_port 3128

acl yönergeleri, erişim kurallarını tanımlamak için kullanılır. Örneğin, belirli IP adreslerinden veya ağlardan gelen istekleri tanımlayabilirsiniz. http_access yönergeleri ise bu tanımlanan ACL'lere göre hangi isteklerin izin verileceğini veya reddedileceğini belirler. Bu, ağınızdaki kimlerin proxy'yi kullanabileceğini kontrol etmenizi sağlar.

Başlangıçta, yerel ağınızdan gelen tüm isteklerin proxy'yi kullanmasına izin vermek isteyebilirsiniz. Bunun için aşağıdaki gibi bir ACL ve http_access kuralı eklemeniz gerekebilir. Öncelikle, yerel ağınızı tanımlayan bir ACL oluşturun. Eğer yerel ağınız 192.168.1.0/24 ise:

acl localnet src 192.168.1.0/24

Ardından, bu localnet ACL'sine izin veren bir http_access kuralı ekleyin. Kuralların sırası önemlidir; Squid, kuralları yukarıdan aşağıya doğru işler ve ilk eşleşen kuralı uygular. Bu nedenle, genel izinlerden önce belirli reddetme kurallarını veya tam tersini düşünmeniz gerekebilir. Yerel ağınızdan gelen trafiğe izin vermek için genellikle aşağıdaki gibi bir kural eklenir:

http_access allow localnet

Ve genellikle, tanımlanmamış tüm trafiği reddetmek için şu kural da eklenir:

http_access deny all

Bu iki kuralın sırası, allow localnet kuralının, deny all kuralından önce gelmesini sağlamalıdır. Yapılandırma dosyasında değişiklik yaptıktan sonra, Squid servisini yeniden başlatmanız gerekir ki bu değişiklikler etkinleşsin:

bash
sudo systemctl restart squid

Bu temel adımlar, Ubuntu sisteminizde çalışan bir Squid proxy sunucusunun kurulumunu tamamlamanızı sağlar. Sonraki bölümlerde, bu temel kurulumu daha gelişmiş senaryolar için nasıl yapılandıracağımızı ele alacağız.

<h3>Erişim Kontrol Listeleri (ACL) ve Güvenlik Duvarı Kuralları Oluşturma</h3>

Squid proxy'nin en güçlü özelliklerinden biri, sunduğu esnek erişim kontrol mekanizmalarıdır. Erişim Kontrol Listeleri (ACL'ler), ağınızdaki trafiği belirli kriterlere göre gruplandırmanıza ve ardından bu gruplara göre erişim politikaları belirlemenize olanak tanır. Bu, hem güvenlik duvarı görevi görmesini sağlamak hem de belirli kullanıcıların veya cihazların proxy'yi nasıl kullanabileceğini kontrol etmek için hayati önem taşır.

ACL'ler, Squid yapılandırma dosyasında (/etc/squid/squid.conf) acl anahtar kelimesi ile tanımlanır. Bir ACL tanımı genellikle acl <acl_adı> <acl_tipi> <değerler> formatındadır. En yaygın ACL tiplerinden bazıları şunlardır:

*   src: Kaynak IP adresleri veya ağ aralıkları. Örneğin, acl localnet src 192.168.1.0/24 gibi.
*   dst: Hedef IP adresleri veya ağ aralıkları.
*   dstdomain: Hedef alan adları. Örneğin, acl blocked_sites dstdomain .example.com gibi.
*   time: Belirli zaman aralıkları. Örneğin, acl work_hours time MTWHF 09:00-17:00 gibi (Pazartesi'den Cuma'ya 09:00-17:00 arası).
*   url_regex: URL'lerdeki desenlere göre eşleşme.
*   port: Hedef port numaraları.

Bu ACL'leri tanımladıktan sonra, http_access yönergeleri ile bu ACL'lere dayalı olarak erişim izinleri veya reddetmeleri belirlenir. http_access kuralları, Squid yapılandırma dosyasında acl tanımlarından sonra gelir ve sırayla işlenir.

Örneğin, sadece yerel ağınızdaki kullanıcıların proxy'yi kullanmasına izin vermek istiyorsanız, öncelikle yerel ağınızı tanımlayan bir ACL oluşturmanız gerekir:

acl localnet src 192.168.1.0/24

Ardından, bu localnet ACL'sine izin veren bir http_access kuralı ekleyin. Genellikle, tüm genel erişimi reddetmeden önce bu tür izinleri tanımlamak önemlidir:

http_access allow localnet

Eğer belirli bir IP adresinden gelen istekleri engellemek istiyorsanız, önce bu IP adresini tanımlayan bir ACL oluşturabilir ve sonra bunu reddedebilirsiniz:

acl restricted_ip src 192.168.1.100
http_access deny restricted_ip

Bu kuralın, http_access allow localnet kuralından önce gelmesi, engelleme kuralının öncelikli olmasını sağlar.

Bununla birlikte, Squid'in kendi http_access kuralları, sunucunuzun işletim sistemi düzeyindeki güvenlik duvarı ile birlikte düşünüldüğünde daha güçlü bir savunma hattı oluşturur. Ubuntu'da varsayılan olarak ufw (Uncomplicated Firewall) bulunur. UFW'yi kullanarak, Squid'in çalıştığı port olan 3128'e sadece izin verdiğiniz IP adreslerinden veya ağlardan erişime izin verebilirsiniz.

Öncelikle, UFW'yi etkinleştirdiğinizden emin olun:

bash
sudo ufw enable

Ardından, Squid'in çalıştığı varsayılan port olan 3128'e sadece yerel ağınızdan erişime izin verin:

bash
sudo ufw allow from 192.168.1.0/24 to any port 3128

Eğer Squid'i farklı bir portta çalıştırıyorsanız, bu komuttaki 3128 yerine o port numarasını kullanmalısınız.

Daha sonra, dışarıdan gelen tüm diğer 3128 portu trafiğini engelleyebilirsiniz:

bash
sudo ufw deny 3128

Bu UFW kuralı, Squid'in kendi erişim kontrol listeleriyle birlikte katmanlı bir güvenlik sağlar. Squid, hangi isteklere izin verileceğini veya reddedileceğini belirlerken, UFW ise hangi dış kaynakların Squid'in dinlediği porta bile ulaşabileceğini kontrol eder. Bu ikili yaklaşım, ağınızın güvenliğini önemli ölçüde artırır.

Bir diğer gelişmiş senaryo, belirli web sitelerine erişimi engellemektir. Bunu yapmak için dstdomain veya url_regex ACL'lerini kullanabilirsiniz. Örneğin, sosyal medya sitelerini engellemek için:

acl social_media dstdomain .facebook.com .twitter.com .instagram.com
http_access deny social_media

Bu kuralları, http_access allow localnet kuralından önce eklemeniz, engelleme kurallarının öncelikli olmasını sağlar.

Squid yapılandırma dosyasında yaptığınız her değişiklikten sonra, servisi yeniden başlatmayı unutmayın:

bash
sudo systemctl restart squid

Bu ACL ve güvenlik duvarı yapılandırmaları, Squid proxy'nizi hem daha güvenli hale getirir hem de ağınızdaki internet erişimini daha kontrollü bir şekilde yönetmenizi sağlar.

<h3>Önbellekleme (Caching) Yapılandırması: Performansı Maksimize Etme</h3>

Squid proxy'nin en önemli faydalarından biri, etkili önbellekleme (caching) yetenekleridir. Önbellekleme, sıkça erişilen web sayfalarını, resimleri ve diğer içerikleri proxy sunucusunun kendi diskinde veya belleğinde saklaması anlamına gelir. Bir kullanıcı aynı içeriği tekrar talep ettiğinde, bu içerik internetten tekrar indirilmek yerine önbellekten çok daha hızlı bir şekilde sunulur. Bu, hem ağ bant genişliğini önemli ölçüde azaltır hem de kullanıcılar için web sayfalarının yüklenme sürelerini dramatik bir şekilde iyileştirir.

Squid'in önbellekleme ayarları, squid.conf dosyasındaki cache_dir yönergesi ile kontrol edilir. Bu yönerge, önbelleğin nerede saklanacağını, ne kadar büyük olacağını ve hangi önbellekleme dizin yapısının kullanılacağını belirtir. Varsayılan olarak, Squid genellikle önbellekleme için yapılandırılmış olabilir, ancak boyutu ve konumu ihtiyaçlarınıza göre ayarlanabilir.

Genel cache_dir sözdizimi şu şekildedir:

cache_dir [options]

*   <tip>: Kullanılacak önbellekleme dizin yapısının türüdür. En yaygın olanı ufs (Unix File System) türüdür.
*   <dizin>: Önbelleğin saklanacağı dizinin yolu. Örneğin, /var/spool/squid.
*   <başlangıç_boyutu>: Önbellek dizininin megabayt cinsinden başlangıç boyutu.
*   <alt_dizin_sayısı>: Önbellek dizininin kaç tane alt dizine bölüneceği. Bu, çok sayıda küçük dosya olduğunda dosya sistemi performansını artırabilir.
*   <dosya_sayısı>: Her alt dizindeki dosya sayısı.

Örneğin, /var/spool/squid dizininde 10 GB'lık bir önbellek oluşturmak ve bu dizini 16 alt dizine, her alt dizinde 256 dosya olacak şekilde yapılandırmak için şu satırı kullanabilirsiniz:

cache_dir ufs /var/spool/squid 10000 16 256

Bu satırı squid.conf dosyanıza ekledikten veya mevcut cache_dir satırını düzenledikten sonra, Squid servisini yeniden başlatmanız gerekir:

bash
sudo systemctl restart squid

Önbelleğin doğru şekilde çalışması için, belirtilen önbellek dizininin Squid kullanıcısı tarafından yazılabilir olduğundan emin olmanız önemlidir. Kurulum sırasında bu genellikle otomatik olarak ayarlanır, ancak manuel ayarlamalar yapmanız gerekirse chown komutunu kullanabilirsiniz. Squid'in varsayılan kullanıcı adı genellikle proxy veya squid'dir.

bash
sudo chown -R proxy:proxy /var/spool/squid

Diğer önemli önbellekleme ile ilgili ayarlar şunlardır:

*   maximum_object_size: Önbelleğe alınacak en büyük nesne boyutu (varsayılan genellikle 100 MB civarındadır). Daha büyük nesneler önbelleğe alınmaz.
*   minimum_object_size: Önbelleğe alınacak en küçük nesne boyutu. Çok küçük nesneler önbellek performansını düşürebilir.
*   cache_mem: Squid'in önbellekleme için kullanacağı RAM miktarı. Bu ayar, sunucunuzun toplam RAM miktarına göre dikkatlice ayarlanmalıdır. Çok yüksek bir değer, sistemin genel performansını olumsuz etkileyebilir.
*   refresh_pattern: Bu, Squid'in belirli dosya türlerini ne kadar süreyle önbellekte tutacağını belirleyen güçlü bir yönergedir. Bu yönerge, URL'deki desenlere, dosya türlerine ve dosyanın ne kadar eski olduğuna göre önbellekleme süresini kontrol eder. Örneğin, resim dosyaları için daha uzun bir önbellekleme süresi belirlerken, sık güncellenen haber sayfaları için daha kısa bir süre belirleyebilirsiniz.

refresh_pattern yönergesinin genel yapısı şöyledir:

refresh_pattern [-i] [options]

*   <regex>: URL'deki eşleşecek desen.
*   <min>: Minimum önbellekleme süresi (dakika).
*   <pct>: Yüzde olarak ne kadar süreyle güncel tutulacağı.
*   <max>: Maksimum önbellekleme süresi (dakika).

Örneğin, tüm .jpg ve .png dosyalarını 600 dakika (10 saat) boyunca önbellekte tutmak için:

refresh_pattern -i \.(jpg|png)$ 600 20% 1200

Bu ayarlar, Squid'in önbellekleme davranışını ince ayar yapmanıza olanak tanır. Doğru yapılandırılmış bir önbellek, ağınızın performansını önemli ölçüde artırabilir.

Bir vaka analizi düşünelim: Bir okul ağı düşünün. Öğrenciler sürekli olarak aynı eğitim materyallerine, resimlere ve videolara erişiyorlar. Eğer Squid proxy'si etkili bir şekilde yapılandırılmışsa, bu materyaller önbelleğe alınır. Bir öğrenci bir resmi indirdiğinde, bu resim proxy'nin önbelleğine kaydedilir. Diğer öğrenciler aynı resmi indirmek istediğinde, resim internetten tekrar indirilmez, proxy'den anında gelir. Bu durum, özellikle okul saatlerinde yoğunlaşan internet trafiğini hafifletir, bant genişliği maliyetlerini düşürür ve öğrencilerin daha hızlı ve kesintisiz bir şekilde eğitim materyallerine erişmesini sağlar.

Diğer bir senaryo ise bir şirket ofisidir. Çalışanlar sık sık aynı dokümanlara, raporlara veya şirket içi web uygulamalarına erişirler. Squid'in önbellekleme özelliği sayesinde, bu içerikler önbellekte saklanır ve çalışanlar bu kaynaklara çok daha hızlı erişebilir. Bu, genel üretkenliği artırır ve internet bağlantısının daha verimli kullanılmasını sağlar. Önbellek ayarlarını doğru yapmak, bu tür senaryolarda hissedilir bir performans artışı sağlayacaktır.

<h3>İleri Düzey Yapılandırmalar: Kimlik Doğrulama ve URL Filtreleme</h3>

Temel kurulum ve önbellekleme ayarlarının ötesinde, Squid proxy'yi daha gelişmiş özelliklerle donatmak mümkündür. Bunlardan en önemlileri, kullanıcı kimlik doğrulaması ve URL filtrelemedir. Bu özellikler, ağınızdaki erişimi daha da hassas bir şekilde kontrol etmenizi ve güvenlik politikalarınızı güçlendirmenizi sağlar.

<h4>Kullanıcı Kimlik Doğrulaması (Authentication)</h4>

Squid, kullanıcıları kimliklerini doğrulamaları için zorunlu kılacak şekilde yapılandırılabilir. Bu, özellikle birden fazla kullanıcının paylaştığı ağlarda veya kurumsal ortamlarda önemlidir. Kullanıcılar, proxy'yi kullanmadan önce bir kullanıcı adı ve şifre ile giriş yapmak zorunda kalırlar. Squid, çeşitli kimlik doğrulama yöntemlerini destekler, ancak en yaygın olanları şunlardır:

*   Temel Kimlik Doğrulama (Basic Authentication): Bu en basit yöntemdir ve kullanıcı adı/şifre bilgilerini Base64 kodlanmış olarak gönderir. Güvenlik açısından çok güçlü olmasa da, basit senaryolar için yeterli olabilir.
*   NCSA Kimlik Doğrulama: Squid'in kendi desteklediği bir kimlik doğrulama yöntemidir ve bir metin dosyasında saklanan kullanıcı adı/şifre çiftlerini kullanır.
*   LDAP Kimlik Doğrulama: Kurumsal ortamlarda yaygın olarak kullanılır. Kullanıcılar, merkezi bir LDAP sunucusunda (örneğin, Active Directory) saklanan kimlik bilgileriyle doğrulanır.
*   NTLM/Kerberos Kimlik Doğrulama: Windows etki alanlarında yaygın olarak kullanılan daha güvenli kimlik doğrulama protokolleridir.

Kimlik doğrulama yapılandırması, squid.conf dosyasında auth_param yönergeleri ile yapılır. Örneğin, NCSA kimlik doğrulaması kullanmak için öncelikle bir parola dosyası oluşturmanız gerekir:

bash
sudo htpasswd -c /etc/squid/passwd

Bu komut, belirtilen kullanıcı adı için bir parola dosyası oluşturur ve sizden parolanızı girmenizi ister. Daha sonra, squid.conf dosyasına aşağıdaki gibi satırlar ekleyebilirsiniz:

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-authenticated
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

Burada:
*   auth_param basic program: Kullanılacak kimlik doğrulama programını ve parola dosyasının yolunu belirtir.
*   auth_param basic children: Kimlik doğrulama işlemi için oluşturulacak çocuk işlem sayısını belirler.
*   auth_param basic realm: Kullanıcılara gösterilecek kimlik doğrulama istemi metnidir.
*   acl authenticated proxy_auth REQUIRED: authenticated adında bir ACL tanımlar ve bu ACL, geçerli bir kimlik doğrulaması gerektirir.
*   http_access allow authenticated: Kimliği doğrulanmış kullanıcıların proxy'yi kullanmasına izin verir.

Bu kuralların, diğer http_access deny all gibi genel reddetme kurallarından önce gelmesi önemlidir. Kimlik doğrulama yapılandırması yaptıktan sonra, Squid servisini yeniden başlatmanız gerekir.

<h4>URL Filtreleme ve İçerik Engelleme</h4>

Squid, belirli URL'lere veya anahtar kelimelere dayalı olarak web sitelerine erişimi engellemek için de kullanılabilir. Bu, çocukların uygunsuz sitelere erişmesini önlemek, çalışanların iş zamanında sosyal medyada gezinmesini engellemek veya güvenlik politikalarını uygulamak için kullanılabilir.

URL filtreleme genellikle acl ve http_access yönergeleri kullanılarak yapılır. En yaygın yöntemler şunlardır:

*   Alan Adı Engelleme (dstdomain): Belirli alan adlarına veya alt alan adlarına erişimi engellemek için kullanılır.

acl blocked_domains dstdomain .facebook.com .twitter.com
http_access deny blocked_domains

*   URL Regex Engelleme (url_regex): URL'lerdeki belirli desenlere göre engelleme yapmak için kullanılır. Bu daha esnektir ve belirli anahtar kelimeleri içeren URL'leri engelleyebilir.

acl suspicious_urls url_regex -i “/etc/squid/suspicious_urls.txt”
http_access deny suspicious_urls

Bu örnekte, /etc/squid/suspicious_urls.txt dosyasına engellenecek URL desenleri eklenir. -i parametresi, büyük/küçük harfe duyarsız eşleşme sağlar.

Engelleme kurallarının, izin veren kurallardan önce gelmesi önemlidir. Örneğin, tüm yerel ağ kullanıcılarına izin veriyorsanız, engelleme kurallarını bu izinlerden önce yerleştirmelisiniz.

Bir vaka analizi düşünelim: Bir küçük işletme, çalışanlarının iş saatlerinde sosyal medya sitelerinde aşırı zaman geçirmesini engellemek istiyor. Squid proxy'si bu amaçla yapılandırılabilir. Öncelikle, kullanıcıları kimlik doğrulaması için zorunlu kılmak amacıyla NCSA kimlik doğrulaması kurulur. Her çalışana benzersiz bir kullanıcı adı ve şifre verilir. Ardından, squid.conf dosyasına facebook.com, twitter.com, instagram.com gibi alan adlarını engelleyen dstdomain ACL'leri ve http_access deny kuralları eklenir. Bu sayede, çalışanlar proxy'yi kullanmak istediklerinde kimliklerini doğrulamak zorunda kalırlar ve engellenen sitelere erişemezler. Bu, hem iş verimliliğini artırır hem de bant genişliği kullanımını optimize eder.

Başka bir senaryo ise bir okul laboratuvarıdır. Öğrencilerin zararlı veya dikkat dağıtıcı web sitelerine erişmesini engellemek için Squid kullanılır. Kimlik doğrulama, her öğrenciye özel bir hesapla oturum açmasını sağlayabilir. Ardından, url_regex kullanılarak belirli anahtar kelimeleri içeren veya uygunsuz içerik barındıran siteleri tespit eden bir filtreleme kuralı oluşturulabilir. Bu, öğrencilerin öğrenme ortamına odaklanmalarını sağlamaya yardımcı olur.

Bu ileri düzey yapılandırmalar, Squid proxy'yi sadece bir önbellekleme aracı olmaktan çıkarıp, güçlü bir ağ güvenliği ve yönetim çözümü haline getirir.

<h3>Squid Web Proxy'sini İstemci Cihazlarda Yapılandırma</h3>

Squid proxy'yi sunucunuza kurup yapılandırdıktan sonra, bu proxy'yi kullanacak olan istemci cihazların (bilgisayarlar, akıllı telefonlar vb.) da bu proxy'yi kullanacak şekilde ayarlanması gerekir. Bu işlem, her istemci cihazın işletim sisteminde veya web tarayıcısında proxy ayarlarını manuel olarak yapılandırmayı içerir.

Genel olarak, istemci cihazlardaki proxy ayarları, Squid sunucusunun IP adresini ve Squid'in dinlediği port numarasını (varsayılan olarak 3128) belirtmeyi gerektirir.

<h4>Windows İşletim Sisteminde Proxy Ayarları</h4>

Windows'ta proxy ayarlarını yapılandırmak için şu adımları izleyebilirsiniz:

1.  Ayarlar'ı açın (Windows tuşu + I).
2.  Ağ ve İnternet'e tıklayın.
3.  Sol menüden Proxy'yi seçin.
4.  "Manuel proxy kurulumu" bölümünde "Proxy sunucusu kullan" seçeneğini açın.
5.  "Adres" alanına Squid sunucunuzun IP adresini girin.
6.  "Bağlantı noktası" alanına Squid'in dinlediği port numarasını girin (varsayılan 3128).
7.  Eğer belirli sitelerin proxy kullanılmadan doğrudan erişmesini istiyorsanız, "Bu adresten başlayan URL'ler için proxy sunucusunu kullanma" kutucuğuna bu adresleri ekleyebilirsiniz.
8.  "Kaydet" düğmesine tıklayın.

Eğer Squid proxy'niz kimlik doğrulama gerektiriyorsa, ilk kez bir web sitesine erişmeye çalıştığınızda size kullanıcı adı ve şifre sorulacaktır.

<h4>macOS İşletim Sisteminde Proxy Ayarları</h4>

macOS'ta proxy ayarlarını yapılandırmak için:

1.  Sistem Tercihleri'ni açın.
2.  Ağ'a tıklayın.
3.  Sol taraftaki ağ bağlantıları listesinden, aktif olan bağlantınızı (örneğin, Wi-Fi veya Ethernet) seçin.
4.  Gelişmiş... düğmesine tıklayın.
5.  Proxy'ler sekmesine gidin.
6.  Listeden Web Proxy (HTTP) ve Güvenli Web Proxy (HTTPS) seçeneklerini işaretleyin.
7.  Her iki proxy türü için de "Web Proxy Sunucusu" alanına Squid sunucunuzun IP adresini ve port numarasını girin.
8.  Eğer kimlik doğrulama gerekiyorsa, "Proxy sunucusu için parola iste" seçeneğini işaretleyin ve gerekli bilgileri girin.
9.  Tamam'a ve ardından Uygula'ya tıklayın.

<h4>Linux İşletim Sisteminde Proxy Ayarları</h4>

Linux dağıtımlarında proxy ayarları genellikle masaüstü ortamına göre değişiklik gösterir, ancak temel prensip aynıdır. GNOME masaüstü ortamı için:

1.  Ayarlar'ı açın.
2.  Ağ'a tıklayın.
3.  Ağ Proxy'si bölümünde, "Elle" seçeneğini seçin.
4.  HTTP Proxy ve HTTPS Proxy alanlarına Squid sunucunuzun IP adresini ve port numarasını girin.
5.  Değişiklikleri uygulayın.

Komut satırı tabanlı sistemlerde veya belirli uygulamalar için proxy ayarları, genellikle ilgili uygulamanın yapılandırma dosyaları aracılığıyla veya ortam değişkenleri (http_proxy, https_proxy) kullanılarak yapılır. Örneğin, bir terminal oturumu için proxy'yi ayarlamak isterseniz:

bash
export http_proxy=”http://:3128/”
export https_proxy=”http://:3128/”

<h4>Mobil Cihazlarda Proxy Ayarları</h4>

Android ve iOS gibi mobil işletim sistemlerinde de proxy ayarları genellikle Wi-Fi bağlantı ayarlarına entegre edilmiştir. Bağlı olduğunuz Wi-Fi ağının ayarlarını düzenleyerek proxy sunucusunun IP adresini ve port numarasını girebilirsiniz.

Önemli Not: Eğer Squid proxy'niz kimlik doğrulama gerektiriyorsa, istemci cihazlarda bu bilgilerin doğru girildiğinden emin olun. Yanlış bilgiler, proxy'nin çalışmamasına neden olacaktır. Ayrıca, proxy ayarlarını yaptıktan sonra, bir web tarayıcısı açarak herhangi bir siteye erişmeye çalışın. Eğer erişim başarılı olursa ve beklenmedik bir şekilde engellenmiyorsa, proxy'niz doğru çalışıyor demektir. Eğer erişim sorunları yaşarsanız, hem sunucu tarafındaki Squid yapılandırmasını hem de istemci tarafındaki proxy ayarlarını tekrar kontrol edin.

<h3>Squid Proxy'nin Günlük Kayıtlarını (Log Files) İzleme ve Sorun Giderme</h3>

Herhangi bir sunucu yazılımında olduğu gibi, Squid proxy'nin de düzgün çalışıp çalışmadığını anlamak ve olası sorunları tespit etmek için günlük kayıtlarını (log files) düzenli olarak izlemek önemlidir. Squid, oldukça ayrıntılı günlük kayıtları tutar ve bu kayıtlar, önbellekleme performansı, erişim hataları, güvenlik ihlali girişimleri ve diğer önemli bilgileri anlamak için değerli bir kaynaktır.

Squid'in ana günlük dosyaları genellikle /var/log/squid/ dizininde bulunur. En önemli günlük dosyalarından bazıları şunlardır:

*   access.log: Bu dosya, Squid tarafından işlenen tüm istemci isteklerini kaydeder. Her satır, bir isteğin zaman damgasını, istemcinin IP adresini, isteğin ne olduğunu (GET, POST vb.), hedef URL'yi, isteğin sonucunu (izin verildi, reddedildi, önbellekten verildi vb.) ve ne kadar veri aktarıldığını içerir. Bu dosya, hangi kullanıcıların hangi sitelere eriştiğini ve proxy'nin bu isteklere nasıl yanıt verdiğini anlamak için kritiktir.
*   cache.log: Bu dosya, Squid'in çalışma zamanı bilgileri, başlatma ve durdurma mesajları, önbellekleme ile ilgili hatalar ve genel sistem bilgileri gibi daha operasyonel bilgileri içerir. Olası yapılandırma hatalarını veya servis ile ilgili sorunları tespit etmek için bu dosya önemlidir.

Günlük dosyalarını izlemek için çeşitli komut satırı araçları kullanabilirsiniz:

*   tail: Bir dosyanın son satırlarını gerçek zamanlı olarak görmek için kullanılır. Örneğin, access.log dosyasının son 100 satırını görmek için:

bash
sudo tail -n 100 /var/log/squid/access.log

Gerçek zamanlı olarak izlemek için -f parametresini kullanabilirsiniz:

bash
sudo tail -f /var/log/squid/access.log

Bu, dosya güncellendikçe yeni satırları otomatik olarak gösterecektir.

*   grep: Belirli desenleri veya kelimeleri içeren satırları filtrelemek için kullanılır. Örneğin, access.log dosyasında "ERROR" geçen satırları bulmak için:

bash
sudo grep “ERROR” /var/log/squid/access.log

Veya belirli bir IP adresinden gelen istekleri bulmak için:

bash
sudo grep “192.168.1.105” /var/log/squid/access.log
“

* less`: Büyük günlük dosyalarını sayfa sayfa görüntülemek için kullanılır. Dosya içinde arama yapma

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.