Serverul Squid etse derivat din proiectul Harvest inceput de ARPA, fiind dezvoltat in continuare de National Laboratory for Applied Network Research.
Suporta protocoalele http,https,ftp si gopher.
Squid ne poate ajuta sa limitam utilizarea bandwidth-ului disponibil, pentru a reduce cheltuielile sau a nu supraancarca reteaua.
Acest lucru e posibil datorita faptului ca:
# Pastrarea paginilor web, imaginilor si altor tipurui de fisiere pe hard-disk.
In caz ca cineva se adreseaza la una si aceeasi pagina - ea nu va mai fi accesata de pe internet, ci luata din cash. Cu ajutorul acestei functii poate fi economisita in mediu 30% din banda (depinde si de site-urile vizitate, si alti parametri).
# In afara de aceasta putem folosi functia delay pool pentru a limita accesul catre unele site-uri (de exemplu care contin in url cuvantul porno) sau interzice download-ul unor anumite tipuri de fisiere.
Downloadam sursele de pe site-ul oficial - www.squid-cache.org
1.Instalare -
tar -xjvf squid-2.5.STABLE3.tar.bz2
cd squid-2.5.STABLE3
CC="gcc" \
CFLAGS="-O3 -march=i686 -funroll-loops -fomit-frame-pointer" \
./configure \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/sbin \
--libexecdir=/usr/lib/squid \
--sysconfdir=/etc/squid \
--enable-delay-pools \
--enable-cache-digests \
--enable-poll \
--disable-ident-lookups \
--enable-truncate \
--enable-xmalloc-statistics \
--enable-linux-netfilter \
--enable-stacktraces && make all && make install
2. Pentru a creste performanta squid, e nevoie de o partitie, sau daca nu e posibil - cream un director
cache.
mkdir /cache
Cel mai potrivit ar fi alocarea squid-ului un hard disk SCSI.
Adaugam userul squid si grupul squid, fara shell (pentru a nu rula proxy serverul ca root)
groupadd squid
useradd -d /cache -s /sbin/nologin -g squid squid
chown -R squid:squid /cache
Cream directorul /var/log/squid , cu proprietarul - squid
mkdir /var/log/squid
chown squid:squid /var/log/squid
3. Configurare:
In continuare voi prezenta structura minima a fisierului /etc/squid/squid.conf
#####################################################
# Portul si adresa ip pe care va astepta conexiuni squid
http_port 192.168.1.1:8080
# Directorul in care se va afla cache-ul si dimensiunea lui in Mb
#(in cazul de mai jos - 6000 mb)
cache_dir ufs /cache 6000 16 256
# Userul si grupul sub care va rula serverul squid
cache_effective_user squid
cache_effective_group squid
#Portul pe care squid va trimite si primi cereri catre cache a altor proxy servere vecine
#Daca nu mai avem alte proxy, specificam 0
icp_port 0
# Cream acl-urile (acess control list):
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/8
acl lan src 192.168.1.0/24 #clientii proxy serverului nostru
#Paginile ce se creeaza dinamic vor fi accesate direct de la sursa
hierarchy_stoplist cgi-bin php asp ?
# Obiectele create dinamic nu vor fi salvate in cache
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
# Permitem accesul de la masina locala(daca este cazul)
http_access allow localhost
# Permitem calculatoarelor din reteaua locala sa
# utilizeze proxy serverul
http_access allow lan
# Interzicem celorlalti sa acceseze squid-ul
http_access deny all
# Specificam unde squid va pastra logurile
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
# Pidul procesului
pid_filename /var/run/squid.pid
#####################################################
Aceasta este configuratia minima pentru ca squid sa ruleze.
Initializam cache-ul prin comanda:
squid -f /etc/squid/squid.conf -z
Dasa primiti un mesaj de tipul:
2003/08/11 20:30:28| aclParseIpData: WARNING: Netmask masks away part of the specified IP in '127.0.0.1/8'
nu va speriati , nu este o eroare, ci o avertizare.
Prima data pornim squid-ul cu comanda:
squid -NDCd1
pentru a vedea eventualele mesaje de eroare.Daca totul e ok - avem mesajul:
2003/08/11 20:30:29| Ready to serve requests.
Squid este gata pentru a accepta conexiuni.
Adaugam in scripturile de initiere si oprire a sistemului ca squid sa porneasca , respectiv sa opreasca la startul si oprirea calculatorului.
Si sa nu uitam sa inchidem portul 8080 pentru conexiuni dinafara cu ajutorul firewall-ului, si sa-l lasam deschis pentru clientii din retea.Sursa