¿Cómo configurar un puerto hacia adelante en iptables de Ubuntu?

¿Cómo configurar un puerto hacia adelante en iptables de Ubuntu?

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í. Mis iptablesestán vacíos y /etc/network/interfacees el siguiente:

auto lo
iface lo inet loopback
    address 127.0.0.1
    netmask 255.0.0.0
    broadcast 127.255.255.255
    up ip route replace 127.0.0.0/8 dev lo
# Auto generated venet0 interfaces
auto venet0
iface venet0 inet static
    address 127.0.0.1
    netmask 255.255.255.255
    broadcast 0.0.0.0
    up route add default dev venet0
iface venet0 inet6 static
    address ::2
    netmask 128
    up ip -6 r a default dev venet0
    up ip addr add {...externalIPv6...} dev venet0
auto venet0:0
iface venet0:0 inet static
    address {...externalIP...}
    netmask 255.255.255.255

Respuesta1

Comenzaré esto como una respuesta, aunque no lo sea (todavía, con suerte). La razón por la que hago esto es que creo que este problema requerirá varias iteraciones para solucionarlo.

Las reglas de iptables me parecen bien, pero en mi opinión, su archivo /etc/network/interfaces tiene varios problemas. ¿Lo copiaste de algún lugar o lo adaptaste a tus necesidades?

Los problemas que veo:

  1. ¿Por qué especificar la interfaz loopback? Normalmente, las dos primeras líneas de la estrofa están bien.
  2. Estás asignando dos direcciones a la misma interfaz, venet0.
  3. La máscara de red para la primera estrofa venet0 es demasiado restrictiva y no coincide con la dirección de transmisión.
  4. Su segunda estrofa para venet0 tiene dos direcciones asignadas: su dirección IPv6 externa y ::2.
  5. En la estrofa de venet0, la máscara de red es demasiado restrictiva.
  6. La misma interfaz, venet0/venet0:0, tiene asignadas direcciones externas y de loopback, ¿cuál es el punto?

Sería útil que nos dijera qué está intentando hacer con VMWare; en este momento estoy perdido.

información relacionada