Ads 468x60px

lunes, 12 de diciembre de 2011

Instalación de Proxy Web "Squid" en Debian Squeeze


Vamos que ya está aquí la Navidad!!!

En esta nueva entrada vamos a ver el Proxy "Squid", un muy buen proxy que nos ayudará a retener peticiones no deseadas y acelerar peticiones repetidas al DNS en su caché almacenada, tiene licencia GPL y vamos a instalarlo como viene siendo habitual en una maquina Debian Squeeze Virtual, empecemos...




La instalación es muy sencilla:

- aptitude install squid

Ahora nuestro proxy Squid está totalmente instalado y funcionando, pero vamos a ir un paso mas allá y dejarlo lo mas pulido posible.

Su archivo de configuración se encuentra en el siguiente directorio:

- /etc/squid/squid.conf


Una vez dentro del archivo de configuración podemos ver muchísimos campos comentados y muy extenso, para ello, yo me creado un archivo "squid.conf" con los básico para tenerlo todo mas ordenado y claro. Aquí el ejemplo:



Podemos observar lo siguiente:

  • Puerto por el que trabaja Squid
  • Capacidad de caché que toma para almacenar las peticiones
  • Nombres de las reglas creadas
  • Acciones que realizará dichas reglas

Como podemos observar, he creado una regla llamada "all" con la opción de "all" (Todo).
En el apartado de las acciones, digo que lo deniegue todo. Actualmente si configuramos nuestro navegador para que use el proxy Squid, no podremos navegar a ninguna web!!



Un breve ejemplo que mostraré será dejar que nuestra red (192.168.2.0) tenga permiso para navegar por Internet. Creamos la regla y le asignamos la acción.

- acl redinterna src 192.168.2.0/24
- http_access allow redinterna

Quedando una cosa similar;


Como vemos, el orden en el que colocamos las reglas influye ya que si a la ahora de asignar la acción dejamos que lo "deniegue" todo, la nueva regla y siguientes nunca se cumplirán por la veracidad de la primera.

Dejamos en ultimo lugar la regla de "denegar todo".

Reiniciamos squid ya que hemos escrito nuevas reglas.

- /etc/init.d/squid restart

Ahora nuestra red ya tiene acceso como podemos ver.


Instalación de Sistema Transparente

Podemos pensar que configurar todos los navegadores para que usen un proxy y un puerto determinado y al poco tiempo cambiar es un verdadero coñazo (hablando claro), para evitar ese sufrimiento vamos a crear un sistema transparente.

Añadimos la regla a squid;

- http_port 3128 transparent



Creamos la regla de iptable en nuestra shell en los clientes que enviará todo lo que se pida por el puerto 80 al puerto de squid;

- iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

Esta regla solo será aplicable en si el equipo queda encendido, si se reinicia o se apaga, la regla desaparecerá, para ello creamos un script y en su interior escribimos esa regla.

Ubicamos dicho script en:

- /etc/rc2.d


Filtración de paginas webs

Para que nuestro proxy squid sea mas efectivo y elaborado, podemos indicarles que denieguen palabras que contengan una url, para ello creamos la acl correspondiente:

- acl webs url_regex "/etc/squid/websdenegadas.txt"

Indicaremos la acción:

- http_access deny webs



Dicha regla, recoge de un archivo ubicado en la direccion /etc/squid, palabras en su contenido que luego denegará si en una url pedida por los usuarios de la red la contiene.

Pues esto es todo por Squid, próxima parada Tomcat! Hasta pronto.

2 comentarios:

Giovani Castillo (Ipswich) dijo...

Interesante aporte, he trabajado con squid y tengo una duda, como hago para que las paginas https pasen con el squid transparente.

Anónimo dijo...

No deja, tendrías que utilizar reglas iptables para controlar los puertos seguros

Publicar un comentario