Squid Proxy Server Kurulumu Ve Konfigürasyonu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bektas
    x-files
    x-files's avatar
    Kayıt Tarihi: 06/Eylül/2005
    Erkek

    SQUİD PROXY KURULUMU VE KONFİGÜRASYONU

    Merhaba bu makalede size Squid den bahsedeceğim. Peki Squid nedir ne işe yarar. Squid  HTTP ve FTP gibi web servisleri için ön bellekleme yapabilen ve internete çıkacak olan bilgisayarları kısıtlama ve filitreleme yapabilen bir prox serverdir. HTTP, HTTPS, FTP, TLS, SSL, Internet Gopher gibi farklı protokollerde çalışması ve özgür yazılım olmasından dolayı rağbet gören bir uygulama. Squid ilk başlarda unix türü işletim sistemlerinde çalışacak şekilde tasarlanmış olmasına karşın 2.7 versiyonundan sonra Windowsa da sıçrayarak çoğu IT yöneticilerin tercih ettiği bir proxy server haline geldi. Çalışma sistemini bir şema olarak bakarsak

    Şemada da özet geçecek olursak squid proxy sunucundan interneti filtreleyip bilgisayar kullanıcılarımızın bu server (aktif ederseniz cache belleği) üzerinden internete erişmelerini sağlıyoruz.

    SQUID PROXY İLE NELER YAPABİLİRİZ

    Squid proxy ile ağınıza bağlı bilgisayarların:

    1. Internete erişimlerini
    2. İnternete erişmeleri için kullanıcı adı şifre belirleme
    3. Internete erişim saatlerini, günlerini
    4. Belirlediğiniz sitelerin erişimlerini kapatmayı
    5. İstemediğiniz uzantıların indirilmemesi örneğin *.jpg *.mp4 *.zip vs vs.
    6. İnternetten indirilecek dosyaların boyutunu belirleme

    Dahada uzatılabilir ama ben bu makalede size bu 6 maddeyi nasıl yapabileceğinize değineceğim.

    KURULUM

    Kurulumu Centos 6,8 64 bit kurulu bir sunucuda gerçekleştireceğiz. Bir kaç komutla kurulumu tamamlayıp ondan sonra belli başlı konfigürasyonlara değineceğiz.

    İlk önce sunucumuzu bir güncelleyelim.

    yum update yum upgarade

    Güncellemeyi bitirdikten sonra kuruluma geçelim

    yum install squid -y

    Squid kurulumu tamam şu anda squidimiz aktif değil ilk önce ilk ayarlarımızı yapalım. Ip adresimiz üzerinden internete çıkılabilsin istediğimiz port numarsını belirleyelim. Vi editörü zor gelebilir size bunun için Nano editörünü kullanacağız. Sistemde kurulu değilse

    yum install nano -y

    Nano editör kurulumunu gerçekleştirdik. Şimdi squid.conf dosyamızı düzenlemeye geçebiliriz.

    nano /etc/squid/squid.conf

    Önce kendi adımız için bir tag belirliyoruz örnek zmoprox bu taga internet çıkış sağlayabilmesi için

    acl zmoprox src sunucu-ip-adresiniz

    Tagımızı tanımladık ip adresi atadık ve şimdi bu taga internet çıkışı verelim.

    http_access allow zmoprox

    Ana kurulum tamam diyebiliriz şimdi aşağıya doğru ok tuşları ile inelim port belirleyelim standart port olarak 3128 tanımlı olarak geliyor.

    # And finally deny all other access to this proxy

    http_access deny all   # deny allow yapper issuing proxiniz harks açık hale gelir. Eğer user giriş yapacaksanız ellemeyiniz.

    # Squid normally listens to port 3128

    http_port 3128 # istediğiniz herhangi boş bir port kullanılabilir. Alt alta port yazarak da yeni portlar ekleyebilirsiniz.

    Portumuz tamam şimdi sıra geldi squidi çalıştırmaya ve sunucunun her açılışında otomatik açılmasını sağlamaya.

    service squid start

     

    chkconfig squid on

    Herhangi bir yanlışlık olmadıysa proxy servisin başlaması lazım yukaraki gibi. Şimdi bilgisayarımızı proxy bağlantısını sağlayalım. Windows için internet explorer dan seçeneklere girip ip adresinizi ve port numaranızı tanımlayabilirsiniz.

    Mac-OS da ağ ayarlarına geliniz.

    Sunucumuzun ip adresini ve port numaramızı yazdıktan sonra Tamam butonuna artından uygula dediğimizde deneyelim internete çıkabiliyor muyuz?

    Evet hata sayfası karşıladı bizi demekki proxy serverimiz çalışıyor. Peki niye internete giremedik. Çünkü herkesin bağlanmasına izin vermedik. Nasıl açacağız bunu

    http_aces allow all

    Şu şekilde değiştirdiğimizde dosyayı kaydedip çıkalım ve squidi resetleyelim

    service squid restart

    Şimdi tekrar girmeye çalışalım internete herhangi bir sıkıntı olmadıysa internete girmiş olmanız lazım. Ip adresinizi öğrenmek için ipsorgula tarzı sitelere girip test edebilirsiniz. Bir sorun olmadıysa ip adresiniz olarak sunucunuzun adresi görünmesi gerekmektedir. Bu şekilde kalsa olmuyor mu? Olur ama sunucunuza herkes bağlanabilecek tanıdık tanımadık. Hatta sunucunuz üzerinden ddos saldırıları bile yapılabilir. Bu türkcell bedava internet kullanabilmek için proxy gerekiyor onun için bile kullanabilirler. Bu yüzden başımız ağrımasın diye kapatalım hemen geri allow u deny olarak değiştirip kaydedelim ardından squidi tekrar resetleyelim ki sağlama alalım kendimizi.

    Peki nasıl bağlanacağız tabiki kullanıcı oluşturarak.

    SQUIDE KULLANICI OLUŞTURMA

    Amacımız belirlediğimiz kullanıcıların proxy sunucumuza bağlanıp internete çıkabilmelerini sağlamak. Kullanıcı adı ve şifresi olmayanların bağlanmasını engellemek. İlk önce kullanıcı oluşturalım.

    [root@bektas ~]#  htpasswd -c  /etc/squid/passwd kullanıcı_adı

     

    New password:

    Re-type new password:

    Adding password for user kullanıcı_afı

    [root@bektas ~]# chmod o+r /etc/squid/passwd

     

    [root@bektas ~]# rpm -ql squid | grep ncsa_auth

     

    /usr/lib64/squid/ncsa_auth

    /usr/share/man/man8/ncsa_auth.8.gz

    Yukardaki komutlarla neler yaptık şimdi htpasswd ile kullanıcı oluşturuk şifre belirledik, squidin içindeki passwd dosyasına izin verdik chmod ile ncsa_auth dosyamızın yerini öğrendik.

    Eğer htpasswd komutu çalışmazsa sunucunuzda apache olmadığı içindir bunun için aşağıdaki komutu girip kurabilirsiniz. Kuruluysa aşağıdaki komutu kullanmanıza gerek yok.

    yum -y install httpd-tools

    Kullanıcı adımız tamam ncsa_auth dosyamızın nerde olduğunuda öğrendik. Şimdi bunları squide tanımlayalım

    #squid kullanici ayarlari

    auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd

    auth_param basic children 5

    auth_param basic realm Squid proxy-caching web server

    auth_param basic credentialsttl 2 hours

    auth_param basic casesensitive off

    # rolumuzu olusturalim

    acl ncsa_users proxy_auth REQUIRED

    # izin verelim

    http_access allow ncsa_users

    Yukardaki gibi düzenleyelim. Tekrar söylüyorum auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd sisteminiz 32 bitse sadece lib 64 bit ise lib64 dizinini seçin sağlam olsun diyorsanız yukarda da komutu girmiştim ya rpm -ql squid | grep ncsa_auth size tam yolu gösterecek o yolu kullanırsınız. Ardından squidi tekrar resetleyelim.

    service squid restart

    Şimdi internete girelim bizden şifre istemesi gerekiyor.

    Belirlediğimiz kullanıcı adı ve şifreyi girdikten sonra giriş sağlayabiliriz.

    İnternetti kullanan kullanıcıların internetten istemediğimiz dosyaları indirmelerini istemiyorsunuz. Söyleseniz de sizi dinlemeyeceklerdir. O zaman sizde squide söyleyin onlarda isteselerde indiremesinler. bunun için önce bir istemediğimiz dosyaların uzantılarını içeren bir liste hazırlayalım

    nano /etc/squid/yasakdosya

    İçine örnek olması mahiyetinde bu uzantıları girelim.

    \.[Jj][Pp][Gg]$

    \.[Pp][Nn][Gg]$

    \.[Mm][Pp][Gg]$

    \.[Mm][Pp][Ee][Gg]$

    \.[Mm][Pp]3$

    Kaydedip çıkalım. Ardından squid.conf dosyasına listemizi tanımlayalım.

    acl yasakd urlpath_regex “/etc/squid/yasakdosya”

    http_access deny yasakd

    Kaydedip çıktıktan sonra squidi resetleyelim

    service squid restart

    Test edelim çalışıyor mu diye?

    Gördüğünüz gibi fotoğraflar açılmadı linklerini yazarsanız da hata sayfası çıkacaktır.

    Peki istemediğimiz sitelere girmelerini nasıl engelleriz. Patron geldi size dedi bunlar akşama kadar facebookta gezeleyip duruyorlar. İş yapmıyorlar. Şunları engelle kimse girmesin derse ne yapacaksınız. Ya hosts dosyasından engelleyeceksiniz varsa bir güvenlik duvarınız ordan engel koyacaksınız yoksa squid den tanımlama yapacağız. Başlayalım. Önce engelleyeceğimiz sitelerin listesini hazırlayalım

    nano /etc/squid/blocksite

    Squide tanımlayalım dosyamızı. Şimdi squid https porotokolleri şifreli olduğu için pek randıman alınamıyor bu yüzden https için ayrı bir rol belirledim ama blockladığınız site listelerini aynı yerden alacak şekilde ayarladım aşağıdaki ekran alıntısı gibi yapınız

    nano /etc/squid/squid.conf

    acl httpsyasak dstdomain urlpath_regex “/etc/squid/blocksite”

    acl yasaksite dstdomain “/etc/squid/blocksite”

    http_access deny httpsyasak CONNECT

    http_access deny yasaksite

    Kaydedip çıktıktan sonra squid resetleyelim

    service squid restart

    Siteyi kontrol edelim giriyor mu?

    Gördüğünüz gibi siteye erişemedik. Peki bide HTTPS protokolüne bakalım girecek mi siteye.

    HTTPS protokolünüde kapattık. Yalnız şöyle bir sorun var https protokolünü kapattığım sitelerin hata sayfalarına yönelendirilmesini biraz meşakkatli olduğu için atladım sadece Siteye Ulaşılamıyor gibi bir hata sayfası çıkıyor.

    Şimdi de bilgisayar kullanıcılarının çalışma saatleri içinde yada belirleyeceğimiz günler ile saatler arasında internete girmelerini engelleyelim. Squid günleri de kısaltmış Günler şu şekilde:

    M Pazartesi
    T Salı
    W Çarşamba
    H Perşembe
    F Cuma
    A Cumartesi
    S Pazar
    D Tüm Hafta Boyu

    Hemen kuralımızı oluşturalım. Şöyle diyelim Pazardan Cumartesiye kadar Sabah 8:00 ile 11:59 arası 13:00 ile 16:59 arası internete giremesinler

    nano /etc/squid/squid.conf

    Dosyayı açalım aşağıdaki kurallardan birini yerleştirelim.

    acl oonce time M T W H F A 8:00-11:59
    acl osonra time M T W H F A 13:00-16:59

    # zmoprox hangi ag ismine engel koyacaksanız onu yazıyoruz sonra kuralli yaziyoruz
    http_access deny zmoprox oonce
    http_access deny zmoprox osonra

    Yada hergün belirlediğiniz saatlerde açıp kapattırabilirsiniz.

    acl hergun time 08:00-12:00

    http_access allow hergun

    Resetleyelimim squidi

    [code_scr]service squid restart[/code_sc]

    Ceche bellek oluşturalım. Peki bu ceche bellek ne işe yarayacak. Ofisinizde bilgisayar kullanıcılarının sıklıkla kullandığı belli başlı siteler var squid bunları tespit edip önbelleğine alıyor. Ofiste bu siteye her çağrı yapanlar için ön bellekten hızlı bir şekilde bilgisayar kullanıcılarına internet sayfalarını açıyor. Aslnda squid kullanma amaçlarından biri de bu bence.  Squid.conf dosyasını açalım

    nano /etc/squid/squid.conf

    Aşağı doğru inin sharp (#) işaretini siliniz burda 100 mb 16 dizin 256 dosya olarak belirtmiş.

    # Uncomment and adjust the following to add a disk cache directory.
    #cache_dir ufs /var/spool/squid 100 16 256

    Bizim hdd çok alan var biz biraz fazla yapalım mesela 2 gb olsun

    # Uncomment and adjust the following to add a disk cache directory.
    cache_dir ufs /var/spool/squid 2000 16 256

    Yukarda ki gibi düzenledik kaydedip çıktık. Squidi durduralım.

    service squid stop

    Ceche belleği oluşturalım

    squid -z

    Squidi çalıştıralım

    service squid start

    Eğer herhangi bir sorun olmadıysa squide start verdiğimizde bize şöyle bir yanıt vermesi gerekiyor

    init_cache_dir /var/spool/squid… Starting squid: . [ OK ]

    Cache belleğimiz oluştu ve başladı.

    Şimdi maximum dosya indirme limiti koyalım. Elemanlar giriyor internete başlıyorlar film indirmeye. İki kişi indirdi mi internet o an felç 😀

    en alta inelim

    reply_body_max_size 2 MB zmoprox

    squid -k reconfigure

     

    service squid restart

    Şimdi test edelim

    Malesef indirmemize izin vermedi kendileri.

    En son olarak da loga deyinelim. Malum kim nereye girdi hepsini kayıt altında tutuyor squidin tuttuğu loglar

    /var/log/squid/ altında görebilirsiniz

    access.log  cache.log  squid.out

    3 adet log dosyası mevcut. Logları bu şekilde biraz zor analiz edebilirsiniz http://www.squid-cache.org/Misc/log-analysis.html bu aderesten istediğiniz uygulamayı kullanıp logları daha kolay bir şekilde analiz etme imkanınız var. Kolay gelsin.

    Daha bir çok şey yazılabilir ama. İnternetten araştırarak bir çok bilgi edinebilirsiniz. Ama bence log tutmak ve şiresiz internete girişi engellemek için ideal. En azından kimin nereye girdiğini. İstemediğiniz filitrelemeler için ideal. Takılan olursa yine yardımcı olmaya çalışacağımı unutmayın.

    x-files tarafından 23/Ara/16 16:57 tarihinde düzenlenmiştir

    //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şoförsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Eline sağlık, çok güzel bir döküman olmuş.


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    motka
    motka's avatar
    Kayıt Tarihi: 28/Ekim/2012
    Erkek

    Eline sağlık hocam.Cok faydalı bir doküman olmuş.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KaptaN
    KaptaN's avatar
    Kayıt Tarihi: 30/Ağustos/2005
    Erkek

    Hocam  eline saglık diğer dökümanların gibi  buda çok  iyi olmuş

Toplam Hit: 1575 Toplam Mesaj: 4
server proxy squid