Redirecionar tráfego para ip diferente usando iptables

3

Eu tenho um gateway / firewall debian linux conectando meu wan e lan trabalhando com o iptables. Eu tenho eth1 como o wan com o endereço dinâmico 190.200.229.102 anexado a somehost.com via DYNDNS e eht0 como a lan com o endereço 192.168.128.2 . Tudo funciona como esperado. O tráfego que chega é rejeitado para todas as portas, exceto aquelas especificadas com ACCEPT, e o encaminhamento de porta funciona conforme o esperado, redirecionando o tráfego para as máquinas internas.

O problema é que, quando tento me conectar ao somehost.com da rede interna, não sou redirecionado para as máquinas internas como esperado. Minhas regras de firewall para redirecionamento de porta estão anexadas à interface wan ( eth1 ). Estou assumindo que quando tento me conectar a somehost.com , estou vindo da conexão lan e é por isso que o redirecionamento não funciona. Eu experimentei com REDIRECT, DNAT, INPUT e outras tags sem sucesso. Alguma dica de como conseguir isso?

    
por Ricardo Marimon 21.06.2009 / 17:44

4 respostas

2

Eu não sei a resposta para sua pergunta. No entanto, como um trabalho em torno de por que não tinha uma entrada de DNS falsa internamente para somehost.com apontou para o IP da LAN em vez disso?

    
por 21.06.2009 / 18:28
2

você tem que masquarade os pacotes encaminhados para aparecer como se eles estivessem vindo do firewall

iptables -t nat -A POSTROUTING -s 192.168.128.0/24 -o eth0 -j MASQUERADE

caso contrário, os pacotes de retorno virão até você a partir dos próprios hosts internos que estão vendo endereços internos e enviando os pacotes diretamente de volta. Então você está enviando pedidos para 190.200.229.102 mas obtendo as respostas de 192.168.128.x, é bastante normal que sua máquina não saiba o que fazer com elas:)

    
por 21.06.2009 / 20:16
1

Você deve tentar adicionar uma entrada DSN local conforme declarada pelo Sr. Joel Mansford, no Debian edite o arquivo:

/ etc / hosts

adicione entradas neste formato:

10.10.10.10 dyndns.com 11.11.11.11 someother.com other.sameline.com

;)

    
por 21.06.2009 / 20:54
0

Eu posso adivinhar que o problema é que você está fazendo o masquerading de ip (SNAT) e o DNAT nos pacotes.

Digamos que você se conecte a partir do host interno 192.168.128.3.

O pacote original seria:

192.168.128.3 -> somehost.com (190.200.229.102)

Então, por causa do DNAT, ele seria traduzido para:

190.200.229.102 -> somehost.com (190.200.229.102)

Eu acho que é onde o problema é: de e para endereços são os mesmos.

Você deve executar o tcpdump ou tshark na máquina de conexão, em todas as interfaces do firewall e na máquina receptora. Em seguida, tente se conectar e tente ver em qual interface os pacotes são perdidos e os endereços de e para quando forem traduzidos.

Depois de entender, você pode criar um filtro para resolver esse problema específico na interface correta.

Caso contrário, você pode usar a solução DNS declarada pela joelmansford, que pode ser uma solução mais limpa.

    
por 21.06.2009 / 18:54