Webプロクシを設定した

2chにスレを立てようとしたらホスト規制されていたので、サーバから投稿するためにWeb proxyを設定した。そのサーバにはアドレスが複数設定されているので、プロクシ接続のローカル端アドレスを選択できるようにしないといけない。Apacheのmod_proxyを改造する手もあるけど面倒だし、PerlのHTTP::Proxyに頼ることにした。使用頻度は低いし十分だろう。

HTTP::Proxyは内部でLWP::UserAgentを使っていて、実際にソケットを作るのはLWP::Protocol::http.pm だ。これを階層ごとスクリプトと同じところにコピーして、環境変数で指定した引数をソケット作成時のオプションに反映できるように改造する。呼び出し側のスクリプトの最初に BEGIN{ unshift @INC,"."; } と書いてカスタム版モジュールが優先的にロードされるようにする。

そのスクリプトをマシンに設定されたIPアドレスの数だけ起動して、他人が利用できないように iptables -I INPUT 1 -p tcp --dport 7996 -s ! xxx.xxx.xxx.xxx --jump DROP して出来上がり。

ttp://tate.undef.jp/days/200802/test-proxy.zip