パケットの宛先IPをlocalhostに変更し、別のポートにリダイレクトします。

パケットの宛先IPをlocalhostに変更し、別のポートにリダイレクトします。

要件は次のとおりです。

  1. まず、ローカルで生成された要求/パケット宛先IPをに変更しますlocalhost172.17.0.1:7199 -> 127.0.0.1:7199 

  2. 次に、この要求/パケットをローカルプロキシポート(socks-proxyポート/redsocks 12345ポートなど)にリダイレクトします。

これを行うにはどうすればよいですかiptables?または他のツールを使用できますか?


以下は、より詳細な説明です。

2台のサーバーがありますserver1 - 172.17.0.1。からポート()server2 - 172.17.0.2にアクセスする必要があります。サーバーでリモートJMXを無効にしたため、SSHローカル転送を介してサーバーにアクセスできません(ポートにアクセスする必要があります)。だからSSHocksエージェントを作成して設定しました。JMX7199server1server2server1server27199localhostserver2レッドソックスツール。よく走っています。

# 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:7199から接続すると、JMXポート()に接続されます。 Redsocksはパケットをviaocksプロキシに正しくルーティングします。service2telnet localhost 71997199server1server1

別のお願いがあります。パケットがIPアドレスservice1(たとえば)に付属している場合は、それをlocalhost()にリダイレクトする必要があります。たとえば、で接続している場合は、sockプロキシを介してアクセスするにはJMXポートにリダイレクトする必要があります。 IPアドレスリダイレクトは通常、次のいずれかの規則を使用して実行できます。 (レッドソックスに関連する)他のルールがあるため動作しません。172.17.0.1:7199127.0.0.1:7199172.17.0.1:7199service2127.0.0.1:7199service1iptablesiptables

# 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

localhostこの場合、IPアドレスリダイレクトを実行する方法は?

ベストアンサー1

おすすめ記事