SSH + HTTP proxyによるWebのトンネリング
何らかの都合で別のIPアドレスからWebアクセスを試みたい時に便利なのがHTTP proxyですが、HTTP proxyは一般にそのままでは暗号化されていないこと、認証の仕組みが(作れなくはないが)貧弱であることからあまり勧められません。そこで用いられるのがSSHによる認証を組み合わせたHTTP proxyです。
実験で用いているWeb演習環境は学外からのアクセスは許されていないので、学外からの参加時にはVPNを用いてアクセスしていただいていますが、VPNを用いてもVPN環境と演習環境の間にFirewallがあるため、いくつかの演習に不具合が出ます。そこで、演習環境と同じセグメントにHTTP Proxyを置いています。ここへのアクセスにはSSHが必要です。そこでSSHのport forwardingを通じたHTTP Proxyの利用法について以下では解説します。
前提
SSHクライアントの設定が終わっていること
SSHでログイン出来るサーバにはhttp proxyが動作していること
今回は演習で使うSSHサーバ(Linux環境)にはsquid http proxyがポート3128で動作しています
設定]
SSHでlocalhostの3128を、SSHサーバの3128につなぐport forwardingを行う
いわゆるClient-to-server port forwardingを行います
Windows、WSL、macOSのコマンドラインのSSHクライアント(OpenSSH)の場合には、ssh ユーザ名@ホスト名 -L 3128:127.0.0.1:3128 でログインする
TeraTermの場合は以下の通り
まずSSHサーバに(通常通り)ログインする
メニューから設定(S)→ ssh転送(O)の順に選ぶ