The New Cult of Dead Cow

Porque el mundo es de los malditos

Squid: Mejorando el acceso a internet

0 Commentarios

Squid, es un proxy cache ( tambien sirve de Proxy Web pero eso ya es otra nota ). Es decir, squid guarda en el disco duro una instantanea de algunas partes de internet para que cuando deseemos volver a verlas ya no tengamos que conectarnos sino que lo hagamos directamente del disco duro.

Si solo tenemos una pc su ventaja es discutible ... pero si ya tenemos varias pc conectadas a nuestra red se convierte en algo indispensable.

Para instalarlo basta con un

emerge squid

o

sudo aptitude install squid

Ambos, Ubuntu o Gentoo instalaran la ultima versión estable que es la 2.6.*

Lo que vamos a hacer ahora es configurarlo para tener un proxy transparente. ¿ Porque transparente y que es Proxy Transparente ?

Bueno un Proxy Transparente, es cuando los clientes ( usuarios, navegadores, pc ) creen que se estan conectando directamente a Internet. ¿ Porque transparente ? Pues porque asi te ahorras el trabajo de tener que configurar a mano una a una todas las estaciones. Si tienes 3 o 4, pues no pasa mucho pero cuando tienes 10, 20 o mas ... o no todas estan cerca pues ya empieza a ser una joda. Ademas con un proxy transparente, si tienes que ingresar una nueva maquina a tu red ya no es necesario configurarla automáticamente usara el proxy.

Editamos el archivo /etc/squid/squid.conf

http_port 192.168.1.8:3128 transparent
cache_mem 50 MB
visible_hostname mipc
cache_dir ufs /var/cache/squid 500 16 256
maximum_object_size 32768 KB

acl my_network src 192.168.1.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0

http_access allow my_network
http_access deny all

la variable http_port, le indica que tarjeta de red tiene el squid y en que puerto esta escuchando. La clave transparent es obligatoria a partir de la version 2.6 de Squid si es que piensas definir un proxy transparente.
La variable cache_mem, le indica al servidor cuanta RAM debe tener reservada para el proxy. A mas clientes pues mas RAM deberia reservar.
La variable visible_hostname, le indica al servidor cual es el nombre del servidor. Por defecto, Squid tratara de tomar ese valor de las variables del sistema, pero a veces no resulta y siempre esta fastidiando ese error.
La variable cache_dir, nos indica en que directorio estaran los archivos del proxy y cuanto puede crecer ese directorio.
maximum_object_size, nos dice cual es el tamaño maximo de los archivos cacheados.

Las siguientes cuatro lineas, nos permiten definir nuestras reglas de acceso. Como no es el objetivo filtrar el contenido, no tenemos aca unas reglas muy complejas. Pero aca podriamos haber definido que maquinas accesan a que paginas web, etc.

acl my_network src 192.168.1.0/255.255.255.0

el comando acl, esta declarando una variable llamada my_network. Esta variable representa a todas las direcciones IP 192.168.1.*.

acl all src 0.0.0.0/0.0.0.0

El comando acl, esta declarando una variable llamada all. Esta variable representa a cualquier direccion IP.

http_access allow my_network

El comando http_access, esta definiendo una regla que permite el acceso irrestricto ( allow ) a my_network. Es decir cualquier maquina que tenga una direccion IP dentro del grupo de my_network podra acceder a cualquier pagina web a traves del squid.


http_access deny all

El comando http_access, esta denegando (deny) el acceso a todas las maquinas ( all ). Cabe aclarar, que como ya se definio con anterioridad la regla allow my_network, esta nueva regla solo se aplica para todo aquello que no estuviera definido en la primera regla. Es decir, que "todas las maquinas" (all) realmente significa todas las maquinas menos aquellas que están definidas en my_network.

Una vez editado el archivo, solo nos queda iniciar el servicio

sudo /etc/init.d/squid restart

Para convertir en transparente a nuestro proxy, declaramos la siguiente regla en nuestro iptables.

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



Technorati Tags: , , , ,

Written by necudeco

Posted in linux Web

Leave a Reply