Como DNAT para IP local diferente com base em qual IP público foi acessado com o Shorewall?

1

Meu servidor tem vários IPs públicos e está executando várias máquinas virtuais com endereços IP privados.

Como exemplo, quero mapear as portas 80, 443 e 8080 em 232.21.23.23 (pública) para 192.168.122.12 (privada). Eu tentei alguns mapeamentos NAT diferentes, mas nenhum deles parece funcionar:

# This doesn't work.
DNAT           net              loc:192.168.122.12  tcp  80,443,8080  -           232.21.23.23

# Neither does this.
DNAT           $FW              loc:192.168.122.12  tcp  80,443,8080  -           232.21.23.23

# Nor this.
DNAT           net:232.21.23.23 loc:192.168.122.12  tcp  80,443,8080

# I have no idea what I'm doing.
DNAT           $FW:232.21.23.23 loc:192.168.122.12  tcp  80,443,8080

Alguém pode me apontar na direção certa?

    
por mikl 30.06.2012 / 02:55

2 respostas

2

Sua primeira regra está correta:

DNAT    net loc:192.168.122.12  tcp 80,443,8080 -   232.21.23.23

Então o problema deve estar em outro lugar. Você pode ver as regras subjacentes do iptables criadas com isto:

iptables -t nat -nvL net_dnat

Os pacotes NAT ainda precisam atravessar a cadeia FORWARD e serem aceitos. Tente adicionar a seguinte regra para aceitar tráfego para as VMs nessas portas:

ACCEPT  net loc:192.168.122.12  tcp 80,443,8080
    
por 01.07.2012 / 08:49
1

Como comentário adicional para as respostas anteriores, certifique-se da ordem em que você coloca as regras.

Exemplo:

Digamos que você tenha configurado suas regras assim:

DNAT net loc: 172.17.20.25 tcp 80 0.0.0.0 DNAT net loc: 172.17.20.47 tcp 80 200.x.y.z

Se você quer chegar a 172.17.20.47 na porta 80, você sempre terminará em 172.17.20.25 porque o endereço de destino é o padrão 0.0.0.0.

Então, se você quer chegar a 172.17.20.47 através do endereço IP público 200.x.y.z, você deve modificar a ordem das regras:

DNAT net loc: 172.17.20.47 tcp 80 200.x.y.z DNAT net loc: 172.17.20.25 tcp 80 0.0.0.0

Ou modifique o endereço padrão da primeira regra.

Espero que ajude!

    
por 03.08.2015 / 19:50