要件は次のとおりです。
まず、ローカルで生成された要求/パケット宛先IPをに変更します
localhost
。172.17.0.1:7199
->
127.0.0.1:7199
次に、この要求/パケットをローカルプロキシポート(
socks-proxy
ポート/redsocks
12345
ポートなど)にリダイレクトします。
これを行うにはどうすればよいですかiptables
?または他のツールを使用できますか?
以下は、より詳細な説明です。
2台のサーバーがありますserver1 - 172.17.0.1
。からポート()server2 - 172.17.0.2
にアクセスする必要があります。サーバーでリモートJMXを無効にしたため、SSHローカル転送を介してサーバーにアクセスできません(ポートにアクセスする必要があります)。だからSSHocksエージェントを作成して設定しました。JMX
7199
server1
server2
server1
server2
7199
localhost
server2
レッドソックスツール。よく走っています。
# 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プロキシに正しくルーティングします。service2
telnet localhost 7199
7199
server1
server1
別のお願いがあります。パケットがIPアドレスservice1
(たとえば)に付属している場合は、それをlocalhost()にリダイレクトする必要があります。たとえば、で接続している場合は、sockプロキシを介してアクセスするにはJMXポートにリダイレクトする必要があります。 IPアドレスリダイレクトは通常、次のいずれかの規則を使用して実行できます。 (レッドソックスに関連する)他のルールがあるため動作しません。172.17.0.1:7199
127.0.0.1:7199
172.17.0.1:7199
service2
127.0.0.1:7199
service1
iptables
iptables
# 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アドレスリダイレクトを実行する方法は?