Como falsificar um IP para um aplicativo que precisa desse IP específico?

Como falsificar um IP para um aplicativo que precisa desse IP específico?

Em geral, tal problema, existe um sistema RHEL 6.4 Server com um par de interfaces de rede combinadas em uma por ligação. Este endereço IP do sistema: 10.7.7.1. Em seguida, no sistema, execute um aplicativo que precisa se conectar ao servidor MySQL 10.7.7.2na porta 3306. E, de fato, o MySQL roda em 10.7.7.3. As configurações de conexão no aplicativo são codificadas e, portanto, não podem ser alteradas. Isso pode ser ouvido atravéstabelas de ipfazer tradução de endereço. Como fazer para que quando o aplicativo tentasse10.7.7.2:3306 tabelas de ipé interceptado e enviado uma solicitação para 10.7.7.3:3306, recebe uma resposta e a envia para o aplicativo?

Responder1

Isso pode ser feito com regras NAT no iptables.

Se o servidor MySQL estiver no mesmo host, use regras REDIRECT. Redirecione todas as conexões para a porta 3306 e não para 10.7.7.3 para o endereço necessário.

Se o servidor MySQL não estiver no mesmo host, use uma regra DNAT.

Responder2

Assumindo que

  • .1, .2 e .3 são máquinas diferentes
  • Você não pode trocar endereços IP de .2 e .3
  • .2 está rodando Linux

Aqui está o que você precisa adicionar em .2:

-t nat -A PREROUTING  -d 10.7.7.2 -p tcp --dport 3306 -j DNAT --to-destination 10.7.7.3
-t nat -A POSTROUTING -d 10.7.7.3 -p tcp --dport 3306 -j SNAT --to-source      10.7.7.2

NO ENTANTO...

Se por algum motivo você não puder criar regras de iptables em .2 e/ou quiser interceptar o tráfego em .1, tudo o que você precisa fazer em .1 é:

-t nat -A POSTROUTING -d 10.7.7.2 -p tcp --dport 3306 -j DNAT --to-destination 10.7.7.3

informação relacionada