SSHトラフィックをリモートサーバーに転送する

SSHトラフィックをリモートサーバーに転送する

私のLinux VMには2つのIPがあります。

192.168.11.88 192.168.11.99

ポート8889の192.168.11.99からSSHトラフィックを使用して、ポート22のリモートサーバー172.16.5.80にトラフィックを転送したいと思います。

IPTablesを使用してこれを達成する方法

ありがとう


FelixJNが提案したように。 IPtablesの代わりにsocatユーティリティを使用していますが、以下の設定が機能し、トラフィックがリモートサーバーに転送されます。

[Unit]
Description=forwards local port 192.168.56.70:8889 to 192.168.56.70:22
After=multi-user.target

[Service]
ExecStart=/usr/bin/socat -lf /var/log/socat-ssh.log TCP-LISTEN:8889,fork,bind=192.168.56.71 TCP:192.168.56.70:22
Restart=On-Failure
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target

答え1

転送ポートの場合、socatおそらく最も簡単です。

socat TCP-LISTEN:8889,fork,bind=192.168.11.99 TCP:172.16.5.80:22

ポートはリッスンします8889が、ローカルIPでのみリッスンします192.168.11.99。すべての着信トラフィックを次に転送します。172.16.5.80:22


可能なシステムサービスファイル(/etc/systemd/system/socat-ssh.service

[Unit]
Description=forwards local port 192.168.11.99:8889 to 172.16.5.80:22
After=ssh

[Service]
ExecStart=/usr/bin/socat -lf /var/log/socat-ssh.log TCP-LISTEN:8889,fork,bind=192.168.11.99 TCP:172.16.5.80:22
Restart=On-Failure
RestartSec=5

[Install]
WantedBy=default.target

socat(システムのパスを確認してください)

有効(起動時に自動起動)と起動(最初の初期化):

systemctl enable socat-ssh
systemctl start socat-ssh

関連情報