web-dev-qa-db-ja.com

VPNの背後のサーバーへのSSH

サーバーAとサーバーBの2つのサーバーがあります。サーバーBは、サーバーAのVPNとして機能します。サーバーBのファイアウォールの背後にあるにもかかわらず、3台目のコンピューターからサーバーAに直接sshする方法を見つけようとしています。

Sever A:
IP: 73.85.87.81
sshport: 222

Server B:
IP: 109.192.97.168
sshport: 22

サーバーBにVPN接続してから、サーバーAにsshするか、サーバーBにsshしてからサーバーAにsshできることに気づきましたが、一度sshして、ポート222でサーバーAに到達することができます。

109.192.97.168:222をsshするときに73.85.87.81:222になるような設定を行う方法はありますか?

SshをサーバーBに入れた後、そこからsshをサーバーAに入れたくありません。むしろ、サーバーAに直接sshできるようにポートを転送したいです。

1
Charles S

IPTABLESを使用して、次のことを行いたいことを達成できます。

109.192.97.168(サーバーB)でこれらのルールを実行

iptables -t nat -A PREROUTING -d 109.192.97.168 -p tcp --dport 222 -j DNAT --to-d 73.85.87.81:222
iptables -t nat -A POSTROUTING -d 73.85.87.81 -p tcp --dport 222 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

説明:

  • これで、ポート222の109.192.97.168でsshを実行でき、サーバーAにアクセスできます。
  • 最初のルールは、ポート222でサーバーAに指定されたトラフィックをポート222でサーバーBにリダイレクトすることです
  • 2番目のルールはMASQUERADE用です(ルートが接続されているインターフェイスのIPアドレスを使用するように発信トラフィックを変換します)
  • 3番目のルールは、IP転送を有効にすることです(まだ有効になっていない場合)。
1
Stancu Mihai