Para crear un proxy transparente, instalamos squid y empezamos a configurar.
aptitude install squid squid-commonYo uso nano como editor, podéis usar con el que más cómodos estéis.
nano /etc/squid/squid.conf
http_port 3128 transparent3128 es el puerto por defecto de escucha de squid, podemos cambiarlo, pero lo importante para hacer un proxy transparente es añadir transparent detrás del 3128.
En esta linea definimos la profundidad de directorios para cachear las webs. El 100 indica el tamaño máximo que ocupará el árbol de directorios. Si modificamos la variable cache_mem, tendremos que sustituir el 100 por el valor que le demos a cache_mem.
cache_mem 100 MBTenemos que permitir el acceso a nuestra red.
cache_dir ufs /var/spool/squid 100 16 256
acl our_networks src 192.168.0.0/22 # esto es lo mismo que 192.168.0.0/255.255.252.0Definimos el nombre de nuestro proxy
http_access allow our_networks # permitido el acceso a nuestra red
http_access allow localhost # permitido el acceso a localhost
visible_hostname delorianserverUna vez tenemos el squid configurado tendremos que reiniciarlo con /etc/init.d/squid restart
Si queremos podemos con squid -z crear la estructura de directorios para el cache, pero si no existe la crea la primera vez que reinicia.
Yo la borraría y la volvería a crear si modificas los parámetros de las lineas:
cache_mem 100 MBPara borrar el árbol de directorios del cache:
cache_dir ufs /var/spool/squid 100 16 256
rm -fr /var/spool/squidPara crear la estructura de directorios (tiene que estar parado el squid /etc/init.d/squid stop)
squid -zDespués lanzamos nuevamente el servicio.
/etc/init.d/squid startAhora solo nos queda añadir una regla de IPTABLES que haga una redirección del puerto 80 al 3128 (puerto por defecto del squid) para hacer de nuestro squid un proxy transparente.
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/255.255.252.0 -d 0.0.0.0/0.0.0.0 -p tcp --dport 80 -j REDIRECT --to-port 3128Si todo ha ido bien podremos ver haciendo un tail -f de los log de squid que todos los clientes de nuestra red están pasando por el squid.
tail -f /var/log/squid/access.log