iptables – proxy transparente

reglas de iptables para un proxy transparente
Partiendo de la base expuesta en este otro post
iptables – permitir salida a internet
Vamos a obligar a los clientes de la red sin necesidad de configuración a pasar por el proxy squid
Para ello un par de reglas mágicas, la primera es por si tenemos servidores internos y DNS funcionando, ejemplo www.server1.local
# iptables -t nat -A PREROUTING -i eth1 -d 192.168.200.0/24 -j ACCEPT
Esta es la mágica:
# iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
O esta mucho más al grano (nota, o una u otra no las dos)
# iptables -t nat -A PREROUTING -i eth1 -s 192.168.200.0/24 -d ! 192.168.200.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
Donde ya estamos diciendo explícitamente que el destino no sea nuestra LAN (mismo comentario servidor+dns).
Ahora hay que guardarlas
# iptables-save > /etc/mis-iptables
Y si no lo tenemos ya, añadir esta línea en el fichero /etc/network/interfaces:
post-up iptables-restore < /etc/mis-iptables