Tráfego redirecionando com o linux? (Homem no meio)

4

Eu tenho o seguinte cenário:

Eu tenho uma caixa Linux com duas placas de rede e todo o tráfego de rede entra em um NIC e sai para o outro. Então basicamente eu já sou o homem no meio.

Mas agora, quero redirecionar todo o tráfego que tenha o endereço IP de destino "xyz" e a porta de destino 500 para a porta 500 em minha máquina local, onde meu deamon está em execução. um determinado evento eu quero parar o redirecionamento (apenas removendo a regra ou assim) e apenas deixar o tráfego passar, como todo o tráfego.

Gostaria de saber se posso fazer isso com o iptables ou alguma outra ferramenta já incluída no Linux? Até agora eu não encontrei uma solução de trabalho. Eu também tenho problemas para executar comandos como root a partir de um script de shell que invoquei com system() . Ele não inicia como root, embora eu mudei a propriedade e os privilégios do script para root. Eu queria usar o shellscript para revogar o redirecionamento (quando eu consegui fazê-lo funcionar).

    
por Florian 30.09.2014 / 00:02

2 respostas

1

É assim que você faz o que você pediu com o iptables:

sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 500 -j DNAT --to-destination 127.0.0.1:500
iptables -t nat -A POSTROUTING -j MASQUERADE

Quanto aos problemas de script de shell, você deve configurar o script (má ideia) ou usar popen() para executar sudo /path/to/yourscript e configurar o sudo para permitir que o usuário que está executando o programa em C faça isso.

    
por 30.09.2014 / 00:30
0

Você deve ser capaz de fazer isso com uma regra iptables na tabela nat e mudança PREROUTING. Algo parecido com isto:

iptables -t nat -A PREROUTING -d xyz -p tcp --dport 500 -j DNAT --to-destination zyx:1111

Isso presumindo que você tenha o encaminhamento de ipv4 ativado via sysctl, o que suponho que você esteja, já que o tráfego já está passando pelo roteador.

Não posso testar isso no momento, mas isso deve ser um bom ponto de partida.

    
por 30.09.2014 / 00:28