1. SQUID
proxy http
Aquest document ha estat creat per Jordi Clopés Esteban
i està protegit per la llicencia Creative Commons by-sa 3.0
Twitter @jordiclopes
jordiclopes@gmail.com
2. QUÈ ÉS L'SQUID?
L'Squid és un servei de proxy (intermediari) que permet
contralar l'accés http de la nostra xarxa.
Amb Squid podrem:
●determinar qui pot accedir a internet
●quines webs estan permeses
●veure a on accedeixen les màquines de la nostra LAN
●tancar l'accés a msn i a determinats fitxers.
●cachejar les webs i accelerar la navegació.
●I molt més.
5. FITXERS DE CONFIGURACIÓ
El fitxer de configuració principal està a:
/etc/squid3/squid.conf
Els logs estan a:
/var/log/squid3/
I el servei s'inicia i s'apaga a:
/etc/init.d/squid3 start/stop/restart/reload
6. SQUID.CONF
Podem netejar els comentaris del fitxer fent:
cat squid.conf | grep -v '^#|^$|^;' > squid.
sense_comentaris
Podem consultar al manual d'squid les referències del fitxer:
http://www.squid-cache.org/Versions/v3/3.0/cfgman/
7. DEFINIM L'ESPAI DE CACHE
A l'squid.conf afegim:
cache_mem 750 MB
cache_dir ufs /var/spool/squid3 10000 16 256
8. COMPROVAR LA SINTAXI
Per comprovar si tenim correctament escrit el fitxer de configuració
l'squid té aquesta eina:
squid3 -k parse
9. ACL: LOCALHOST
L'Squid funciona amb ACLs (llistes de control d'accés) que defineixen,
per exemple, quina és la xarxa local, quines ips estan permeses,
quines webs permetem, etc.
Més tard sobre aquestes ACLs especificarem que volem fer.
Exemple:
Creem la ACL per la màquina local:
acl localhost src 127.0.0.1/32
Permetem l'accés http a la màquina local:
http_access allow localhost
10. ACL:DEFINIR LA LAN
Podem definir quin rang IP està autoritzat per utilitzar el proxy:
acl la_meva_lan src 192.168.10.0/24
http_access allow la_meva_lan
11. ACL: NAVEGADORS
També podem definir l'ús d'un únic navegador:
acl firefox browser -i firefox
http_access deny !firefox
Navegadors:
Internet Explorer = ie
Google Chrome = chrome
Opera = chrome
12. ACL:NO CACHEJAR UN SITE
acl gmail dstdomain .gmail.com
always_direct allow gmail
13. RESTRINGIR UNA PARAULA
Podem restringir una paraula de qualsevol cerca: Per exemple
la paraula porno:
acl paraula_restringida url_regex porno
acl la_meva_lan src 192.168.0.0/24
http_access deny paraula_restringida
http_access allow la_meva_lan
http_access deny all
14. RESTRINGIR LLISTAT DE
PARAULES
Seguint l'exemple anterior podem canviar:
acl paraula_restringida url_regex porno
per
acl paraula_restringida url_regex "/etc/squid3/llistat_de_paraules"
On llistat_de_paraules serà el fitxer on guardem totes les paraules. Una paraula per linia.
15. RESTRINGIR LLISTAT DE WEBS
Similar a l'exemple anterior, podem restringir un llistat de webs:
acl webs_restringides url_regex -i "/etc/squid3/llistat_de_webs"
http_access deny webs_restringides
16. MOSTRAR ERRORS EN CATALÀ
Cal afegir a l'squid.conf:
Si volem els errors en català:
error_directory /usr/share/squid3/errors/Catalan/
Si volem els errors en castellà:
error_directory /usr/share/squid3/errors/Spanish/
17. ACCÉS SEGONS HORARI
acl FOO src 10.1.2.3 10.1.2.4
acl WORKING time MTWHF 08:30-17:30
http_access allow FOO WORKING
http_access deny FOO
18. CONFIGURAR EL NAVEGADOR
Bàsicament existeixen dos tipus de proxys http:
●No transparents (requereixen la configuració de cada
navegador web)
●Transparents (no requereixen configurar el navegador però
cal que el tràfic web passi a través d'ells)
19. CONFIGURAR EL NAVEGADOR
A Firefox anem a Herramientas --> Opciones -->
Avanzado-->Red-->Configuración
21. PROXY TRANSPARENT
A l'squid.conf modiquem:
http_port 3128 transparent
Cal activar l'ip_forward:
echo "1" >/proc/sys/net/ipv4/ip_forward
I redireccionar el tràfic del port 80 al 3128:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
REDIRECT --to-port 3128
(tot en la mateixa linia!)
22. EXECUTAR SCRIPT A L'INICI
Per executar comandes a l'iniciar el sistema cal afegir les
comandes a /etc/rc.local
En el nostre cas per activar l'enrutament i el redirecionament
de ports cada vegada que el servidor s'iniciï, caldrà afegir al
fitxer /etc/rc.local:
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
REDIRECT --to-port 3128