Port forward localhost: port para lan: port usando iptables - como?

4

Existe uma maneira de mapear 127.0.0.1:3389 para 192.168.1.2:3389 (com iptables? Ou seja, todas as conexões para localhost:3389 serão redirecionadas para minha máquina LAN?

A razão para isso é a seguinte: meu aplicativo iPhone RDP pode fazer encapsulamento SSH, mas não fornece opções para ajustar parâmetros SSH. Então, ele se conecta ao meu roteador via SSH, estabelece um túnel para 127.0.0.1:3389 e, em seguida, tenta se conectar a localhost:3389 no iPhone. Falhou.

Eu não quero rodar o servidor SSH na minha máquina LAN e, em vez disso, quero usar o servidor SSH do roteador (Asus RT-N16 rodando Tomato). Isso é factível? Isso não funciona:

$ iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 3389 -j DNAT --to-destination 192.168.1.2
    
por Chris S 23.09.2010 / 19:18

2 respostas

1

Dê uma olhada no rinetd que parece fazer o que você deseja. Há mais algumas informações sobre instalação e uso aqui .

    
por 24.09.2010 / 09:44
1

Existem alguns erros no seu comando iptables:

1) você está tentando pegar isso na tabela OUTPUT, mas para um redirecionamento como esse você precisa fazer isso em PREROUTING

2) você não está redirecionando para a porta também. você está apenas dizendo ao iptables para enviar esses pacotes para um determinado IP sem especificar a porta.

Assim, seu comando deve ficar assim:

iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp --dport 3389 -j DNAT --to 192.168.1.2:3389

Meu iptables-fu pode estar um pouco enferrujado, então se você não funcionar, tente executar o mesmo comando na tabela INPUT (-A INPUT). Se nada funcionar, grite aqui e nós encontraremos uma solução.

    
por 16.06.2011 / 23:04