【画像解説】SSHポートフォワード:実践的な3つの多段(踏台)接続方法(2)

【画像解説】SSHポートフォワード:実践的な3つの利用方法2 Linuxサーバ

SSHのポートフォワード機能は、端末(Windows)から直接目的のサーバ(アプリサーバ)にアクセスできない場合に利用する方法です。

SSHポートフォワードは、図1のように「端末(Windows)」が「踏台サーバ」を経由することで、目的のサーバ(「アプリサーバ」)に接続できます。この仕組みにより、「アプリサーバ」は外部(許可無)から直接アクセスされるリスクを軽減し、かつ許可された外部(許可)の「端末」だけがアクセス可能となります。

図1(ローカルポートフォワード)


この機能は、「踏台サーバ(SSHサーバ)」を経由して、「アプリサーバ」のSSH接続(22/tcp)だけではなく、HTTPS(443/tcp)、RDP(3389/tcp)など様々なアプリ通信が可能となります。

※今回は、「端末(Windows)」が目的のサーバ(「アプリサーバ」)にSSH接続(22/tcp)することに特化して以下3つの実践的な利用方法を解説いたします。

1.端末(Winodws)のエフェメラルポートを利用したローカルポートフォワード

2.踏台サーバのエフェメラルポートを利用したローカルポートフォワードこのサイトで解説

3.踏台サーバが許可した端末のエフェメラルポートを利用したリモートポートフォワード



スポンサーリンク

踏台サーバのエフェメラルポートを利用したローカルポートフォワード

目的

「踏台サーバ」側でSSHポートフォワードを実行、「端末(Windows)」が「踏台サーバ」を経由して「アプリサーバ」へSSH接続する場合に利用します。


接続イメージ図



構成概要
  • 端末(Windows):「踏台サーバ」のエフェメラルポートにに接続します。エフェメラルポートを利用して「アプリサーバ」にSSH接続します。
  • 踏台サーバ:このサーバのエフェメラルポートにアクセスする「端末(Windows)」を「アプリサーバ」にSSH接続させるサーバです。
  • アプリサーバ:SSHサービスが稼働しているサーバです。「端末(Windows)」がSSH接続したい目的のサーバです。



条件
  • 「踏台サーバ」のエフェメラルポート「10022/tcp」を使用します。
  • 「端末(Windows)」から「踏み台サーバ」の「10022/tcp」ポートにアクセスできる必要があります。



SSHポートフォワードのコマンド

※「踏台サーバ」で実行します。

ssh -L 0.0.0.0:10022:10.10.20.30:22 user@10.10.20.10

ー>実行後、「踏台サーバ(10.10.20.10)」にSSH接続するログインID(user)とパスワードを入力する。
ー>すでに「踏台サーバ」にアクセスしている状態ですが、設定上、再度「踏台サーバ」にSSH接続することで「10022/tcp」ポートをLISTEN状態にしています。



コマンド説明
  • -Lはローカルポートフォワードを指定します。-Lオプションを使用することで、「踏台サーバ」の指定したローカルポート(10022/tcp)を、「アプリサーバ」の指定ポート(22/tcp)に接続します。
  • 0.0.0.0は「踏台サーバ」がすべてのインターフェースで接続をリッスンすることを意味します。つまり、「端末(Windows)」からの接続も受け付ける設定です。
  • :10022は「踏台サーバ」でLISTENするローカルポートです。このポートに接続すると、指定されたリモートアドレスすなわち「アプリサーバ」に転送されます。
  • :10.10.20.30:22はポートフォワードの宛先である「アプリサーバ」のIPアドレスです。
  • :22は「アプリサーバ」でSSHサービスがLISTENしているポートです。このポートに接続するためにフォワーディングされます。
  • user@10.10.20.10は「踏台サーバ」に対するログイン情報です。「user」はSSH接続利用時のログインIDです。



「端末(Windows)」が「アプリサーバ」に接続する方法

1.TeraTermを利用した場合

ー>「OK」押下後、「踏台サーバ」へSSH接続しているように見えますが、SSHポートフォワードしているので「アプリサーバ」にSSH接続するログインID(user)とパスワードを入力します。


2.Bashエミュレータ(Git Bash)を利用した場合
※新しいBashエミュレータを起動して実行してください。

ー>user@のuserは「アプリサーバ」のログインIDを入力します。
ー>「OK」押下後、「踏台サーバ」へSSH接続しているように見えますが、SSHポートフォワードしているので「アプリサーバ」にSSH接続するログインID(user)のパスワードを入力します。




各サーバ間の通信状況のまとめ

  • 「端末(Windows)」から「踏台サーバ」へはエフェメラルポートの接続が可能です。
    ※踏台サーバでFirewalldサービスが起動していると、外部からの踏台サーバのエフェメラルポートへの接続が拒否される場合がありますので、接続を許可してください。
  • 「端末(Windows)」から「アプリサーバ」へのアプリ通信(SSH、HTTP、RDPなど)はできません。
  • 「踏台サーバ」と「アプリサーバ」間では、各種アプリ通信(SSH、HTTPS、RDPなど)が可能です。

上記の条件の下、「端末(Windows)」から「踏台サーバ」を経由することで、「アプリサーバ」への各種アプリ通信(SSH、HTTP、RDPなど)を利用することが可能です。

コメント

タイトルとURLをコピーしました