Ändern Sie die Ziel-IP des Pakets in „localhost“ und leiten Sie es an einen anderen Port um.

Ändern Sie die Ziel-IP des Pakets in „localhost“ und leiten Sie es an einen anderen Port um.

Nachfolgend finden Sie die Anforderung

  1. Ändern Sie zunächst die Ziel-IP lokal generierter Anfragen/Pakete in localhost. Ein Beispiel172.17.0.1:7199 -> 127.0.0.1:7199 

  2. Leiten Sie diese Anfrage/dieses Paket dann an den lokalen Proxy-Port weiter (z. B. socks-proxyPort/ redsocks 12345Port). 

iptablesWie kann ich dies mit einem anderen Tool tun ?


Es folgt eine ausführlichere Erklärung.

Ich habe zwei Server server1 - 172.17.0.1, server2 - 172.17.0.2. Ich muss auf JMXPort ( 7199) server1von zugreifen server2. Da ich Remote-JMX auf deaktiviert habe server1, kann ich nicht über lokale SSH-Weiterleitung darauf zugreifen server2(muss auf 7199Port mit localhostvon zugreifen server2). Also habe ich einen SSH-Socks-Proxy erstellt und ihn mit konfiguriertRote SockenWerkzeug. Es funktioniert gut.

# 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

127.0.0.1:7199Wenn ich mich jetzt von service2(z. B. ) aus verbinde, telnet localhost 7199wird eine Verbindung zum JMX-Port ( 7199) von server1hergestellt. Redsocks leitet Pakete über den Socks-Proxy korrekt an weiter server1

Ich habe noch eine weitere Anforderung. Wenn Pakete mit der IP-Adresse von service1(z. B. 172.17.0.1:7199) eingehen, muss ich sie an localhost( 127.0.0.1:7199) umleiten. Wenn ich mich beispielsweise mit 172.17.0.1:7199von verbinde service2, muss ich es an umleiten, 127.0.0.1:7199um service1über den Socks-Proxy auf den JMX-Port in zuzugreifen. Normalerweise kann die Umleitung der IP-Adresse mit einer der folgenden Regeln erfolgen  iptables. Da es andere iptablesRegeln gibt (in Bezug auf Redsocks), funktioniert dies nicht.

# 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

localhostWie kann in diesem Szenario eine IP-Adressumleitung erfolgen?

verwandte Informationen