domingo, 20 de febrero de 2011

proxy transparente + iptables

sudo su

route

route delete default dev eth0


route add -net 192.168.10.0/24 dev eth3
route add -host 192.168.10.22 dev eth3
route add default gw 192.168.10.1 dev eth3

route
Tabla de rutas IP del núcleo
Destino         Pasarela        Genmask         Indic Métric Ref    Uso Interfaz
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
192.168.10.0    *               255.255.255.0   U     1      0        0 eth3
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.10.1    0.0.0.0         UG    0      0        0 eth3



Edita el fichero /etc/squid/squid.conf y modifica la línea http_port de la siguiente manera:

http_port 3128 transparent

http_port 192.168.1.22:3128 transparent

Se reinicia el proxy
sudo service squid stop
squid stop/waiting
sudo service squid start
squid start/running, process 2977



iptables -F

En este caso asumimos que "eth0" es nuestra interfaz de red conectada a la red privada.

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


En el cliente se pone como puerta de enlace 192.168.1.22

Variante de la regla iptables
iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -d ! 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

En este caso, eth0 es el interfaz conectado a la red local. Todo lo procedente de 192.168.1.0/24 , pero que no vaya encaminado a 192.168.1.0/24 , nos lo va a encaminar al puerto 3128, que es donde normalmente tendremos squid.

No hay comentarios:

Publicar un comentario