ルータ内にアクセスする際に便利なリモートポートフォワーディング

ALL
スポンサーリンク

ローカルポートフォワーディング、ダイナミックポートフォワーディングに続いて、SSHのリモートポートフォワーディングについてです。

ローカルポートフォワーディングは、下記で紹介したポートフォワーディングです。
Windows/Linuxでの SSHポートフォワーディングの方法 パソコン鳥のブログ
2段階SSHポートフォワーディングの方法 パソコン鳥のブログ
Tera Term での SSHポートフォワーディングの方法 パソコン鳥のブログ

ダイナミックポートフォワーディングは下記で紹介しました。
ダイナミックポートフォワーディングは便利 パソコン鳥のブログ

リモートポートフォワーディングとは

リモートポートフォワーディングでは、SSHサーバのポートにアクセスすることで、指定したマシンへポート転送しますが、ポート転送先をローカルマシン(SSH接続元)上のポートにすると便利です。
この際、下図のように、SSH接続の向きとポート転送の向きが逆になります。

画像

ここで、SSH接続とポート転送が逆であることを利用すると、ルータ内のサーバに簡単にアクセス出来ます。
下図のように、ルータ下のマシンからSSH接続します。
通常、ルータ内から外部への接続は、特にルータの設定をせずとも行えます。

画像

ここでSSHサーバのポートにアクセスすると、通常はアクセス出来ないルータ内のマシンにアクセス出来ます。

画像

このように、通常ルータの外側からアクセス出来ないサーバでも、リモートポートフォワーディングによってアクセスが可能になります。

設定方法

リモートポートフォワーディングを行うための SSH接続の方法です。

設定例として、「SSHサーバの 22080番ポートにアクセスすることで、ローカルマシン(SSH接続元)の 80番ポートにアクセスする」設定を説明します。

PuTTY の場合

PuTTY のダウンロード・インストールについては、下記を参照して下さい。

ターミナルエミュレーター PuTTY(日本語版) パソコン鳥のブログ

PuTTY 起動後、接続先の指定で SSHサーバのホスト名またはIPアドレスを指定します。
以降でまだ設定があるので、ここでは「開く」ボタンを押さないいでください。

次に画面左側のツリーから、接続-SSH-トンネル を選択します。
画面右側で「リモート」を選択します。
「源ポート」に SSHサーバ上のポート、「送り先」に転送先マシンのアドレスとポートを設定し、「追加」ボタンを押します。
転送先マシンのアドレスとポートは、「アドレス:ポート番号」のように、「:」でアドレスとポート番号を区切って指定します。
アドレスは、ホスト名またはIPアドレスで指定します。

画像

なお、「転送先マシンのアドレス」は、SSH接続元から見たアドレスです。
例えば、転送先マシンのアドレスに localhost を指定すると、それは SSH接続元自身を示します。

ここでは、「リモート」にチェックし、源ポートを「22080」、送り先を「localhost:80」にして「追加」ボタンを押すと、以下のように、フォワードするポート一覧の箇所が「R20080  localhost:80」となります。

画像

最後に「開く」ボタンを押して、SSHサーバに接続します。

ログイン画面になるので、ユーザ名とパスワードを入力すれば、SSHサーバにログインします。
これで、SSHサーバの「源ポート」へのアクセスで、転送先マシンにアクセスできます。

ウィンドウが開いたままになりますが、この状態でSSHのリモートポートフォワーディングが行われます。
SSH接続元マシンが WEBサーバの場合、ブラウザで http://SSHサーバのアドレス:22080 のようにSSHサーバにアクセスすると、SSH接続元マシンのページが表示されます。

TeraTerm の場合

Tera Term のダウンロード・インストール、使用方法については、下記を参照して下さい。

ターミナルエミュレーター Tera Term パソコン鳥のブログ

Tera Term 起動後、ホストへの接続前に、画面上部の「設定」メニュー から「SSH転送」を選択します。
SSHポート転送ダイアログが現れるので、追加ボタンを押します。

下記のような画面が現れるので、「リモートサーバのポート」「ローカル側ホスト」「ポート」を設定します。

画像

「リモートサーバのポート」にSSHサーバのポート、「ローカル側ホスト」「ポート」に転送先マシンのアドレスとポートを設定します。
転送先マシンのアドレスは、ホスト名またはIPアドレスで指定します。

なお、「ローカル側ホスト」は、SSH接続元から見たアドレスです。
例えば、「ローカル側ホスト」に localhost を指定すると、それは SSH接続元自身を示します。

ここでは、「リモートサーバのポート」に「22080」、「ローカル側ホスト」「ポート」をlocalhost、80とします。

最後に「OK」ボタンを押します。

下記の元の画面に戻るので、「OK」ボタンを押します。

画像

この後、画面上部の「ファイル」メニュー から「新しい接続」でホストへ接続します。

ウィンドウが開いたままになりますが、この状態でSSHのリモートポートフォワーディングが行われます。
SSH接続元マシンが WEBサーバの場合、ブラウザで http://SSHサーバのアドレス:22080 のようにSSHサーバにアクセスすると、SSH接続元マシンのページが表示されます。

Linuxの sshコマンド の場合

下記のように指定します。

ssh ユーザ名@SSHサーバのアドレス -R SSHサーバのポート:リモートマシンのアドレス:リモートマシンのポート

「リモートマシンのアドレス」は、SSH接続元から見たアドレスです。
例えば、リモートマシンのアドレスに localhost を指定すると、それは SSH接続元のマシンを示します。

ここでは、次のようにします。
user001@xxxxx.dip.jp の箇所は、自分がアクセス出来る SSHサーバのユーザ名とホスト名を設定して下さい。

ssh user001@xxxxx.dip.jp -R 22080:localhost:80

SSHサーバ上の 22080番にアクセスすると、SSH接続元マシンの 80番にアクセス出来ます。
SSH接続元マシンが WEBサーバの場合、ブラウザで http://SSHサーバのアドレス:22080 のようにSSHサーバにアクセスすると、SSH接続元マシンのページが表示されます。

以上、SSHリモートポートフォワーディングの設定方法です。

コメント