GoDaddy

20% of Hosting for your Website at GoDaddy.com!

miércoles, 1 de diciembre de 2010

Instalación de Proxy transparente con SQUID

Para los que tenemos WISP, con un Web cache Proxy nos ahorramos ancho de banda proveniente de Internet y a su vez, le entregamos velocidades muy altas en el servicio prestado a nuestros clientes. Aquí les dejo algo que encontré en el Blog PeruFW:

Sistema proxy (dos tarjetas de red):
Notas:

eth0 : Interfaz para la entrada de internet(WAN)
eth1 : Interfaz para nuestra red local(LAN)


red internet: eth0
ip de salida internet: 192.168.1.2
puerta de enlace: 192.168.1.1



red local: eth1

ip para la entrada lan: 192.168.0.1

puerta de enlace:



ip pc cliente: 192.168.0.x

Se prueba con la distribución ubuntu 9.04, pero esto puede aplicarse a toda distribución basada en debian, y con algunas modificaciones, también a distribuciones basadas en redhat.
Hagamos la configuración de internet, para nuestro ubuntu:

-Desactivamos las interfaces de red.


sudo ifdown eth0

sudo ifdown eth1


-Editamos el archivo “/etc/network/interfaces”
copiar:
Para la interfaz de salida

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 192.168.1.2

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

gateway 192.168.1.1



Para la interfaz de entrada, y seguido de lo anterior:

auto eth1

iface eth1 inet static

address 192.168.0.1

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

Guardamos y salimos.

Editar el archivo “/etc/resolv.conf”, y agregar las dns de nuestro proveedor de internet o el que deseemos
Copiar: (caso telefónica Perú)

nameserver 200.48.225.130

nameserver 200.48.225.146


Luego reiniciamos el servicio:

sudo /etc/init.d/networking restart


*Ahora que tenemos nuestras interfaces configuradas, procedemos a instalar squid, en este caso lo probamos con squid V2.7.STABLE3

sudo apt-get install squid

configuramos squid transparente

sudo gedit /etc/squid/squid.conf


modificamos:

http_port 192.168.1.2:3128 transparent

cache_mem 30 mb

cache_dir ufs /var/spool/squid 2000 16 256


y agregamos en la seccion de las acl’s:

acl red_local src 192.168.0.0/24

acl localhost src 127.0.0.1/32

acl all src all


Agregamos lo siguiente después de donde dice:
“#INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS”


http_access allow localhost

http_access allow red_local


reemplazamos en “maximum_object_size_in_memory 8 KB” por “maximum_object_size_in_memory 100 KB”

Esto indica que haremos cache de a lo más 100KB, esto debe depender de cada uno.
reemplazamos en “cache_replacement_policy lru” por “cache_replacement_policy heap gdsf”

Con esto indicamos el tipo de algoritmo que se ha de seguir para poder administrar los archivos que se encuentran en cache.

para más información visitar aqui.

Reiniciamos servicio squid:

sudo /etc/init.d/squid restart

Aquí el cliente (192.168.0.x) podría egresar a internet por medio del proxy configurado desde el navegador.
Reglas de iptables

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to

192.168.1.2

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

#permitir conección entre las interfaces de red

echo 1 > /proc/sys/net/ipv4/ip_forward
Las anteriores lineas, se guardan en un archivo “proxy_rules.sh” en “/etc/init.d/” luego le damos permisos de ejecución
Luego editamos el archivo “/etc/init.d/rc.local” y le agregamos al inicio


cd /etc/init.d

./proxy_rules.sh

Con esto hacemos que desde el inicio squid funcione de manera transparente.
Reconfiguramos el servicio squid:

sudo squid -k reconfigure

Con esto el cliente (192.168.0.x) puede navegar por internet, sin necesidad de configurar proxy en su navegador osea estamos transparente.

Fuente: PeruFW

No hay comentarios:

Publicar un comentario