2014年10月24日

Squid、透過多段プロキシの試行

今いる研究室は、大学のネットワークポリシーの関係上、直接ではなく大学のプロキシを通してしかインターネットにアクセスできない。
ああ面倒くさい、家のネットワークと大学のネットワークで切り替えなければならんのか、と思いながら過ごして半年、嫌になってプロキシの自動検出(WPAD、DNSの方)を導入した。
これで良いか、楽になったな、などと思っていたら、なぜかFirefoxが「ネットワークが切り替わったとき」に自動判別をしないという非常にアホな仕様だったので、やはり不便が微妙に解消されない。
本気でChromeとかIEにしてやろうか、などと思ったりもした(これらはネットワークが切り替わると自動で判別しにいく)。
え、FirefoxからIEの情報を見に行け?使ってみれば分かるが、自動検出はプロキシの設定をしないのと同じ扱いになる。無用の長物もここに極まれり。

とりあえずブラウザの切り替えは悩むとして、他にないのかと考えることにした。
幸い、研究室のインフラ自体はそれなりに自由に動かして問題ないので(だからWPADを導入した)、ルーター付近で何かできないか、と思ったりした。
いろいろ調べると、透過プロキシというのがあるという。
なるほど、来たリクエストをプロキシとして通す。これなら自分でプロキシの設定がなどといわなくて良い。ゲートウェイがうまくやってくれるわけだ。

ふと気づくと、透過プロキシは直接そのサーバーがアクセスを行うものだった。調べども調べどもその用例ばかり。
これはどうだろうと考えたが、昔そういえば多段串とか聞いた。透過プロキシが多段プロキシとして動作するならどうだろうか?

というわけで、仮想サーバーとしてUbuntu、その上にSquidをインストールし、試してみることにした。
Squidの設定は普通に調べれば出る。
透過プロキシの設定は、待ち受けポートにtransparentを付けるだけ。あとはiptablesで80番ポート行きのパケットをむりやりその待ち受けポートへ投げる。
多段プロキシの設定は、親のプロキシの設定及びアクセス方法を親のプロキシ経由のみに限定。
やってみたところ・・・ビンゴ!
透過多段プロキシによって、プロキシを設定しなくてもHTTPアクセスができるようになった。

・・・80番ポート?あれ、HTTPSは?

調べたら、Squidでの透過プロキシはHTTPSに対応できない、とのこと。
夢、絶たれる・・・

redsocksという(透過)SOCKSプロキシに、なにかHTTPSプロキシがどうの、と書かれているのを見つけたので、機会を見つけてそちらもチャレンジしてみよう。
あ、ちなみに大学のプロキシはSOCKSプロキシではないので、いろんなSOCKSプロキシ通すもの(widecapとかいろいろあるらしいが)は全て使えない。
redsocksも当然SOCKSプロキシとしては使えないわけだが・・・HTTPS使えればだいぶ違うし・・・


おまけ:SOCKSプロキシかどうかはcurl -x socks5://hogehoge という感じでcurlを使ったproxy設定をすることで確かめた。便利だ。覚えておこう。
posted by chiguri at 00:03| Comment(0) | PC
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。