Como eu redireciono uma porta para outra em um computador local usando o iptables?

2

Todos os exemplos de encaminhamento de portas que posso encontrar são para NAT, que não é o que eu quero. Nós temos um aplicativo de servidor HTTP que só se liga a uma porta por vez. No entanto, precisamos nos vincular a uma porta adicional para contornar um firewall corporativo idiota. Por exemplo, se o meu servidor http está escutando em 1234, como podemos encaminhar 4321 para essa porta também? O servidor é debian e acredito que podemos usar o iptables para fazer isso.

    
por Nick Bolton 27.06.2010 / 17:57

1 resposta

1

Bem, eu acho que é simplesmente escrever uma regra DNAT:

/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx
     --dport 4321 -j DNAT --to 127.0.0.1:1234

Como está na cadeia de pré-layout, ele deve funcionar sem interferência do roteamento. Mas parece uma maneira muito complicada de resolver o problema.

Em vez disso, por que você simplesmente não diz ao seu servidor HTTP para ligar as duas portas? Como você está no Debian, eu assumo que você usa o Apache. Então é só adicionar duas diretivas Listen no httpd.conf:

   Listen 1234
   Listen 4321

Observe que servir o mesmo conteúdo nas duas portas não funcionará, pois você terá que alterar todas as URLs, dependendo da porta em que os usuários estão se conectando ou de todos os links serem quebrados ...

    
por 27.06.2010 / 20:11