はじめに
SSHポートフォワーディングはSSHトンネリングと呼ばれることが多く、2つの用語は同じ意味で使用されます。
暗号化されたSSHの「トンネル」は、さまざまなデータを転送し、リモートシステムに安全に配信するための容器として機能します。この方法は、標準のファイアウォールセキュリティプロトコルを回避するために定期的に使用されます。ポートフォワーディングは、ほとんどのSSHクライアントおよびサーバープログラムのコンポーネントです。
Linux用のOpenSSHとWindowsPuTTYクライアントを使用して、ローカル、リモート、または動的SSHポート転送を有効にする方法を確認してください。
前提条件
- 選択したSSHクライアント/サーバー(OpenSSHまたはPuTTY)
- 到達可能なIPアドレスまたはリモート/ローカルサーバーの名前
ローカルポートフォワーディングの使用方法
貴重なネットワークリソースは、通常、リモートSSHアクセスを許可しません。これは、最新の分散環境では深刻な制限になります。組織は通常、リモートSSH接続を受け入れるように中間SSH「ジャンプ」サーバーを設定することでこの問題を解決します。
ローカルSSHクライアントは、リモートSSHサーバーとの接続を確立します。次に、接続は信頼できる内部ネットワーク内のリソースに転送されます。 SSH接続が確立され、セキュリティの取り組みは、ネットワーク内の個々のリソースではなく、中間のSSHサーバーに集中できます。
OpenSSHを使用したローカルポートフォワーディング
LinuxでSSHトンネリングを使用するには、送信元と宛先のポート番号、および宛先サーバーの場所をクライアントに提供する必要があります。場所はIPアドレスのいずれかです。 またはホスト名 。
ローカルポートフォワードの基本的な構文 コマンドは簡単です:
ssh -L local_port:destination_server_ip:remote_port ssh_server_hostname
⦁ssh
–ローカルマシンでSSHクライアントプログラムを開始し、リモートSSHサーバーへの安全な接続を確立します。
⦁-L local_port:destination_server_ip:remote_port
–ローカルクライアントのローカルポートは、宛先リモートサーバーのポートに転送されています。
⦁ssh_server_hostname
–構文のこの要素は、リモートSSHサーバーのホスト名またはIPアドレスを表します。
SSHポート転送コマンドの実際の例は、次の形式になります。
ssh –L 5901:188.17.0.5:4492 [email protected]
上記の例では、すべてのトラフィックがポート 5901に送信されています ローカルホストでポート4492に転送されています 188.17.0.5。にあるリモートサーバー上
PuTTYを使用したローカルポートフォワーディング
PuTTYは、Windows用のユーザーフレンドリーなSSHクライアントです。次の手順に従って、ローカルSSHトンネリングを構成します。
- PuTTYアプリケーションを起動すると、セッション 画面では、宛先SSHサーバーのホスト名またはIPアドレスとポート番号を入力できます(例:[メール保護] およびポート番号22)。
- カテゴリを使用する 左側のリストをクリックして、接続>SSH>トンネルに移動します 。
- ローカルを選択します SSHポートフォワードのタイプを定義します。
- 送信元ポートにローカルポート番号を入力します フィールド。
- 宛先に宛先アドレスとポート番号を入力します 分野。次の形式を使用します: destination_server_ip:remote_port。
(例:ソースポート:5901 、 宛先:188.17.0.5:4492) - 入力した情報が正しいことを確認したら、[追加]を選択します 。
- これで、接続のパラメータがすべて設定されました。 オープン オプションは、ローカルSSHポート転送を開始します。
リモートポートフォワーディングの使用方法
リモート転送の目的は、リモートサーバーがローカルマシン上のリソースにアクセスできるようにすることです。リモート転送は、以前に調査したローカル転送プロセスの反転を表します。
OpenSSHを使用したリモートポートフォワーディング
リモートポートフォワードの基本的な構文 コマンドは次のとおりです:
ssh -R remote_port:localhost:local_port ssh_server_hostname
この例では、リモートサーバー ssh.server.com
に指示しました。 ポート8080に向けられた接続を転送します ポート5534でリッスンしているローカルリソースへ 。
ssh –R 8080:localhost:5534 [email protected]
SSHサーバーにアクセスできるユーザーは、ローカルマシンのリソースにアクセスできるようになりました。
PuTTYを使用したリモートポートフォワーディング
- PuTTYアプリケーションを起動します。最初のセッション 画面では、宛先SSHサーバーのIPアドレスとポート番号を指定できます。
- カテゴリを使用する 左側のリストをクリックして、接続>SSH>トンネルに移動します 。
- リモートを選択します SSHポートフォワードのタイプを定義します。
- 送信元ポートにリモートポート番号を入力します フィールド(例: 8080 。
- 宛先に宛先アドレスとポート番号を入力します 次の形式を使用するフィールドlocalhost:local_port (例: localhost:5534 。
- 入力した情報が正しいことを確認したら、[追加]をクリックします 。
- 開くを選択します リモートSSHポートフォワードを確立します。
上記の例では、ユーザーとアプリケーションはリモートSSHサーバーのポート8080に接続し、ポート5534を使用してローカルマシンにアクセスできます。
動的ポートフォワーディングの使用方法
動的ポート転送は、前の2つのオプションほどよく知られていません。ほとんどのユーザーは、同様の結果を達成するためにローカルポート転送を使用する方が簡単だと感じています。動的ポート転送では、事前定義されたリモートポートとサーバーを使用する必要がなくなるため、柔軟性が向上します。
OpenSSHを使用した動的ポートフォワーディング
ssh
を使用する コマンドと–D
引数として、SSHクライアントを使用してローカルマシンにSOCKSプロキシを作成できます。:
ssh –D local_port ssh_server_hostname
次のコマンドは、ローカルマシンのポート5534でSOCKSプロキシを開きます。
ssh –D 5534 [email protected]
これで、ブラウザなどのローカルリソースを構成して、ポート5534を使用できるようになりました。そのリソースから発信されるすべてのトラフィックは、定義されたポートに対して確立されたSSH接続を介して送信されます。
PuTTYを使用した動的ポートフォワーディング
- メインのPuTTYセッションで宛先SSHサーバーのホスト名またはIPアドレスとポート番号を入力します 画面。
- カテゴリを使用する 接続>SSH>トンネルに移動するためのリスト 。
- 動的を選択します SSHポートフォワードのタイプを定義します。
- 送信元ポートに動的ポート番号を入力します フィールド(例: 5534 )。ローカルマシンのSOCKSプロキシサーバーは、このポートを使用してトラフィックを動的に転送します。
- 入力した情報が正しいことを確認したら、[追加]をクリックします 。
- これで、接続のパラメータがすべて設定されました。 開くを選択します 動的SSHポート転送を開始するオプション。
動的転送を機能させるには、SOCKSプロキシサーバーの各アプリケーションを構成して有効にする必要があります。