Como configurar um encaminhamento de porta no iptables do Ubuntu?

Como configurar um encaminhamento de porta no iptables do Ubuntu?

Esta citação deveria me explicar como fazer isso, mas não entendi ...

Em seguida, adicionei as seguintes regras para encaminhar todas as solicitações http (chegando à porta 80) para a porta 3128 do 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

com

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

Isso deveria funcionar, mas não funciona. Meus iptablesestão vazios e /etc/network/interfaceé o seguinte:

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

Responder1

Vou começar isso como uma resposta, embora não seja (ainda, espero). A razão pela qual faço isso é que acredito que esse problema exigirá várias iterações para ser resolvido.

Suas regras do iptables parecem boas para mim, mas seu arquivo /etc/network/interfaces tem vários problemas, na minha opinião. Você copiou de algum lugar ou adaptou às suas necessidades?

Os problemas que vejo:

  1. Por que especificar a interface de loopback? Normalmente, as duas primeiras linhas da estrofe estão ok.
  2. Você está atribuindo dois endereços à mesma interface, venet0.
  3. netmask para a primeira estrofe venet0 é muito restritiva e inconsistente com o endereço de broadcast.
  4. Sua segunda estrofe para venet0 possui dois endereços atribuídos a ela, seu endereço IPv6 externo e ::2.
  5. Na estrofe de venet0, a máscara de rede é muito restritiva.
  6. A mesma interface, venet0/venet0:0, tem loopback e endereços externos atribuídos a ela, qual é o objetivo?

Seria útil se você nos contasse o que está tentando fazer com o VMWare, no momento estou perdido.

informação relacionada