Cómo configurar iptables para un proxy squid con solo un HW-NIC

Cómo configurar iptables para un proxy squid con solo un HW-NIC

Tengo un servidor con una dirección IP estática para alquilar y ahora quiero configurar un proxy transparente en este servidor.

Después de configurar Squid para fines de prueba con el oyente "http_access permitir todo", quise configurar iptables. Descubrí que solo tengo una conexión Ethernet con mi dirección IP estática montada. pero al menos no encontré ninguna documentación que me mostrara cómo configurar esto. (Encontré mucho sobre cómo configurar Squid con dos NIC físicas separadas pero no con una)

producción:

root@1:~# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:49 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3536 (3.5 KB)  TX bytes:3536 (3.5 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: ::2/128 Scope:Compat
          inet6 addr: 2a01:[....]external-ipv6[...]/128 Scope:Global
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:551353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:455717 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:351211942 (351.2 MB)  TX bytes:267054641 (267.0 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:[...]external-ipv4[...]  P-t-P:[...]external-ipv4[...]  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

He leído mucho sobre iptables y algo sobre ebtables. y ahora me quedé estancado. No sé cuál debería ser el siguiente paso.

Mis iptables están completamente vacíos en este momento.

¿Necesito ebtables para un proxy transparente que funcione correctamente? ¿Son suficientes los iptables correctos para hacer esto sin ebtables? Si es así, le agradecería mucho que me diera una cadena para configurarlos.

#

Fuentes: wiki[.]ubuntuusers[.]de/Squid http://freecode.com/articles/configuring-a-transparent-proxywebcache-in-a-bridge-using-squid-and-ebtables http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html

#

Especialmente esta cita debería explicarme cómo hacer esto pero no lo entiendo...

A continuación, agregué las siguientes reglas para reenviar todas las solicitudes http (que llegan al puerto 80) al puerto 3128 del servidor Squid:

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

con

iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128

esto debería funcionar, pero no es así...

Respuesta1

No puede utilizar un proxy transparente en este escenario.

Debe haber un proxy transparente en la ruta de red del tráfico para que pueda interceptar y reescribir todo el tráfico para redirigirlo a Squid, y dado que su servidor está fuera de su ruta de red, no tiene forma de hacerlo.

Si desea utilizar este servidor como proxy, tendrá que ser un proxy directo normal.

información relacionada