Configurando Squid
- Por Th3r0rn en Junio 9, 2008 archivo en Debian
Bien, hoy traemos un tutorial en el cual explicaremos los pasos a realizar para tener configurado squid correctamente, pero que es Squid???
Squid es un popular programa de software libre que implementa un servidor proxy y un demonio para caché de páginas web, publicado bajo licencia GPL. Tiene una amplia variedad de utilidades, desde acelerar un Servidor Web, guardando en caché peticiones repetidas a DNS y otras búsquedas para un grupo de gente que comparte recursos de la red, hasta caché de web, además de añadir seguridad filtrando el tráfico. Está especialmente diseñado para ejecutarse bajo entornos tipo Unix.
Squid ha sido desarrollado durante muchos años y se le considera muy completo y robusto. Aunque orientado a principalmente a HTTP y FTP es compatible con otros protocolos como Internet Gopher. Implementa varias modalidades de cifrado como TLS, SSL, y HTTPS
1.- Instalacion de Squid
Bien, para poder instalar squid basta con hacer un apt-get install squid
o bien podemo dirigirnos a su pagina oficial y descargarlo
2.- Configuracion de Squid
* Cambios en el fichero configuracion de squid (/etc/squid/squid.conf)
En la seccion # HTTPD-ACCELERATOR OPTIONS deve de haber algo como esto, si no esta lo agregamos:
httpd_accel_host virtual
httpd_accel_uses_host_header on
httpd_accel_with_proxy on
Para permitimos el acceso al proxy tendremos que dar de alta nuestra red interna en una ACL (Accese Control List).
En el apartado # ACCESS CONTROLS (encontraras algo como esto, sobreescribelo a tus necesidades)
acl our_networks src 192.168.109.0/24 192.168.2.0/24
En la seccion # Only allow cachemgr access from localhost
Hay que poner la regla allow para nuestras redes definidas anteriormente.
http_access allow our_networks
Agreamos las Siguientes Lineas al final del archivo /etc/squid.conf
#DELAY POOLS
#Ésta es la parte más importante para configurar el tráfico entrante con
#Squid. Para una descripción detallada acuda al archivo squid.conf o a la
#documentación de http://www.squid-cache.org——#No∞ queremos limitar las descargas en nuestra red local.
acl magic_words1 url_regex -i 192.168
#Queremos limitar la descarga de este tipo de archivos
#Ponga todo esto en una única línea
acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt
.ram .rm .iso .raw .wav .mov
#No bloqueamos .html, .gif, .jpg y archivos similares porque por lo general
#no consumen demasiado ancho de banda.
#Queremos limitar el ancho de banda durante el día permitiendo
#el ancho de banda completo durante la noche.
#¡Cuidado! con el acl de abajo sus descargas se interrumpirán
#a las 23:59. Lea la FAQ si quiere envitarlo.
acl day time 09:00-23:59
#Tenemos dos delay_pools diferentes
#Acuda a la documentación de Squid para familiarizarse
#con delay_pools y delay_class.
delay_pools 2
#Primer delay pool
#No queremos retrasar nuestro tráfico local
#Hay tres cases de pools; aquí sólo hablaremos de la segunda.
#Primera clase de retraso (1) de segundo tipo (2).
delay_class 1 2
#-1/-1 significa que no hay límites.
delay_parameters 1 -1/-1 -1/-1
#magic_words1: 192.168 que ya hemos puesto antes
delay_access 1 allow magic_words1
#Segundo delay pool.
#Queremos retrasar la descarga de los archivos mencionados en magic_words2.
#Segunda clase de retraso (2) de segundo tipo (2).
delay_class 2 2
#Los números siguientes son valores en bytes;
#Debemos recordar que Squid no tiene en cuenta los bits de inicio/parada
#5000/150000 son valores para la red al completo
#5000/120000 son valores para la IP independiente
#una vez los archivos descargados exceden los 150000 bytes,
#(o el doble o el triple)
#las descargas proseguirán a 5000 bytes/s
delay_parameters 2 5000/150000 5000/120000
#Ya hemos configurado antes el día de 09:00 a 23:59.
delay_access 2 allow day
delay_access 2 deny !day
delay_access 2 allow magic_words2
#EOF
* Agrega las siguientes lineas a tu /etc/rc.local y reinicia tu ordenador
# Squid Proxy cache Transparente
lan=eth1
inet=ppp0
firewall=/sbin/iptables
$firewall -t nat -A PREROUTING -i $lan -p tcp –dport 80 -j REDIRECT –to-port 3128
