
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.