インターネットからサーバー1(インターネット上)を介してローカルサーバー2(インターネットにはありません)へのSSH接続

インターネットからサーバー1(インターネット上)を介してローカルサーバー2(インターネットにはありません)へのSSH接続

次の問題を解決するのに苦労しており、助けが必要です。

私は持っています:

  • Server1はインターネットに接続され、LAN1(Debian)に接続されています。パブリックIP:xx.xx.xx.xx LAN1のプライベートIP:192.168.1.10
  • Server2はインターネットから隔離され、LAN1(Ubuntu)プライベートIP、LAN1:192.168.1.17に接続します。

私が達成したいもの:

リモートノートブックで、次のコマンドを使用してサーバー2へのSSH接続を確立します。

ssh -p1110 [email protected]

私が今まで得たところ:

Server1はLAN1からServer2をpingできます(またはその逆)。リモートラップトップを使用してSSHを介してServer1にログインできます。

ssh -p 20 [email protected]

Server2を使用してSSH経由でログインできます

ssh -p 1110 [email protected]

Server2 SSH構成はポート1110を許可するように設定されました(もちろんサービスは再起動されました)。

2つの明確なiptablesでServer1に設定しました。

iptables -t nat -I PREROUTING -p tcp -d xx.xx.xx.xx --dport 1110 -j DNAT --to-destination 192.168.1.17:1110

(注:テスト目的で両方のufwは無効になり、デフォルトでは「双方向接続を許可」に設定されています。)

現在、リモートノートブックからserver2にアクセスできません。

トラブルシューティング:これまでSSHセッションがserver2に到達できることを確認しようとしました。

私がserver1で使用するもの:

sudo tcpdump -i ens1 port 1110

実際、server1でアクティビティの兆候を見つけることができます。

サーバー2でも同様

sudo tcpdump -i ens18 port 2201

リモートSSHセッションの試行に関するいくつかのトレースも表示できます。

だから、リクエストはserver1を介してserver2に到達すると思います。

私の理論

iptablesルールは双方向ではないかもしれませんか?たぶんserver2のいくつかのipatable設定も必要かもしれませんか?

役に立つアイデアがあればありがとうございます。事前にありがとう

PS:ルーターを制御できないため、サーバーレベルでのみルーティングできます。

ベストアンサー1

SSHを使用してserver1に接続できる限り、リダイレクトされたポートを介してiptablesserver2 IMHOに接続するための最良の(安全な)方法ではありません。

報告していませんが、作成した内容によると、このコマンドは理論的には機能します。

ssh -p 20 [email protected] ssh -p 1110 [email protected]

これは、設定ファイル〜/ .ssh / configから次のように翻訳できます。

Host server1
    Port 20
    HostName xx.xx.xx.xx
    User login

Host server2
    Port 1100
    HostName 192.168.1.17
    User login
    ProxyCommand ssh server1 -W %h:%p

これは、ProxyCommand192.168.1.17:1100 で SSH を試みる前に、まず server1 に SSH を送信するように ssh に指示します。

ssh server1これで、sshをserver1に、sshをserver2に接続するだけですssh server2(iptableルールを削除できます)。

おすすめ記事