Servidor Proxy Squid en Ubuntu 9.04 en 4 paso

1) Primeramente, comenzaremos con la instalación del proxy Squid, lo cual es bastante sencillo:

sudo apt-get install squid

2) El paso siguiente es configurar a que red le queremos dar acceso en el proxy (por defecto viene todo denegado). Suponemos que nuestra red es la 192.168.0.0/24. Para ello, en el fichero de configuración de Squid (en la ruta local /etc/squid/squid.conf), añadimos las siguientes lineas:

acl mi_red src 192.168.0.0/255.255.255.0
http_access allow mi_red

Con esto, creamos un nuevo access list llamado mi red, y permitimos el tráfico desde mi_red.

3) El siguiente paso es hacer que nuestro proxy sea completamente transparente a las navegadores que hagan uso de él (esto se conoce como proxy transparente). Para conseguir esto, tendremos que hacer dos cosas. La primera es añadir la palabra transparent a la linea del fichero de configuración de squid http_port 3128, quedando dicha linea de la siguiente manera:

http_port 3128 transparent

Y segundo, es añadir la regla de iptables que nos redireccione el tráfico con destino al puerto 80, es decir, el tráfico web, al puerto 3128 (que es donde escucha nuestro proxy):

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

4) Por último. y no menos importante, es necesario activar el reenvio de paquetes en nuestra máquina ubuntu. Para ello, bastará con modicar el contenido fichero /proc/sys/net/ipv4/ip_forward con un 1. Si queremos que esto persista tras reiniciar la máquina, deberemos además, descomentar la linea net.ipv4.ip_forward=1 en el fichero /etc/sysctl.conf

Y con estos pasos, tenemos nuestro proxy totalmente configurado. Si ahora usamos un otro PC cualquiera, conectado a nuestra LAN, y nos ponemos como puerta de enlace nuestra Ubuntu Server, la navegación de este pasará a través del proxy. Para asegurarnos de ello, podemos observar como todas las peticiones de los clientes quedan anotadas en el fichero de log /var/log/squid/access.log