sshで穴掘って内部のWEBサーバーに接続する

下図のようなネットワーク環境になっている環境でPCから直接アクセスできない

 

WEBサーバーのWEBコンテンツを閲覧する方法を紹介しようと思います。

 

例)

・PCからWEBサーバーAはネットワークでつながっているのでWEBコンテンツの閲覧ができる。(図中青線)

・PCからWEBサーバーBは異なるネットワークとなっており、直接WEBコンテンツは閲覧することができない。(図中赤線)

・異なるネットワークの両方に繋がるマシンがある。(図中中央下にあるマシン)

 

異なるネットワークの両方に繋がるマシンにPCからSSH(ポート22)で接続することが可能であれば、両方に繋がるマシンをトンネルにして、PCからWEBサーバーBのWEBコンテンツを閲覧することが可能になる。(図中橙線)

今回使うのは「Putty」というフリーのTelnetツール。

このツールはTelnetやSshという方法でリモート接続するツールです。

 

http://hp.vector.co.jp/authors/VA024651/download.html

 

Step1:まずは穴掘り(SSHトンネル)準備

puttyを起動したら、左メニューからConnection>SSH>Tunnelsを選択します。

 

DynamicのラジヲボタンとAutoのラジヲボタンにチェックし、Source portに適当なポート(自分のPCで使っていないネットワークサービスポート)を入力し、Addボタンをクリックします。


Step2:穴掘り開始(SSH接続)

次に左メニューよりSessionをクリックし、HostName欄に接続可能なIPアドレスを入力し、ポート欄に22を入力します。SSHのラジヲボタンにチェックし、下部のOpenボタンをクリックします。

接続できた後、ログオンして放置してください。


Step3:穴を使ってWEBサーバに接続する(Socks)

次に、ブラウザを起動し、プロパティを開きます。

FireFox :
ツール>オプション>詳細>ネットワーク
接続設定ボタンをクリックすると、以下の画面になります。
SOCKSホスト欄にlocalhostか、127.0.0.1と入れ、ポートに先ほどPuttyで登録したポートを入力して、OKをクリックします。

IE:
ツール>インターネットオプション>接続
LANの設定をクリック
次にプロキシを使用するにして、詳細設定ボタンをクリック
Socksにlocalhostか、127.0.0.1を入力し、ポートにputtyで登録したポートを入力後、OKをクリックし、登録します。


Step4:ブラウザで閲覧する

ステップ3までできていれば、あとは、通常のWEB閲覧のようにURLを入力すれば、WEBアクセスができます。

 

PC側ブラウザはPCがそのままWEB接続しているかのように処理をします。

一方でWEBサーバー側ではトンネルしているサーバーがアクセスしてきているように処理します。