sshトンネルとかProxy Serverとか

ネットワークについて

qiita.com

  • Proxy Server のアクセス遮断回避
  • 通信の傍受からの防御

前者は半分ネタ、後者については実用性ある。

  • Proxy Server がポート番号を80, 443 番しか開放していないならssh のポート番号を443に設定したサーバーを自分で用意すればいいじゃん。

プロキシがhttpとhttpsしか通さないのであればhttpsのポートでsshしてしまえば良いということです。

手順
- サーバ側の/etc/ssh/sshd_config を開く - Port 443 に書き換える - sshdを再起動する

  • sshクライアントからプロキシ越しにアクセスする際にcorkscrewというツールが必要

corkscrew

  • ~/.ssh/config に記述する。 ProxyCommand /usr/local/bin/corkscrew <proxyサーバのIP> <proxyサーバのポート> %h %p

  • 社内プロキシで阻まれるサイトにブラウザアクセスする

  • 社外サーバにプロキシを立てる(privoxy)

www.privoxy.org

  • ただし、ssh の-D オプションでプロキシソフトは不要に。

  • 社外サーバに社内のマシンからsshトンネルを張る

  • ssh -L 0.0.0.0:8888:localhost:8118 <社外サーバのIPまたはホスト名>

  • ブラウザを立ち上げる社内のマシンでsshトンネルを張った社内ローカルサーバのIP:PORT(今回の例だとlocal:8888)を指定する

ローカルサーバの8888ポートへのアクセスは社外サーバの443ポートへのsshトンネル経由でリモートサーバの8118ポートのprivoxyにフォワードされるため、リモートサーバがアクセスできる全てのサイトにブラウザからアクセス可能

になる。

環境構築用のVagrantfileとAnsibleのplaybook
https://github.com/daikikohara/vagrant-do-privoxy