GNS3 サーバーのポート転送 (SSH トンネリング) を行うにはどうすればいいですか?

GNS3 サーバーのポート転送 (SSH トンネリング) を行うにはどうすればいいですか?

私は GNS3 サーバーを所有しており、チームの誰かがポート 1100 で接続すると、192.168.122.2:22 などの内部 IP にルーティングされるように iptable ルールを追加しようとしています。この内部 IP は、GNS3 プロジェクトの要塞ホストに属しています。最終目標は、ローカル マシンから内部 IP アドレスに shh できるようにすることです。

私の IPTABLE は次のようになります (例として偽のパブリック IP 1.2.3.4 を使用しています)。

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DNAT       tcp  --  0.0.0.0/0            1.2.3.4       tcp dpt:1100 to:192.168.122.2:22

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0          

Chain DOCKER (0 references)
num  target     prot opt source               destination         

Chain LIBVIRT_PRT (0 references)
num  target     prot opt source               destination

ローカルマシンから、コマンドを実行します。Ubuntu は、GNS3 プロジェクトの内部 IP にアクセスするために必要なユーザー名です。ssh [email protected] -p1100

このコマンドを実行すると、GNS3 サーバー (1.2.3.4) で次の出力が得られます。 cloud@gns3:~$ connect_to 192.168.122.2 port 1100: failed.

SSH コマンドが GNS3 サーバーに到達し、ポート転送を試行しているようです。しかし、何らかの理由でポート 22 ではなくポート 1100 に転送しようとしています。その理由を特定できる人はいますか?

これまで私が試したことは次のとおりです:

  1. ipv4ポート転送を1に設定する
  2. GatewayPortsとAllowTcpForwardingを1に設定する
  3. ローカルマシンで実行されました(これによりサーバー上のいくつかの構成が変更されたと思います) -ssh -R 1.2.3.4:1100:192.168.122.2:22 [email protected]
  4. コマンドを使用してIPtablesにルールを追加sudo iptables --table nat --append PREROUTING --protocol tcp --destination 1.2.3.4 --dport 1100 --jump DNAT --to-destination 192.168.122.2:22
  5. マスカレードも追加されました:sudo /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE

答え1

このソースによると、DNAT を使用する代わりに、REDIRECT を使用する必要があります。

https://fabianlee.org/2018/09/17/iptables-running-service-as-non-root-iptables-to-forward-from-privileged-port/

それで:

sudo iptables --table nat --append PREROUTING --protocol tcp --destination 1.2.3.4 --dport 1100 --jump REDIRECT --to-destination 192.168.122.2:22

関連情報