ダイナミックポートフォワーディングを使って、SSHサーバをHTTPプロキシのように使う方法です。
SSHのポートフォワーディングには、次の種類があります。
・ローカルポートフォワーディング
・リモートポートフォワーディング
・ダイナミックポートフォワーディング
ローカルポートフォワーディングは、下記で紹介したポートフォワーディングです。
2段階SSHポートフォワーディングの方法 パソコン鳥のブログ
Windows/Linuxでの SSHポートフォワーディングの方法 パソコン鳥のブログ
一方、ダイナミックポートフォワーディングでは、SSHクライアントは SOCKSプロキシとして動作します。
アプリケーションからの接続を SOCKSプロキシで受け、SSH接続先のSSHサーバから、アプリケーションが指定していた接続先に接続に行きます。
これにより、SSHサーバからの接続のように見えます。
SOCKSに対応しているアプリの1つにブラウザがあり、SSHサーバを HTTPプロキシのように扱うことが出来ます。
例えば、社内にSSHサーバがあれば、このSSHサーバを経由して社内専用WEBへのアクセスが可能になります。
同様のことをローカルポートフォワーディングで行おうとすると、下記記事のように proxyサーバを立てる必要があり、ダイナミックポートフォワーディングを使うことで、SSHサーバを手軽にHTTPプロキシのように使えます。
proxyサーバ squidでアクセス時に認証を要求する設定(Ubuntu14.04の設定) パソコン鳥のブログ
PuTTYの設定
まず、ダイナミックポートフォワーディングで SSH接続します。
TeraTerm ではダイナミックポートフォワーディングは未対応のようなので、ここでは、PuTTYの設定を説明します。
PuTTY 起動後、接続先の指定で SSHサーバのホスト名またはIPアドレスを指定します。
以降でまだ設定があるので、ここでは「開く」ボタンを押さないいでください。
次に画面左側のツリーから、接続-SSH-トンネル を選択し、右側の画面で「ダイナミック」を選択します。
「源ポート」に ローカルマシンのポートを設定し、「追加」ボタンを押します。
すると、フォワードするポート一覧の箇所(一番上の赤枠)に追加されます。
下記の例では、「源ポート」に 8888 を指定しました。
最後に「開く」ボタンを押して、SSHサーバに接続します。
これで、ローカルマシン上の 8888番ポートが SOCKSプロキシとして動作するので、ブラウザのプロキシ設定でこれを指定します。
以降で各ブラウザの設定を説明します。
各ブラウザで設定後は、WEBへの接続はSSHサーバから行われているように見えます。
インターネットエクスプローラの場合
インターネットエクスプローラの画面上部の「ツール」メニューから「インターネットオプション」を選択します。
現れた画面で「接続」タブを選択し、「LANの設定」ボタンを押します。
「ローカルエリアネットワーク(LAN)の設定」ダイアログが現れるので、”LANにプロキシサーバを設定する” にチェックを入れて「詳細設定」ボタンを押します。
「プロキシの設定」画面になります。
Socks の箇所に設定します。使用するプロキシのアドレスは localhost 、ポートは PuTTY の設定で「源ポート」に指定した値にします。
Socks以外のプロキシのアドレスは空白のままにします。
Firefoxの場合
Firefoxの「オプション」メニューでオプション画面を表示します。
画面最上部で「詳細」を選択した後、「ネットワーク」タブを選択します。
「接続設定」ボタンを押すと「インターネット接続」ダイアログが出ます。
SOCKSホスト の箇所に設定します。
localhost 、ポートは PuTTY の設定で「源ポート」に指定した値を入力します。
その他のプロキシのアドレスは空白のままにします。
また、SOCKS V5 をチェックします。
Google Chromeの場合
Google Chrome は、コンピュータのシステムプロキシ設定を使用してネットワークに接続しています。
この設定を行うには、上のインターネットエクスプローラの設定を参照して下さい。
以上の設定で、ダイナミックポートフォワーディングを使って、SSHサーバをHTTPプロキシのように使え、各ブラウザでのWEBへ接続はSSHサーバから行われているように見えます。
参考
PuTTY で dynamic application-level port forwarding – てっく煮ブログ
SSHポートフォワード(SSHトンネル)【ローカル・リモート・ダイナミック総集編】 | ITログ
コメント