Squid’in genel ayarları ve squid ile basit erişim izinlerinin ele alacağız.İşlemler öncesi eğer sistem üzerinde SElinux yapılandırması varsa squid’in çalışması için aşağıdaki kuralı girmemiz gerekiyor.
setsebool -P squid_connect_any 1
Squid, sistem her reboot oluşunda otomatik başlasın.
chkconfig squid on
/et/rc.d/init.d isimli klasöre geçip startup’a eklediğimiz servisi kontrol edelim.
[root@matrix init.d]# ls -l | grep 'squid' & chkconfig --list | grep 'squid'
[1] 25893 -rwxr-xr-x 1 root root 4022 Mar 31 2010 squid squid 0:off 1:off 2:on 3:on 4:on 5:on 6:off [1]+ Done ls --color=tty -l | grep 'squid'
SQUID’in temel konfigürasyon dosyası: /etc/squid/squid.conf
http_port 3128 #Sistem içerisinde , 1100 üzeri listening olmayan bir tcp port'da girilebilir. visible_hostname localhost.localdomain acl lan_net src 192.168.219.0/24 (mevcut C class subnetimizi belirtiliyoruz.) acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8
Dosya içerisinde yapılan işlemlerin aktif olması için aşağıdaki komutları çalıştırmalısınız.
[root@matrix ~]#
service squid stop Stopping squid: ................
[ OK ]
[root@matrix ~]# squid -z 2010/12/30 15:15:57| Creating Swap Directories
[root@matrix ~]# service squid start Starting squid: .
[ OK ]
Access Control Lists(Erişim kontrol listeleri)
- Proxy sunucu üzerinden engelsiz ve direk erişim sağlamak.
http_access allow localhost http_access allow all
- Proxy sunucu üzerinden kısıtlı erişim sağlamak.
http_access allow localhost acl block-sites dstdomain "/root/sites.squid" http_access deny block-sites #sites.squid dosyasina erişilmesini istemediğiniz siteleri topluca girebiliriz. acl blocksite dstdomain xxx.com #Sadece ilgili ana domain'e yapılacak erişimler bloklandı. acl blocksites dstdomain .xxx.com #xxx.com ve o domaine ait olan tüm subdomainlere yapılabilecek erişim engellendi. http_access deny blocksite
IP bazli ACL erişimleri aşağıdaki tanımlara göre oluşturabilir.
# acl aclname src ip-address/netmask ... (clients IP address) # acl aclname src addr1-addr2/netmask ... (range of addresses) # acl aclname dst ip-address/netmask ... (URL host's IP address) # acl aclname myip ip-address/netmask ... (local socket IP address) # acl aclname arp mac-address ... (xx:xx:xx:xx:xx:xx notation)
Arp erişim işlemleri için ön bilgi.
# # The arp ACL requires the special configure option --enable-arp-acl. # # Furthermore, the arp ACL code is not portable to all operating systems. # # It works on Linux, Solaris, FreeBSD and some other *BSD variants.
Eğer local’deki clientler IPtables Firewall üzerinden dış dünya ile haberleşiyorlarsa, IPtables’a aşağıdaki kuralı girerek 80.port ile yapacaklari tum requestleri squid üzerinden geçirebilirsiniz.Dolayısıyla iç network trafiği loglanarak belirlenen kurallar ile dışarı çıkacaktır.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT \ --to-ports 3128
SQUID’e ait dizinler
/etc/squid : Squid'in temel konfigürasyon dosyalarının bulunduğu klasör. /var/log/squidd/ : Genel log dosyalarının bulunduğu klasör. /var/spool/squid/ : Squid tarafindan loglanan http erişimleri. /usr/sbin/squid : Squid'in ana prosesi) Squidguard veya Dansguardian isimli uygulamalardan birini sisteme enregre ederek squid sunucunuzu bir grafik arayüzü(gui) ile daha rahat ve geniş kapsamlı yönetebilirsiniz.
Referanslar:
http://www.squid-cache.org/Doc/
http://dansguardian.org/?page=documentation
http://www.squidguard.org/Doc/