..:::TeknoCinim:::..

Pfsense Squid Proxy Server Kurulumu Resimli Anlatım

Pfsense Squid Proxy Server Kurulumu Resimli Anlatım

Pfsense Squid Proxy Server Kurulumu

PfSense’i Proxy (vekil) sunucu olarak kullanmak için gereken squid paketinin kurulumunu ele alacağız. Bir önceki yazımızda Pfsense’in basit kurulumunu anlatmıştık .(Pfsense Kurulumu ve İlk Ayarları)

Kuruluma geçmeden önce squid konusuna kısaca değinmemiz gerekiyor. Squid Linux/unix kullanıcıları için geliştirilmiş proxy yani vekil sunucu yazılımıdır. Squid yazılımının asıl amacı ağ üzerinden gelen http trafiğini üzerine almak ve bizim belirlediğimiz kurallara göre kullanıcılara iletmektir.

Squid özellikle Linux/unix makinalarda çalışacak şekilde tasarlanmıştır. WinNT sürümü de varmış ama ben hiç kullanmadığım için yorum yapamayacağım. Squid yalnızca HTTP proxy’dir ama tranparent proxy ozelliği ile SSL, HTTPs, FTP, gibi protokolleri de destekleme özelliği kazandırabiliyoruz. Squid web sitelerini cache belleğe alır ve kullanıcılara buradan sunar bu sayede kullanıcılarımıza sağladığımız internet hizmetini koyduğumuz kurallar ile istediğimiz şekle döndürebiliriz. Daha önemlisi bant genişliğini verimli kullanmamızı sağlar buna küçük bir örnek vermemiz gerekirse:

Sabah gazete okumak için 300 kullanıcının milliyet.com’a girdiğini ve her birinin milliyet galeri vs.’de aynı anda zaman geçirmeye başladığını düşünelim. 4 Mbps bant genişliğimiz ile ne kadar kaliteli bir internet erişimi sağlayabiliriz, sizce yeterli olur mu?

Veya bir kullanıcının girip tüm bant genişliğini tüketerek download yaptığını düşünelim? Ne yapabiliriz ki?

Yapabileceğimiz şey squid’i devreye sokmaktır. Squid bir siteyi bir kez cache belleğe alacak ve WAN interface milliyet.com için yanlızca bir kez meşgul edilecektir. Aynı siteye tekrar girişlerde web sitesi kullanıcıya squid tarafından sunulacaktır. Bir başka faydası kullanıcı başına bant genişliği atanabilir ve bu sayede tüm bant genişliğini az sayıda kullanıcı işgal edemez. Temel olarak faydası budur.

Squid hakkında genel bir bilgiye sahip olduktan sonra Pfsense’i doğru şekilde kurduğumuzu varsayarak Squid kurulumuna başlıyoruz.

Web browser’ı açarak adres satırına Pfsense makinemizin LAN arayüz Ip’sini yazarak WebGui’ye erişiyoruz ve login oluyoruz.

Dashboard bizi karşıladıktan sonra System>Packages’e tıklıyoruz ve internet üzerinden yükleyebileceğimiz paketler için Package Manager’e erişiyoruz.

pfsense_squid_proxy_server_01

Yüklenebilir durumda olan paketleri burada bulunan Avaible Packages kısmında görebiliyoruz ve bu paketler içerisinden squid paketini buluyor ve bu paketin sağ hizasında bulunan “+” kutucuğuna tıklıyoruz. Bize gerçekten squid’i kurmak istiyor musunuz diyor bunu onaylıyoruz. Eğer bu paketleri göremiyorsanız ilk olarak WAN interface’de problem aramaya başlayın(Özellikle pfsense DNS adreslerini kontrol ediniz) . Çünkü paketler internet üzerinden indirilerek kuruluyor.

pfsense_squid_proxy_server_02


Kurulum sürecini görebilmemiz için sistem bizi otomatik olarak package installer bölümüne yönlendirecektir. Aşağıdaki şekilde kurulum sona erecektir.   pfsense_squid_proxy_server_03   Yukarıdaki gibi kurulumun başarılı olduğunu gördüğümüzde F5 ile sayfayı yeniliyoruz. Installed Packages’de squidin varlığına bakıyoruz ve Services sekmesi altına Proxy Server’in eklendiğini teyit ediyoruz. Bunları gördüysek kurulumumuz sorunsuz bir şekilde gerçekleşmiş demektir.   pfsense_squid_proxy_server_04   Services>Proxy Server’a tıklayarak Squid ayarlarına başlıyoruz.   pfsense_squid_proxy_server_05

Yukarıda neler yapmışız hemen açıklayama başlayalım: Proxy Interface : Proxy olarak dinlenecek ara yüzü burada belirtiyoruz. İçerideki kullanıcılara vekil olacağımız için LAN Interfaceyi seçiyoruz. Alluser on Interface : Buradaki kutuyu işaretlersek LAN Interface üzerinde bulunan bütün kullanıcıları seçmiş oluruz ve Access Control bölümünde kullanıcı seçmemize gerek kalmaz. Transparent Proxy : Transparent Proxy Linux türevi firewalllarda redirect yeteneğini kullanarak kullanıcı pc’sinde hiç ayar yapmadan internet trafiğini bir Proxy üzerinden geçirmek için kullanılan yöntemdir. Aktif hale getirirsek kullanıcı PC’lerinin web tarayıcılarındaki yerel ağ ayarlarına herhangi bir Proxy girmek zorunda kalmayız.Bu işlem otomatik olarak kullanıcıların outbound http/80 olarak Proxy atamasını gerçekleştiriliyor. Bypass proxy for these source IPs: Yazdığımız ip adreslerinin proxy uygulamasından etkilenmeden internete çıkmasını sağladığımız seçenektir. Bu özellik destination ip’leri içinde mevcuttur ama sadece internet hizmeti verilecekse uygulanmasına gerek yoktur. Enabled Logging : 5651 yasasına göre log tutma zorunluluğumuz var. Log Store Directory : Log dosyasının yolunu ‘/var/squid/logs’ şeklinde belirtiyoruz. Log Rotate : Kaç gün log tutulmasını istiyorsak o değeri giriyoruz. Sistem logları girdiğimiz değere eşit periyotlar ile yeniler. Proxy Port : Proxy hizmetinin hangi port üzerinden verileceğini belirlediğimiz porttur. Bizim yukarıda işaretleyerek aktif hale getirdiğimiz Transparent özelliği 80 no’lu porta gelen istekleri squid ‘in çalıştığı port olan 3128’e yönlendirecektir.(redirection). (Sonrasındaki hostname veya admin mail adresi kısmını açıklamıyorum herkes anlamıştır.) En altta bulunan custom options bölümüne ise script girerek bazı ayrıcalıklı durumlara çözüm getirebiliyoruz (Windows update vs gibi ) Bu ayarlar Proxy Server’in çalışması için yeterli temel ayarlardır. Ama bu kadar ayar sistemin performanslı çalışması için yetmez biz devam ediyoruz. Upstream proxy olayı proxy içinde proxy olayıdır bu sebeple orayı transit geçiyoruz. Cache management ile devam ediyoruz. pfsense_squid_proxy_server_06      
Hard Disk Cache Size : Squid cache dosyalarını tutmak için ne kadar bellek kullansın ? Bu sorunun cevabını buraya Mb. cinsinden giriyoruz. Bu değer donanıma göre değişiklik gösterebilir. Kullanıcı sayısı ve ağ yoğunluğuna göre de değişiklik gösterebilir. Ben 10000 Mb olarak cache belleği belirtiyorum. Ama HDD boyutuna yakın bir değer verebilirsiniz. Memory Cache Size : Bu değer cache belleğe tampon olacak RAM miktarıdır. Burada gireceğimiz değerin donanımın toplam RAM miktarının yarısından fazla olmaması gerekir. Benim PC’de 1024 Mb RAM var bu sebeple ben buraya 512 Mb değerini giriyorum. Bu arada pc sanal makine . Maximum Object Size: Cache’de tutulacak en büyük dosya boyutunu belirtir. Byte cinsinden ifade edilir. Ben 512000 girdim, yani en büyük dosya 512 Mb olsun. Level 1 Subdirectories: Bazıları buradaki değerlerin cache’e alınacak web sitelerinin alt site sayısını belirttiğini (site derinliği) iddia etse de bu tamamen bir uydurmadır. Amaç site derinliği değildir. Squid’in kendi disk yapılandırması ile ilgilidir. Cache için kullanılan directorylerin altında kaç tane daha directory yaratabileceğini belirler. Bu değer ne kadar büyük olursa, squid’in ilk açılışı o kadar uzun sürer. Hızınız ya da trafiğiniz 3-4 tane adsl bağlantıdan ibaretse bunu kafanıza takmayınız. Ufak bir network ve kuvvetli bir pfsense makinesi için 32 iyi bir değerdir. Bizim makine dandik bu sebeple 16 giriyoruz. Ve Access kontrol ile devam ediyoruz. pfsense_squid_proxy_server_07 Allowed Subnets : Proxy interface üzerinde birden fazla subnet varsa buraya dahil edilmelidir. Örn: Bizim yapımızda 192.168.137.0/24 subneti Proxy interface ile aynı subnettedir bu sebeple onu girmemize gerek yok. Ama 192.168.1.0/24 subnetinde olan kullanıcıların da Proxy üzerinden çıkmasını istiyorsak bu kısma dahil etmeliyiz. Ancak sistemimiz proxy arayüzününde içinde olduğu tek subnetten oluşuyorsa boş bırakabiliriz. Unrestricted IPs : Proxy’e uğramadan internete çıkış izni vereceğimiz kullanıcıların ip adreslerini buraya yazabiliriz. Banned host ddresses : İnternete çıkmasını yasaklamak istediğimiz ip adreslerini buraya yazabiliriz. White list ve Black List : Bu kısımlara site adresleri yazıyoruz . Resim üzerinde küçük açıklamalarını yazdım. Squid üzerinde site engellemek çok tercih ettiğimiz bir yöntem değil. Biz bu iş için Dansguardian’ı kullanacağız onu ise bir başka yazıda anlatacağım. Traffic Management ile devam ediyoruz: pfsense_squid_proxy_server_08   Maximum download size : Yerel ağ tarafında kullanıcıların toplamda ne kadar download yapacağını burada sınarlayabiliyoruz. Kb cinsinden gireceğimiz bu değer 0 olursa bu özellik pasif durumdadır.   Maximum Upload Size : Burada aynı şekilde upload değeri limitlenebilir. Buraya girilen değere dikkat edilmesi gerekir sonra herkes aramaya başlıyor (Sitelere girebildiğimiz halde internet bankacılık işlemlerini yapamıyoruz veya netten form dolduramıyoruz şeklinde şikayetler ) Çünkü kullanıcılar upload işlemine yanıt olarak. “ The request or reply is too large” hatası alıyorlar.   Overall bandwidth throttling : Saniyede yapılacak indirme hızını limitlemek için burayı kullanıyoruz. (Kbps cinsinden)   Per-Host Throttling : Yukarıda genel olarak hızı limitledik burada ise kullanıcı başına hız limitleyebiliyoruz. Değer yine kbps’dir.   Throttle only specific extensions : Burayı pasif durumda bırakırsak tüm dosya türleri devre dışı kalır. Kesinlikle işaretli konumda bırakıyoruz. Sonrasında aşağıdaki dosya türlerini işaret eden seçeneklere download/upload limit işlemi uygulayabiliriz.   Finish transfer if less than x KB remaining : Transfer edilecek dosya boyutu bizim buraya girdiğimiz değerden küçükse transfer işlemi tamamlanır.   Abort transfer if more than x KB remaining : Dosya bizim buraya yazdığımız değerden fazla ise transfer işlemi iptal edilecektir.   Finish transfer if more than x % finished : Transfer edilecek miktar buraya yazdığımız % cinsinden değeri geçerse transfer tamamlanır. Mesela bir dosya transferinde % 95 oldu ama limitlere takılıp iptal edildi. Bunu önlemek için bu sekmeyi kullanabiliriz.   (Auth.Settings ve Local user kısmını Squid, Windows LDAP uyumu konusunda anlatacağım.)   Bu noktadan itibaren squid kurulumunu tamamlamış olduk. Web browserı açıp bağlantı ayarlarında Proxy server adres ve port numarasını yazarsak nete artık Proxy üzerinden çıkabiliriz.   pfsense_squid_proxy_server_09

  NOT   : Eğer squid cache performansı sizi tatmin etmiyorsa network buffer size’ini artırabilirsiniz.

Bunun için : /boot/loader.conf dosyası içindeki kern.ipc.nmbclusters=”0″ satırındaki 0 değerini “32768″ yapabilirsiniz.

Bu değeri maximum 65536 olarak verebileceğinizi de unutmayın. Bu değişikliği yaparsanız makinenizin durumuna göre reboot süresi 20-30 dk ‘ya kadar uzayabilir.

Stabil bir yapınız varsa bu ayarı yapmanızı öneririm.

Eğer /boot/loader_conf dosyasının içi boş ise aşağıdaki gibi doldurursak makina adete uçar : autoboot_delay=”3″ vm.kmem_size=”435544320″ vm.kmem_size_max=”535544320″ kern.ipc.nmbclusters=”32768″

Diğer bir ufak performans ayarı ise : Stabil 2.0 sürümünden önceki dağıtımlar için :

Services – Proxy server – Cache management – Hard disk cache system : Ufs Tüm dağıtımlar için : System -> Advanced -> Sytem Tunables altındaki vfs.read_max=32 default değerini vfs.read_max=128 yaparsak performansımız artacaktır.

ZİYARETÇİ YORUMLARI - 1 YORUM
  1. halil dedi ki:

    teşekkürler hocam

BİR YORUM YAZ

This site uses Akismet to reduce spam. Learn how your comment data is processed.