iptables FORWARD todas as conexões de um cliente através de um gateway para um servidor

1

Gostaria de encaminhar todas as portas do meu cliente (windows) para um servidor (windows) atrás de um gateway (linux).

Minha topologia de rede é a seguinte:

10.20.10.14 --> 10.20.10.4 --> 192.168.1.1 --> 192.168.1.4
   client          ppp0           eth0          server
                |--------- Gateway -------|

em que o dispositivo Gateway tem dois dispositivos de rede: ppp0 e eth0.

Eu gostaria que, no caso de uma conexão de rede entre o cliente e o ppp0, o dispositivo do servidor veria os dados na mesma porta que foi enviada do cliente.

Em outras palavras, o servidor deve pensar que ele se comunica diretamente com o cliente e os Gateways são transperentes nesse caso.

Além disso, gostaria de saber como remover essa regra.

Alguma idéia?

Observação: Eu sou o administrador em todos os dispositivos.

    
por Eagle 01.06.2018 / 15:16

1 resposta

1

Traduzindo as regras inglesas para as regras do iptables, somente esta regra é necessária:

iptables -t nat -A PREROUTING -s 10.20.10.14 -i ppp0 -j DNAT --to-destination 192.168.1.4

A porta de destino não é alterada (e a porta de origem também não deve ser, exceto casos raros, quando o cliente se conecta simultaneamente ao servidor).

Nada impede que o cliente adicione manualmente uma rota a 192.168.1.4 via 10.20.10.4 e acesse diretamente o servidor. Se você não quiser isso, para manter o IP do servidor oculto, você também pode adicionar esta regra:

iptables -I FORWARD -s 10.20.10.14 -i ppp0 -d 192.168.1.4 -m conntrack ! --ctstate DNAT -j DROP

Isso derrubará um acesso direto ao servidor que não foi DNATed.

Para remover essas regras, basta usar -D :

iptables -D FORWARD -s 10.20.10.14 -i ppp0 -d 192.168.1.4 -m conntrack ! --ctstate DNAT -j DROP
iptables -t nat -D PREROUTING -s 10.20.10.14 -i ppp0 -j DNAT --to-destination 192.168.1.4

Observações aleatórias:

    O
  • encaminhamento de IP deve estar ativado no gateway, já que a conexão DNAT é encaminhada. O mais fácil de fazer isso seria echo 1 > /proc/sys/net/ipv4/ip_forward .
  • o servidor precisa, é claro, de uma rota para o cliente aceitar suas conexões, por exemplo, ter o Gateway ( 192.168.1.1 ) como gateway padrão.
  • -i ppp0 é opcional e pode ser removido (ou substituído por -d 10.20.10.4 na regra PREROUTING, se preferir). Isso pode causar problemas se não for substituído por -i ppp+ ( + sendo um caractere curinga): quando há uma falha / reconexão do link rápido, a nova interface do ppp pode ser chamada ppp1 se ppp0 não foi arrancada antes. As regras do iptables não combinariam mais.
  • fluxos já estabelecidos não serão afetados quando a regra DNAT for removida, fluxos mais recentes serão (ou seja, não atingirão o servidor).
por 01.06.2018 / 20:17

Tags