Movatterモバイル変換


[0]ホーム

URL:


どこへ行っても安心!SSHサーバーを踏み台にしてWebアクセスする方法

Linuxテクニック
2017.08.24

社内や学内からしか見られないWebサイトを使っている人、結構いますよね。他にも、特定のWebサイトへの接続がブロックされているネットワークとか、日本国内からのアクセスしか受け付けていないWebサイトとか、逆に日本からのアクセスを制限しているWebサイトなんかもありますね。また、中国によく行く人はFacebookやTwitterが使えなくて不便だったりもするでしょう。

こうした「接続が制限されているWebサイト」にアクセスするなら、制限のかからない場所にある別のサーバーを経由させる必要があります。なんだか面倒そうですよね。でも大丈夫です!SSHサーバーにさえつながるなら、Webアクセスを中継させることができます。SSHサーバーと同じネットワークに自分のPCをつないでWebブラウザを使っているのと同じ状態にできます。SSHサーバーが動いていれば、自宅サーバーでも、社内サーバーでも、VPSでも、AWSでもいいです。

SSHサーバーを踏み台にすれば、接続先のWebサーバーにSSHサーバーのIPアドレスから接続してきたと思わせることができます。また、インターネットに公開していないWebサーバーがLAN内にあるなら、同じLANのSSHサーバーを「踏み台」にすることで、外部からアクセスすることもできます。さらに、個人宅で使われるようなブロードバンドルーターの設定は外部から変更できないのが普通ですが、外部から内部にあるSSHサーバーを踏み台にしてWebブラウザで管理画面を開き、設定を変更するなんてことも可能です。

これを可能にするのは、SSHサーバーの「ダイナミックフォワード」という機能です。この機能を使ってSSHサーバーまでの「トンネル」を作り、「SOCKSプロキシ」として利用します。主要なウェブブラウザはSOCKSプロキシに対応していますし、メールソフトやFTPソフトなども多くが対応しています。

SSHサーバーの設定確認

踏み台にするSSHサーバーが「ダイナミックフォワード」に対応している必要があります。「/etc/ssh/sshd_config」に、「AllowTcpForwarding no」や「AllowTcpForwarding local」の設定が無ければOKです。多くのディストリビューションではデフォルトでダイナミックフォワードを許可する設定になっているので、変更されていなければ大丈夫でしょう。

踏み台を使う前のIPアドレスを確認する

設定後に踏み台を経由しているかどうか判断するために、設定前のIPアドレスを確認しておきましょう。IPアドレスなどクライアントの情報を表示するページを作ったので、開いて確認しておいてください。

LinuxからLinuxのSSHサーバーを踏み台として使う

Linuxから使うなら簡単です。以下のようにオプションを指定してSSHサーバーに接続するだけで準備完了です。

ssh -D ポート番号 ユーザー名@ホスト名

たとえば、10000ポートを「トンネルの入り口」にして「[email protected]」に「ダイナミックフォワード」するなら、以下のようになります。

ssh -D 10000[email protected]

接続できたら、WebブラウザにSOCKSプロキシとして「トンネルの入り口」を設定しましょう。Firefoxなら、右上のハンバーガーメニュー()をクリックして「設定」を開き、左側から「詳細」を選択、「ネットワーク」をクリックして「接続設定」を開きます。そして「手動でプロキシを設定する」を選び、SOCKSホストに「localhost」、ポートに「-D」の後に書いた番号(先ほどの例なら10000)を入力して「OK」をクリックします。

ダイアログを閉じたら、IPアドレスが変化しているか確認してみてください

Google Chromeの場合、標準ではコマンドラインオプションで指定する必要があります。それでは不便なので、拡張機能「Proxy SwitchySharp」を使いましょう。

[appbox chromewebstore dpplabbmogkhghncfbfdeeokoefdjegm]

設定画面では、プロファイル名を入力して、Firefoxと同じような設定を行います。

「Save」して、右上の地球アイコンをクリックし、追加したプロファイルを選択します。

地球アイコンが青くなれば、設定完了です。IPアドレスの確認ページで、SSHサーバーのIPアドレスがWebサーバーに認識されているか確認してみてください。

しょっちゅうダイナミックフォワードを使うなら、わざわざsshにオプションをつけて実行するのは面倒ですよね。そういう時は、「.ssh/config」に設定を書いておきましょう。このファイル、ディストリビューションによっては、パーミッションを厳しくしないとエラーが出てしまいます。初めて作る時は、以下のようにパーミッションを設定しておきましょう。

touch .ssh/configchmod 600 .ssh/config

あとは、エディタで開いて以下の例のように編集します。

Host ssh.example.com  User user  DynamicForward 10000

これで、以下のコマンドで接続するだけでダイナミックフォワードされるようになります。

ssh[email protected]

リモートのシェル(普通はbash)が必要ない場合は、以下のように実行すればバックグラウンドでダイナミックフォワードだけをしてくれます。

ssh -N -f[email protected]

この場合、終了するには「ps ax | grep ssh」などとしてプロセス番号を調べ、「kill」コマンドでシグナルを送ってください。

WindowsからLinuxのSSHサーバーをプロキシとして使う

Windowsの場合、「ダイナミックフォワード」に対応したSSHクライアントが必要です。WindowsのSSHクライアントといえば「Putty」や「Tera Term」が長年広く使われていますが、ここでは設定画面が分かりやすい「MobaXterm」を紹介しましょう。MobaXtermは、SSHクライアントだけでなくXサーバとしての機能も持つソフトウェアで、無料版でも多くの機能が使えます。MobaXtermを起動したら、ツールバーの「Tunneling」をクリックします。

表示されたダイアログで、「New SSH Tunnel」をクリックします。

次の設定画面は、トンネリングの全体像が分かりやすく表現されています。右上の「Dynamic port forwarding」を選び、左側に使用するポート番号を入力、右下に接続先のホスト名、ユーザー名、ポート番号を入力してください。入力後、「Save」をクリックします。

すると、設定が追加されるのでPlayボタンを押します。ダイアログの指示に従ってパスワードの入力などを行えば、ダイナミックフォワードによるSSHトンネルが動作しはじめます。

あとは、Linuxの場合と同じです。ブラウザにSOCKSプロキシとして「トンネルの入り口」を設定します。設定できたら、IPアドレスの確認ページを開いて、SSHサーバーのアドレスに変わっていることを確認してください。

まとめ

うまく接続できましたか?このように、SSHサーバーを踏み台にすれば、LAN内のWebサーバーに接続できたり、接続元によって制限されているサービスを使ったりすることができるようになります。海外のVPSを経由させて、国外向けのサービスを利用するのも面白いかもしれませんね。なお、このページでは「トンネルの入り口」を提供するsshクライアントとWebブラウザを同じPCで動かす形で解説しましたが、別PCで動くブラウザからSSHトンネルを使うことも可能です。ブラウザのSOCKSサーバー設定を、「localhost」から「sshクライアントが動作しているPCのIPアドレス」に変更するだけです。でも、トンネルPCにファイアウォールが設定されている場合は穴を空ける必要があります。興味のある方は、チェレンジしてみてください。

コメント

コメントをキャンセル

メールアドレスが公開されることはありません。

送信されたコメントは、サイト管理者の承認後に掲載されます。

関連記事

Linuxテクニック

ffmpegで動画をキレイなGIFアニメーションに変換する方法

先日、「gtop - 端末で使えるグラフィカルなシステムモニタ」を書いた時、スクリーンキャプチャした動画をffmpegでGIFアニメーションにして貼り付けました。その時に用いた方法を紹介します。最近はTwitterやInstagramもGI...
Linuxテクニック

シェルスクリプトで [y/n] を入力させて処理を分岐する方法

シェルスクリプトを書いていると、ユーザーの入力に応じて処理を分岐させたくなることがあります。このページでは、シェルスクリプトで「」を表示してユーザーの入力を待ち、入力された文字によって処理を分岐させる方法を紹介します。以下は、「」(Y...
Linuxテクニック

GNOME Shellを「リスタート」して軽くしよう!

GNOME Shellがなんだか重くなって困ること、ありますよね。どうも、メモリリークする(使い終わったメモリが解放されない)バグがあるようです。このバグの修正は近いうちに提供される模様ですが、今後も他のバグで重くなるかもしれませ...
Linuxテクニック

Red Hat・CentOSで特定のパッケージを「アップデート対象外」にする方法

Red Hat Enterprise Linux(RHEL)やCentOSで、「特定パッケージをアップデート対象外にする」方法を、例をあげて分かりやすく解説します。yumコマンドのオプションに指定する方法yumコマンドを実行する時、...
Linuxテクニック

【Bash】コマンドを再実行する方法まとめ

↑キーで履歴を呼び出すLinuxの端末で、前に実行したコマンドを再実行する一番簡単な方法は、↑(上矢印キー)で履歴を呼び出すことでしょう。キーを押すたびに過去に実行したコマンドが表示されるので、再実行したいコマンドが表示されたらEnte...
Linuxテクニック

大量でもコマンド一発!JPEGをキレイなままサイズダウンするスクリプトを公開【mozjpeg】

ダウンロードした写真画像や撮影した画像、数が増えるとハードディスクがいくらあっても足りませんよね。写真画像の大半はJPEGファイルですので、JPEGのファイルサイズが小さくできればストレージ容量の大幅な節約になるでしょう。また、Webページ...

サイト内検索

カレントディレクトリにある最新のファイル〇個をscpコマンドで転送する方法【Linux・Bash】
2023.09.23
WindowsにTorをインストールして匿名でSSH接続する方法
2023.08.042023.08.11
SikuliX+scrcpyでクリックが安定して動作しない時の解決法
2023.07.30
scrcpyでピンチイン・ピンチアウトする方法
2023.07.29
ビッグモーターの謝罪文をChatGPTで書いてみた
2023.07.28

カテゴリー

アーカイブ

タイトルとURLをコピーしました

[8]ページ先頭

©2009-2025 Movatter.jp