パソコン鳥のブログ

アクセスカウンタ

zoom RSS Windows/Linuxでの SSHポートフォワーディングの方法

<<   作成日時 : 2014/09/10 23:09   >>

トラックバック 7 / コメント 0

リモートマシンにアクセスしたいけれど、ファイアウォール等で直接ローカルマシンからアクセス出来ない場合があります。
この場合、リモートマシンにアクセス出来るSSHサーバを経由することで、ローカルマシンから間接的にリモートマシンにアクセスする方法があります。
SSHポートフォワーディングと呼ばれるものです。


SSHポートフォワーディングでは、下図のように、ローカルマシンの XX番ポートにアクセスすることで、SSHサーバを経由して、リモートマシンの YY 番ポートにアクセスします。

画像



例えば、社内LANからしかアクセス出来ない社内WEBシステムがあるとします。
ここで、SSHポートフォワーディングによって、ローカルマシンの8888番ポートにアクセス(ブラウザで http://127.0.0.1:8888にアクセス)すると、SSHサーバを経由して、社内WEBシステムのWEB(80番ポート)にアクセスすることが出来るようになります。


このSSHポートフォワーディングが出来るには、
・ローカルマシンは SSHサーバに sshでアクセスできること
・SSHサーバはリモートマシンの YY番ポートにアクセス出来ること
が必要です。

まず、この2点が出来ることを確認しておいて下さい。

確認出来たら、SSHポートフォワーディンの為の設定です。

以降では、Windows上で PuTTY , PortForwarder を使う2通りの方法と、Linux上で sshコマンドを使う場合を説明します。


設定例として、「ローカルマシンの 1234番ポートにアクセスすることで、SSHサーバを経由して、リモートマシン www.yahoo.co.jp の 80番ポートにアクセスする」設定を説明します。

設定後、ブラウザで http://127.0.0.1:1234 にアクセスすると、SSHサーバを経由して、www.yahoo.co.jp の WEBポート(80番)にアクセスするので、yahooのページが表示されます。



PuTTY の場合


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

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


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

画像



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

画像


なお、「リモートマシンのアドレス」は、SSHサーバから見たアドレスです。
例えば、リモートマシンのアドレスに 127.0.0.1 を指定すると、それは SSHサーバ自身を示します。


ここでは、源ポートに「1234」、送り先に「www.yahoo.co.jp:80」とすると、以下のように、フォワードするポート一覧の箇所が「L1234  www.yahoo.co.jp:80」となります。

画像


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


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

ウィンドウが開いたままになりますが、この状態でSSHポートフォワーディングが行われます。
ブラウザで http://127.0.0.1:1234 にアクセスすると、yahooのページが表示されます。




PortForwarder の場合


PuTTY を使用すると、SSHポートフォワーディングの際は PuTTY のコマンドウインドウが開いていることになります。
一方、PortForwarder はSSHポートフォワーディング機能を持つGUIの単体アプリで、タスクトレイへの格納も出来ます。

ダウンロードは以下から PortForwarder-2.9.0.zip をダウンロードします。

PortForwarder ダウンロード



2015/10/18
最近の環境でビルドされたものがあります。次の記事を参照して下さい。
SSHポートフォワードGUIアプリ PortForwarder の最近のビルド版


ダウンロードしたファイルを解凍後、PortForwarder と同じ場所に設定ファイルを作成します。
テキストファイルで、以下の内容を作成します。
名称 の箇所は、後で PortForwarder の画面で表示されます。日本語名は文字化けするので使わない方がいいです。

config.txt

Host 名称
HostName SSHサーバのアドレス
User SSHサーバのユーザ名
LocalForward ローカルマシンのポート リモートマシンのアドレス:リモートマシンのポート


なお、「リモートマシンのアドレス」は、SSHサーバから見たアドレスです。
例えば、リモートマシンのアドレスに 127.0.0.1 を指定すると、それは SSHサーバ自身を示します。

ここでは、下記のように設定します。
HostName , User の箇所は、自分がアクセス出来る SSHサーバのホスト名とユーザ名を設定して下さい。

config.txt

Host ConnectToYahoo
HostName xxxxx.dip.jp
User test001
LocalForward 1234 www.yahoo.co.jp:80



ファイル作成後、PortForwarder を起動します。

画像



先ほど作成した設定ファイルを、Config file: の箇所で指定します。
次にドロップダウに、設定ファイルの 名称 の箇所で記述した文字列が現れるので、選択し、「Connect」ボタンを押します。

画像



初めて接続するSSHサーバの場合、次の画面が出るので、「はい」を押します。

画像



次の画面も、初めて接続するSSHサーバの場合に表示されます。
「OK」を押します。

画像


SSHサーバのパスワードを入力します。

画像



Connected となったら、接続完了です。

画像


これで、設定ファイルで指定した「ローカルマシンのポート」へのアクセスで、SSHサーバを経由して、リモートマシンにアクセスできます。
ブラウザで http://127.0.0.1:1234 にアクセスすると、yahooのページが表示されます。

この状態で、「Hide」ボタンを押すとタスクトレイに格納されますので、邪魔になることもありません。



なお、PortForwarder の最新バージョンは 2.9.0 (2007年10月20日) ですが、今年4月に問題となった下記には該当しません。
PortForwarder で使用されている OpenSSL 0.9.8 は、本脆弱性の対象外です。

OpenSSL の脆弱性 Heartbleed Bug への対応は済みました? パソコン鳥のブログ/ウェブリブログ



Linuxの sshコマンド の場合


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


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


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

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


ssh user001@xxxxx.dip.jp -L 1234:www.yahoo.co.jp:80



これで、「ローカルマシンのポート」へのアクセスで、SSHサーバを経由して、リモートマシンにアクセスできます。
ブラウザで http://127.0.0.1:1234 にアクセスすると、yahooのページが表示されます。




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



参考


ssh ポート転送
SSH ポートフォワーディング
Windows向けのSSHポートフォワード専用ソフトPortForwarder - 旅モバ

テーマ

関連テーマ 一覧


月別リンク

トラックバック(7件)

タイトル (本文) ブログ名/日時
2段階SSHポートフォワーディングの方法
前回 に引き続き、SSHポートフォワーディングについてです。 今回はSSHポートフォワーディングを2段階にする方法です。 ...続きを見る
パソコン鳥のブログ
2014/09/12 18:38
ダイナミックポートフォワーディングは便利
ダイナミックポートフォワーディングを使って、SSHサーバをHTTPプロキシのように使う方法です。 ...続きを見る
パソコン鳥のブログ
2015/05/15 20:40
Tera Term での SSHポートフォワーディングの方法
Tera Term での SSHポートフォワーディングの方法です。 ポートフォワーディングについては、下の記事を参照して下さい。 ...続きを見る
パソコン鳥のブログ
2015/05/21 19:50
ポートフォワーディング機能だけを使用するために PuTTYターミナルでコマンドを受け付けさせない
ポートフォワーディング機能だけを使用するために PuTTYターミナルでコマンドを受け付けさせない為の設定方法です。 ...続きを見る
パソコン鳥のブログ
2015/05/30 19:55
ルータ内にアクセスする際に便利なリモートポートフォワーディング
ローカルポートフォワーディング、ダイナミックポートフォワーディングに続いて、SSHのリモートポートフォワーディングについてです。 ...続きを見る
パソコン鳥のブログ
2015/07/02 19:45
外部から社内や自宅内のパソコンをリモートデスクトップで操作
外部から社内や自宅内のパソコンをリモートデスクトップで操作する方法の説明です。 ...続きを見る
パソコン鳥のブログ
2015/07/08 18:42
SSHポートフォワードGUIアプリ PortForwarder の最近のビルド版
SSHポートフォワード機能を実装したGUIアプリに PortForwarder がありますが、2007年を最後に更新が止まっていました。 ...続きを見る
パソコン鳥のブログ
2015/10/18 21:44

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Windows/Linuxでの SSHポートフォワーディングの方法 パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる