21 de febrero de 2009

Proxy transparente para dd-wrt

El siguiente bloque de código muestra como configurar la redirección del puerto 80 hacia nuestro servidor proxy, pensando en el caso de squid que usa el puerto 3128 de forma predeterminada. Recomiendo leer antes el manual de configuración de squid modo proxy transparente.

Si se desea que esto se cargue en la nvram debe hacerse de la siguiente manera, colocar:

>nvram set rc_firewall="<código que coloqué abajo. Nótese que se han escapado los carácteres " y $>" ENTER
>nvram commit
>nvram get rc_firewall //Para confirmar que se grabo bien
>reboot

#!/bin/sh
INTERNAL_NETWORK=\"192.168.1.0/24\"
ROUTER_IP=\"192.168.1.100\"
PROXY_SERVER=\"192.168.1.121\"
PROXY_PORT=\"3128\"
if [ -z \$TRANSPARENT_PROXY ]; then
/usr/sbin/iptables -t nat -I PREROUTING -i br0 -s \$INTERNAL_NETWORK -d \$INTERNAL_NETWORK -p tcp --dport 80 -j ACCEPT
/usr/sbin/iptables -t nat -I PREROUTING -i br0 -s ! \$PROXY_SERVER -p tcp --dport 80 -j DNAT --to \$PROXY_SERVER:\$PROXY_PORT

/usr/sbin/iptables -t nat -A POSTROUTING -o br0 -s \$INTERNAL_NETWORK -p tcp -d \$PROXY_SERVER -j SNAT --to \$ROUTER_IP
/usr/sbin/iptables -t filter -I FORWARD -s \$INTERNAL_NETWORK -d \$PROXY_SERVER -i br0 -o br0 -p tcp --dport -j ACCEPT
export TRANSPARENT_PROXY=\"1\"

else
echo \"Ya se está ejecutando\"
fi

#Políticas de excepción (maquinas que no pasan por el proxy)
#Servidor de correos
/usr/sbin/iptables -t nat -I PREROUTING -i br0 -m mac --mac-source 00:1D:92:A4:02:5E -p tcp --dport 80 -j ACCEPT

#Servidor SAMBA
/usr/sbin/iptables -t nat -I PREROUTING -i br0 -m mac --mac-source 00:1A:92:A4:02:5E -p tcp --dport 80 -j ACCEPT

#Computador de uso frecuente :P
/usr/sbin/iptables -t nat -I PREROUTING -i br0 -m mac --mac-source 00:9D:92:A4:02:5E -p tcp --dport 80 -j ACCEPT


Ahora bien, por último debes recordar modificar
INTERNAL_NETWORK,ROUTER_IP,
PROXY_SERVER y PROXY_PORT según tu configuración de red interna.

No hay comentarios.: