Altere o IP de destino do pacote para localhost e redirecione-o para outra porta

Altere o IP de destino do pacote para localhost e redirecione-o para outra porta

A seguir está o requisito

  1. Primeiro, altere o IP de destino de solicitações/pacotes gerados localmente para localhost. Por exemplo172.17.0.1:7199 -> 127.0.0.1:7199 

  2. Em seguida, redirecione esta solicitação/pacote para a porta proxy local (por exemplo, socks-proxyporta/ redsocks 12345porta) 

Como posso fazer isso com iptablesou com qualquer outra ferramenta?


A seguir está uma explicação mais detalhada.

Eu tenho dois servidores server1 - 172.17.0.1, server2 - 172.17.0.2. Preciso acessar JMXa porta ( 7199) server1em server2. Como desabilitei o JMX remoto server1, não consigo acessá-lo por server2meio do encaminhamento local SSH (é necessário acessar 7199a porta com localhostfrom server2). Então eu criei o proxy de meias SSH e configurei-o comMeias vermelhasferramenta. Está funcionando bem.

# run socks proxy from service2
ssh -v -N -D 9999 [email protected]

# configure socks proxy with Redsocks in service2
redsocks {
    // redsocks listening port
    local_ip = 127.0.0.1;
    local_port = 12345;

    // socks proxy 
    ip = 127.0.0.1;
    port = 9999;

    type = socks5;
}

# configure iptable rules to route the packets to Redsocks in service2
sudo iptables -t nat -N REDSOCKS
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
sudo iptables -t nat -A OUTPUT -p tcp --dport 7199 -j REDSOCKS
sudo iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner <user id> -j REDSOCKS

Agora, se eu conectar ao 127.0.0.1:7199from service2(por exemplo telnet localhost 7199), ele se conectará à porta JMX ( 7199) do server1. Redsocks roteiam pacotes corretamente para o server1proxy via meias. 

Eu tenho outro requisito. Ao chegar pacotes com endereço IP de service1(por exemplo 172.17.0.1:7199), preciso redirecioná-los para localhost ( 127.0.0.1:7199). Por exemplo, se eu me conectar com 172.17.0.1:7199from service2, preciso redirecioná-lo para 127.0.0.1:7199para acessar a porta JMX por service1meio do proxy meias. Normalmente o redirecionamento de endereço IP pode ser feito com uma das seguintes  iptablesregras. Como existem outras iptablesregras (relacionadas ao Redsocks), isso não funciona.

# redirect with host
iptables -t nat -A OUTPUT -p tcp -d 172.17.0.1 -j DNAT --to-destination 127.0.0.1

# redirect with host and port
iptables -t nat -A OUTPUT -p tcp -d 172.17.0.1 --dport 7199 -j DNAT --to-destination 127.0.0.1:7199

Como o redirecionamento de endereço IP localhostpode ser feito neste cenário?

informação relacionada