Post on 24-May-2015
SQUID
proxy http
Aquest document ha estat creat per Jordi Clopés Estebani està protegit per la llicencia Creative Commons by-sa 3.0Twitter @jordiclopesjordiclopes@gmail.com
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.
COM FUNCIONA?
INSTAL.LACIÓ
apt-get install squid3
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
SQUID.CONFPodem 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/
DEFINIM L'ESPAI DE CACHE
A l'squid.conf afegim:
cache_mem 750 MBcache_dir ufs /var/spool/squid3 10000 16 256
COMPROVAR LA SINTAXI
Per comprovar si tenim correctament escrit el fitxer de configuració l'squid té aquesta eina:
squid3 -k parse
ACL: LOCALHOSTL'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
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
ACL: NAVEGADORS
També podem definir l'ús d'un únic navegador:
acl firefox browser -i firefox http_access deny !firefox
Navegadors:
Internet Explorer = ieGoogle Chrome = chromeOpera = chrome
ACL:NO CACHEJAR UN SITE
acl gmail dstdomain .gmail.com
always_direct allow gmail
RESTRINGIR UNA PARAULA
Podem restringir una paraula de qualsevol cerca: Per exemple la paraula porno:
acl paraula_restringida url_regex pornoacl la_meva_lan src 192.168.0.0/24http_access deny paraula_restringidahttp_access allow la_meva_lanhttp_access deny all
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.
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
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/
ACCÉS SEGONS HORARI
acl FOO src 10.1.2.3 10.1.2.4acl WORKING time MTWHF 08:30-17:30http_access allow FOO WORKINGhttp_access deny FOO
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)
CONFIGURAR EL NAVEGADORA Firefox anem a Herramientas --> Opciones -->Avanzado-->Red-->Configuración
CONFIGURAR EL NAVEGADOR
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!)
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
FONTS
http://acacha.org/mediawiki/index.php/Squid
http://acacha.org/mediawiki/index.php/Netfilter/iptables#Proxy_transparent_amb_iptables
http://acacha.org/mediawiki/index.php/Configuraci%C3%B3_de_clients_proxy http://www.taringa.net/posts/linux/1951036/Squid---Limitar-ancho-de-banda.html