User Tools

Site Tools


squid_proxy_server

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

squid_proxy_server [2017/04/28 10:25] (current)
Line 1: Line 1:
 +\\
 +====== Opste informacije ======
 +
 +Ovaj dokument opisuje kako da podignete Squid Proxy Server za vas LAN koristeci FreeBSD i Squid. Informacije vezane za konfiguracioni fajl naravno nisu sveobuhvatne. Postoji jos dosta toga sto cete pozeleti da uradite na neki drugi nacin, ali ja koristim prilicno istu instalaciju za otprilike 100 korisnika i do sada me je veoma dobro sluzila. Isto tako, necu ici u detalje vezano za konfigurisanje kes (cashe) menadzera ovde. Samo jednostavni Squid Proxy Caching za vas LAN.
 +Potrebno
 +
 +  -Sveza instalacija FreeBSD 6.1 RELEASE sistema.
 +  -Azuirano drvo portova.
 +  -Vas omiljeni uredjivac teksta.
 +====== Instalacija ======
 +
 +Prilikom instalacije FreeBSD OS-a za koriscenje sa Squid-om, ovako sam podelio particije:
 +
 +  512M    /
 +  512M    /tmp
 +  1024M   swap
 +  5G      /var
 +  15G     /usr
 +  ~58G    /squidcache
 +
 +Bolje je da kes stavite na dodatni disk. Bolje bi bilo da radi sa super brzog hard diska. Jos bolje bi bilo da kes radi sa nekoliko brzih SCSI diskova konfigurisanih u RAID konfiguraciji. Sve ovo ce veoma povoljno uticati na performanse,​ ali ja sam morao da radim sa onim sto sam imao.
 +
 +  #cd /​usr/​ports/​www/​squid
 +  #make install clean
 +
 +Prilikom instalacije Squid-a bicete upitani da odaberete nekoliko opcija – ja sam dodatno cekirao SQUID_LARGEFILE zajedno sa onim sto je bilo cekirano po defaultu. Pretpostavimo da ce Squid biti korektno instaliran ovde.
 +====== Konfiguracija ======
 +
 +  #cd /​usr/​local/​etc/​squid/​
 +  #echo '​squid_enable="​YES"'​ >> /​etc/​rc.conf
 +
 +|Beleska: ​ Ako fajl squid.conf ne postoji, kopirajte ga iz .default fajla|
 +
 +  #cp squid.conf.default squid.conf
 +
 +Sada trebamo da konfigurisemo squid.conf fajl da bi odgovarao nasim potrebama. Taj fajl je stvarno masivan i postoji dosta opcija za konfigurisanje. Ja licno, menjam samo nekoliko unosa.
 +
 +Otvorite ''/​usr/​local/​etc/​squid/​squid.conf''​ kao root i postarajte se da vas konfiguracioni fajl sadrzi ove unose:
 +<​code>​
 +######​CONFIG START
 +http_port 3128
 +hierarchy_stoplist cgi-bin ?
 +acl QUERY urlpath_regex cgi-bin ?
 +no_cache deny QUERY
 +cache_mem 8 MB
 +maximum_object_size 50960 KB
 +maximum_object_size_in_memory 16 KB
 +cache_dir diskd /​squidcache/​squid/​cache 80000 16 256
 +cache_access_log /​var/​log/​squid/​access.log
 +cache_log none
 +cache_store_log none
 +pid_filename /​var/​run/​squid.pid
 +hosts_file /etc/hosts
 +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
 +refresh_pattern ^ftp: 1440 20% 10080
 +refresh_pattern ^gopher: 1440 0% 1440
 +refresh_pattern . 0 20% 10080
 +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
 +acl SSL_ports port 443 563
 +acl Safe_ports port 80 # http
 +acl Safe_ports port 8080 #also http
 +acl Safe_ports port 21 # ftp
 +acl Safe_ports port 443 563 # https, snews
 +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 CONNECT method CONNECT
 +acl blacklist dstdomain "/​usr/​local/​etc/​squid/​blacklist.txt"​
 +http_access deny blacklist
 +http_access allow manager
 +http_access deny !Safe_ports
 +http_access deny CONNECT !SSL_ports
 +#change below 10.0.1.0/24 to what matches your LAN IP address space
 +acl our_networks src 10.0.1.0/24
 +http_access allow our_networks
 +http_access allow localhost
 +http_access deny all
 +http_reply_access allow all
 +icp_access allow all
 +cache_mgr you@somedomain.com
 +cache_effective_user squid
 +visible_hostname proxy.yourdomain.com
 +cachemgr_passwd secret all
 +coredump_dir /​squidcache/​coredump
 +######​CONFIG END
 +</​code>​
 +Sada, sacuvajte promene koje ste uneli u squid.conf fajl. Onda kreirajte direktorijume koje smo definisali u nasem squid.conf fajlu
 +
 +  #mkdir /​squidcache/​squid
 +  #mkdir /​squidcache/​coredump/​
 +  #mkdir /​squidcache/​coredump/​cache
 +  #mkdir /​var/​log/​squid
 +  #touch /​usr/​local/​etc/​squid/​blacklist.txt
 +  #touch /​var/​run/​squid.pid
 +  #echo '​.123.com'​ >> /​usr/​local/​etc/​squid/​blacklist.txt
 +  #chown -R squid:squid /​usr/​local/​etc/​squid/​blacklist.txt
 +  #chown -R squid:squid /​var/​log/​squid
 +  #chown -R squid:squid /​var/​run/​squid.pid
 +  #chown -R squid:squid /squidcache
 +  #
 +  #squid -z #needed once to create the cache directories
 +  #reboot #to reboot the machine
 +
 +Ako se sve startovalo kako je i trebalo, trebalo bi da sada mozete da podesite bilo koji browser (unutar vaseg LAN-a) na proxy.yourdomain.com:​3128,​ i surfujete. Mozete zaviriti u access.log fajl tako sto cete otvoriti drugi terminal i pokrenuti sledece kao root:
 +
 +  #tail -f /​var/​log/​squid/​access.log
 +
 +|Beleska: ​ Secate se da ste podesili hosts_file ''/​etc/​hosts''​ u ''​squid.conf''​ fajlu? Procitajte[[http://​www.overridersworld.com/​english/?​p=11|sledece]] i popunite vas ''/​etc/​hosts''​ sa raznim tipovima ad-ware i spam-ware sajtova prosledjujuci ih do localhost-a. Ovo ce sacuvati dosta protoka zato sto ce squid blokirati sve lose stvari koje dolaze od vasih Korisnika.|
 +
 +Postavili smo i jednostavan acl unos da zabranimo pristup domenima koji su izlistani u ''/​usr/​local/​squid/​blacklist.txt''​. Fajl blacklist.txt sadrzi jedan domen po liniji. Nakon sto dodate domen u taj fajl kao npr .microsoft.com,​ svima ce biti zabranjen pristup za .microsoft.com. Naravno ovo moze biti i komplikovanije,​ ali za mene je ovo bilo dovoljno. Ranije sam neko vreme koristio preusmerivac koji se naziva squid guard, ali izgleda da se taj projekat vise ne odrzava a njegov naslednik je komercijalni softver. Mozete testirati acl unos tako sto cete pokusati da u browser-u otvorite ​ www.123.com. Trebalo bi da dobijete poruku od squid-a da je pristup zabranjen zato sto smo dodali .123.com u blacklist.txt fajl. Nakon sto napravite promene u bilo kojem konfiguracionom fajlu, morate da naterate squid da ponovo ucita svoj konfiguracioni fajl tako sto cete koristiti
 +
 +  #squid -k reconfigure
 +
 +Jos jedna stvar: Nakon nekoliko meseci koriscenja gore navedene instalacije,​ jednog jutra sam nasao da squid core dump-uje pri velikom opterecenju. Video sam nekoliko unosa u dmesg kao sto su:
 +
 +  Aug 25 10:14:02 hugin kernel: pid 672 (squid), uid 100: exited on signal 6 (core dumped)
 +  Aug 25 10:14:02 hugin squid[438]: Squid Parent: child process 672 exited due to signal 6
 +
 +Dodao sam sledece unose u ''/​boot/​loader.conf''​ da resim problem:
 +
 +  kern.ipc.msgmnb=8192
 +  kern.ipc.msgmni=40
 +  kern.ipc.msgseg=512
 +  kern.ipc.msgssz=64
 +  kern.ipc.msgtql=2048
 +
 +Nakon sto dodate ovo, restartujte server, i sve bi trebalo da bude u redu cak i pod velikim opterecenjima.
 +
 +Sada bi trebalo da imate potpuno funkcionalni proxy server. Nekako je cool da znate sta on ustvari radi, tako da sam jos instalirao i Apache i Webalizer.
 +
 +\\
 +\\
 +Izvor: http://​www.bsdguides.org/​guides/​freebsd/​networking/​squid.php
  
squid_proxy_server.txt · Last modified: 2017/04/28 10:25 (external edit)