Squid Server imiza Biraz Ozellik ekleyelim ister misiniz?

Başlatan sdincsoy, 14 Kasım 2009 - 00:28:16

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

sdincsoy

Merhaba ,
Bu dökümhanda sizlere  Squid konusunda bildiklerimi aktarmaya çalışacağım.

Öncelikle squid.conf dosyamızın yedeğini alalım;

cp /etc/squid/squid.conf /etc/squid/squid.conf.orj

Squid.conf dosyamızı sadeleştirelim;
sed -i "/^#/d;/^ *$/d" /etc/squid/squid.conf

nano /etc/squid/squid.conf

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.2.0/24 # Benim Ağım
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow localnet
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128 transparent

hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid



squid.conf yukarıdaki gibi olacaktır.

Şimdi biz biraz Squid imizi özelleştirelim;

squid.conf dosyamızın en alt kısmına 1-2 ekleme yapacağız;

cache_dir diskd /var/cache 200 16 256  # 200 MB cache için ayırmış oluyoruz.

cache_mem 64 MB
   #Squid ne kadar ram kullansın. Kendi ram kapasitenize göre belirleyin;

maximum_object_size 10 MB

 #squid en fazla ne büyüklükte dosyaları cachelesin
cache_peer venus1.ttnet.net.tr         sibling   8080  3130
cache_peer venus2.ttnet.net.tr         sibling   8080  3130

#Başka proxylerin de cache ini kullansın

Zamana Gore Internet Erisimi Yasaklama
[/size][/size][/size][/font][/font][/size][/color]
Squid'i kullanarak zaman parametresine gore erisim kontrol listesi yaratabilirsiniz. Ornegin, client agindan sadece is saatleri icerisinde internet erisimine izin verebilirsiniz.
# bu kismi squid.conf dosyasinin ACL bolumunun alt kismina giriniz
#
acl localnet src 192.168.2.0/24
acl mesai_saatleri time M T W H F 9:00-17:00

#
# bu satiri squid.conf dosyasinda http_access bolumunun ustune giriniz
#
http_access allow localnet mesai_saatleri
veya sadece sabah erisim yetkisi vermek istiyorsaniz:
# bu kismi squid.conf dosyasinin ACL bolumunun alt kismina giriniz
#
acl sabah time 08:00-12:00
#
# bu satiri squid.conf dosyasinda http_access bolumunun ustune giriniz
#
http_access allow sabah

IP Adresine Gore Internet Erisimi Yasaklama
[/size]
[/color]
192.168.2.0/24 agindaki kullanicilara web erisimini acmak icin:
#
# bu kismi squid.conf dosyasinin ACL bolumunun alt kismina giriniz
#
acl izinli_ipler src 192.168.2.0/24
#
# bu satiri squid.conf dosyasinda http_access bolumunun ustune giriniz
#
http_access allow izinli_ipler
Siz isterseniz istediğiniz ip leri girip tek tek ayarlama yapabilirsiniz. Ya da
/etc/squid/izinli_ipler (diye bir dosya oluşturup izin verecek olduğunuz ipleri bu dosya içerisine girin)
acl izinli_ipler src "/etc/squid/izinli_ipler" derseniz daha sonra nerde ne yaptım diye aramazsınız.
Yasak Kelimeler Belirterek Yasaklama
[/color]
Öncelikle /etc/squid/yasak_kelimeler (diye bir dosya oluşturup bu dosyanin içine yasaklayacak oldugumuz gelimeleri girelim.)
Sonra ;

# bu kismi squid.conf dosyasinin ACL bolumunun alt kismina giriniz
#
acl yasak_kelimeler src "/etc/squid/yasak_kelimeler"
#
# bu satiri squid.conf dosyasinda http_access bolumunun ustune giriniz
#
http_access deny yasak_kelimeler

Video/Audio Dosyalarinin Indirilmesini Yasaklama
Asagidaki kurallar, erkaN kaplaN kullanici adli arkadasin Video/Audio dosyalarinin indirilmesinin yasaklanmasi icin postaladigi bir mesajdan alintidir.
#
# bu kismi squid.conf dosyasinin ACL bolumunun alt kismina giriniz
#
acl BlockExt url_regex -i \.mp3$ \.asx$ \.wma$ \.wmv$ \.avi$ \.mpeg$ \.mpg$ \.qt$ \.ram$ \.rm$ \.iso$ \.wav$ \.exe$
#
# bu satiri squid.conf dosyasinda http_access bolumunun ustune giriniz
#
http_access deny BlockExt all

MSN Erisimi Yasaklama
# bu kismi squid.conf dosyasinin ACL bolumunun alt kismina giriniz
#
acl msn_engelli_ipler src "/etc/squid/msn_engelli_ipler"
acl msnmessenger url_regex -i gateway.dll

#
# bu satiri squid.conf dosyasinda http_access bolumunun ustune giriniz
#
http_access deny msn_engellli_ipler msnmessenger

Gerçi firewall msn portlarini kapatarak da bu sonuca ulaşabiliriz.

NCSA Kullanarak Sifre Yetkilendirmesi
[/size][/color]
Squid'i kullanicilara baglanti yapacaklarinda kullanici adi ve sifre soracak sekilde ayarlayabilirsiniz. Squid, NCSA uyumlu sifrelenmis sifre dosyasini okuyabilen ncsa_auth uygulamasiyla beraber gelmektedir. Siz isterseniz LDAP Authentication da kullanabilirsiniz. Yani sisteminizde bir Windows Active directory niz var ise ordaki kullanıcı database ini kullandırtabilirsiniz. Bunun için  google da aratmanız yeterli olur.
Sifreleri olusturabilmek icin Apache ile birlikte gelen htpasswd uygulamasini kullanabilirsiniz. Bunun için server iniza apache kurmanız gerekmektedir.
Asagida ornek verilmistir:
1) Sifre dosyasini, adi /etc/squid/squid_passwd sekilde yaratalim ve dosyanin yetkilerini herkesin okuyabilecegi sekilde degistirelim.
# touch /etc/squid/squid_passwd
# chmod o+r /etc/squid/squid_passwd

2) htpasswd uygulamasini kullanarak kullanici ekleyelim. NOT: Squid'i yeniden baslatmadan ekledigimiz her kullanici sisteme dahil edilecektir.
# htpasswd /etc/squid/squid_passwd sdincsoy
New password:
Re-type new password:
Adding password for user sdincsoy

3) rpm komutunu kullanarak ncsa_auth dosyasinin yerini belirleyelim.
# rpm -ql squid | grep ncsa
/usr/lib/squid/ncsa_auth

4) squid.conf dosyasina ncsa_auth uygulamasini tanimlayalim.
#
# Burayi auth_param kismina ekleyin
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
 
#
# Burayi ACL bolumunun sonuna ekleyin
#
acl ncsa_users proxy_auth REQUIRED
 
#
# Burayi http_access kisminin ustune ekleyin
#
http_access allow ncsa_users
5) Asagidaki tanimlar, sifre yetkilendirmesi ister ve sadece is saatleri icerisinde internete erisime izin verir. Tanimlarin sirasi cok onemlidir.
#
# Burayi auth_param kismina ekleyin
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
 
#
# Burayi ACL bolumunun sonuna ekleyin
#
acl ncsa_users proxy_auth REQUIRED
acl mesai_saatleri time M T W H F 9:00-17:00

#
# Burayi http_access kisminin ustune ekleyin
#
http_access allow ncsa_users mesai_saatleri
Degisiklerden sonra Squid servisini yeniden baslatin.
Mime Type Kullanarak Application Block
# bu kismi squid.conf dosyasinin ACL bolumunun alt kismina giriniz
acl denied_mime req_mime_type -i ^video/x-msvideo$
acl denied_mime req_mime_type -i ^video/mpeg$
acl denied_mime req_mime_type -i ^video/quicktime$

# bu satiri squid.conf dosyasinda http_access bolumunun ustune giriniz
http_access deny denied_mime
Siz örnekleri çoğaltabilirsiniz. Ben önfikir olması açısından basit örnekler yaptim.

Bu dökümhanı 3-4 aylık birikim sonucu çoğunlukla karışık yabancı sitelerden aldım arkadaşlar. Kısacası sağdan soldan aldığım dökümhanları birleştirdim. Değişik yerlerden 3-5 satır ala ala bu kaynağı oluşturdum. Yararlandığım siteleri hatırlamıyorum. Çünkü ordan burdan satırları birleştirip txt olarak kayıt ettiğim dosyalardı.

Not: Lütfen mesaj atarken kodlar icin (#) kod ekle bölümünü kullaniniz.

heartsmagic

Eline sağlık @sdincsoy. Ah bir de kod, alıntı gibi etiketleri de kullansaymışsın :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

sdincsoy


Bunlar daha önce de belirttiğim gibi 3-5 ay belki daha eski, ubuntu server ile ilk haşır neşir olduğum zamanlarda google da arayıp ve bulduğum howto lari okuyarak birleştirdiğim ve deneyip çalıştırdığım dökümhanların birleşmesinden kaynaklanıyor. Ben bu dökümhanları kendi pc  me dökümhan olarak kaydedip bir kenara koymuştum. Tabii sadece kendim okurum diye düşündüğümden nereden aldıklarımı yazmamışım.
Forumda bununla ilgili çok soru soruluyor diye hepsini birleştirip koymak istedim.
Keşke bilsem nereden aldım bu dökümhanları ?

Ne diyeyim google sağolsun. :D

kuleyni

@heartsmagic yazdığın kodları etiket içine alman gerektiğinden bahsetmiş galiba.

Yazılacak olan kodu şu şekilde yazmak:

.......................... 

konuyu yazdığınız yerdeki # butonunu kullanabilirsiniz ;)

sdincsoy


heartsmagic

Evet kod ve alıntı derken forumdaki özellikleri kast etmiştim ben. Gerçi kaynak neresi bilsek o da fena olmazmış tabii :)

Özellikle komutlar için falanca komut, dosya içerikleri için de
Alıntı Yapfalanca dosya
güzel olacaktır.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

localhost

Alıntı yapılan: heartsmagic - 14 Kasım 2009 - 00:41:15
Eline sağlık @sdincsoy. Ah bir de kod, alıntı gibi etiketleri de kullansaymışsın :)

Düzenledim.... :)
Linux LPIC1 - MCSA

sdincsoy

localhost teşekkür ederim.
Bundan sonra bu formatta hazılamaya özen gösteririm.

ubuntucuyum

Selamlar.

1 türlü mantığını oturtamadım. yardımcı olurmusunuz.

şöyle başlayalım.

internet ve msn kapalı olacak.
2 gurubum olcak.
1. gurup mesai saatlerinde ve günlerinde sadece edu.tr, gov.tr, com.tr gibi sitelere giricek.
1. grup mesai dışı saatlerinde ve günlerinde herşey serbest.
2.gurup her zaman herşey serbest.
2.grubun mac adresleri elimde.


yardımlarınızı bekliyorum....
Teşekkürler.

localhost

Alıntı yapılan: ubuntucuyum - 18 Mayıs 2010 - 19:20:09
Selamlar.

1 türlü mantığını oturtamadım. yardımcı olurmusunuz.

şöyle başlayalım.

internet ve msn kapalı olacak.
2 gurubum olcak.
1. gurup mesai saatlerinde ve günlerinde sadece edu.tr, gov.tr, com.tr gibi sitelere giricek.
1. grup mesai dışı saatlerinde ve günlerinde * her şey serbest.
2.gurup her zaman * her şey serbest.
2.grubun mac adresleri elimde.


yardımlarınızı bekliyorum....
Teşekkürler.

Asagidaki link isinize yarar.
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch32_:_Controlling_Web_Access_with_Squid
Linux LPIC1 - MCSA

teciman

Merhaba arkadaşlar öncelikle    sdincsoy a    böyle güzel bir yazı hazırladığı  için teşekkür ederim. Squid3   te     https  sitelere örneğin hotmail ve gmail  gibi  sitelere erişemiyorum. Bu konuda yardımcı olabilirmisiniz ?