Como posso obter o encaminhamento de porta com o IPTables?

0

Eu preciso alcançar o seguinte cenário usando o IPTables:

Scenario Image Link

Neste cenário, temos um servidor front-end com apenas um NIC com IP 1.2.3.4, e há três outros servidores com IPs definidos como 172.20.20.20, 192.168.20.10 e 10.10.10.8.

O objetivo é configurar as tabelas de IP para que os clientes se conectem apenas ao servidor front-end ( 1.2.3.4 ) e a solicitação é encaminhada com base na porta, por exemplo, quando as solicitações do cliente verde 1.2.3.4:8080, o pedido é enviado para 10.10.10.8:8080, ou se ele envia um pedido para 1.2.3.4:443, seu pedido é encaminhado para 172.20.20.20:443 enquanto preserva o IP do cliente original.

Eu preciso desse IP como parte da identificação do usuário - com base no IPm do cliente, diferentes conteúdos serão veiculados.

Eu já li essas perguntas, mas não ajudou:

Jeremy Mc
fonte
defina a caixa linux como gateway padrão nos três servidores.
Ipor Sircer

Respostas:

0

No firewall / roteador - emita os seguintes comandos (supondo que você queira que isso funcione na porta 80. O primeiro fornece o caminho para o servidor da Web, o segundo corrige o trecho de saída.

IPTABLES -t nat A PREROUTING -p tcp  -d REAL.WORLD.IP --dport 80  -j DNAT --to-destination INTERNAL.IP
IPTABLES -t nat -A POSTROUTING -s INTERAL.IP -p tcp --dport 80 -j SNAT --to-source EXTERNAL.IP
davidgo
fonte
Caro @davidgo, Obrigado pela sua resposta, mas acho que não satisfaz o "preservando o IP do cliente original". parte da questão. Faz isso?
Jeremy Mc
Sim. O primeiro comando reescreve o destino (não o endereço de origem), o segundo reescreve o endereço de origem - mas somente depois de ter saído do servidor, o registro mostrará o endereço de origem correto. (Eu peguei esses comandos de um sistema ao vivo, então tenho certeza de mim mesmo)
davidgo
Acabei de perceber que não especifiquei a opção -t nat nas regras acima. Isso é necessário também.
davidgo