Alquilé espacio en un servidor con una dirección IP estática y me gustaría configurar un proxy transparente en este servidor.
Después de configurar Squid para realizar pruebas con el oyente http_access allow all
, quería configurar la información de iptables. Solo tengo una conexión Ethernet con mi dirección IP estática montada. Busqué documentación sobre cómo hacer esto con una sola NIC, pero no pude encontrar ninguna. (Hay de sobra para dos o más, pero no para una sola NIC).
Actualmente me da este resultado:
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
No estoy realmente seguro de hacia dónde debo ir desde aquí. Mis iptables están completamente vacíos en este momento. ¿Necesito ebtables para un proxy transparente que funcione correctamente, o son suficientes los iptables correctos para hacer esto sin ebtables? Si es así, ¿podría darme algún comando sencillo para configurarlos?
Fuentes:
- http://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í...