Use iptables para encaminhar várias portas

1

Eu tenho serviços rodando no VPS A (1.1.1.1) nas portas 30000-32000.

Eu gostaria de ter o VPS B (2.2.2.2) para redirecioná-los para 20000-22000.

(Você pode dar uma olhada no link do gráfico de demonstração abaixo para entender o que eu gostaria de alcançar: D)

Encaminhar para diferentes portas

Eu usei o comando abaixo para configurar o iptables:

iptables -t nat -A PREROUTING -p tcp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000
iptables -t nat -A PREROUTING -p udp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000

Após alguns testes, parece que apenas a porta 20000 estava encaminhando a porta 30000 do servidor original. No entanto, outras portas não estão funcionando.

Eu verifiquei 4 coisas abaixo: 1. Serviço do VPS A (1.1.1.1) Serviço em execução nas portas 30000 - 32000 são totalmente funcionais

  1. Configuração de encaminhamento de porta VPS B Ao verificar o sysctl no VPS B, o encaminhamento do ipv4 é ativado.

(por exemplo, net.ipv4.ip_forward = 1 )

  1. Configuração de iptable do VPS B. Parece bom para mim. Você pode clicar no link abaixo para a configuração exata.

Configuração do iptables

  1. Eu também tentei fazer um encaminhamento de múltiplas portas normal do VPS A para o VPS B (por exemplo, VPS A (30000-32000) > > VPS B (30000-32000))

(Você pode dar uma olhada no link do gráfico de demonstração abaixo para o que eu gostaria de alcançar: D)

Tudo está funcionando bem.

Eu realmente não tenho ideia de como conseguir isso. Qualquer ajuda é apreciada! Obrigado antecipadamente!

    
por mcgag 01.10.2017 / 18:31

1 resposta

2

Você precisa alterar as regras do iptables. Sua regra DNAT não filtra o endereço IP de destino para o tráfego de entrada dos usuários. Sua regra SNAT não filtra o endereço IP de origem e o intervalo 30000: 32000 da porta de origem para o tráfego de entrada do servidor A. Você precisa do servidor B:

iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p tcp -s 1.1.1.1 --sport 30000:32000 -j SNAT --to-source 2.2.2.2:20000:22000

iptables -t nat -A PREROUTING -p udp -d 2.2.2.2 --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p udp -s 1.1.1.1 --sport 30000:32000 -j SNAT --to-source 2.2.2.2:20000:22000
    
por 02.10.2017 / 08:00