Proxy Squid amb Debian Squeeze

Post on 24-May-2015

438 views 9 download

Transcript of Proxy Squid amb Debian Squeeze

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