2012年6月14日木曜日

[Windows] Windows 2008 R2 をProxy サーバー化してみる

記事にまとまりが無くなってきましたが、それは「びぼーろく」なのでしょうがないとしましょう(苦笑

今回は、Windows 2008 R2 をProxyサーバ化してみました。

Proxy化するために使ったのは、プロキシ界では有名な「Squid」というソフトです。

http://squid.acmeconsulting.it/index.html

安定してそうな 2.7.STABLE8 を使ってみることにしました。

インストールの手順は以下
  • 2.xインストールしていたらアンインストールすべし。そのときに、 古いバージョンのsquid-confを2.7のリリースノートを参照しつつマージするので変更点などは忘れないように。(アバウトw)
  • ダウンロードしたファイルを任意のディレクトリに展開する。デフォルトでは、c:\squid(とりあえずデフォルトでやってみることにします。)
  • docs\CompileOptions.txt ファイルのbuild optionsをチェックする!(何をだろうか。。
  • docs\release.html ファイルを読め!
  • c:\squid\etcの以下のファイルをコピーしてリネームする。
    • squid.conf.default ==> squid.conf
    • mime.conf.default ==> mime.conf
    • cachemgr.conf.default ==> cachemgr.conf
  • squid.confファイルを変更する。
    • ディレクトリを変更してる場合はc:/squidパスの変更がいっぱいあります。
    • 注意点として、パスの区切りには/を使うこと。\は使わない。
    • コメントアウトは # です。
      コメントアウトだらけで見づらいのでテキストエディタでコメントアウト以外の部分を探すときは正規表現「^[^#].*$」で探すとラク。
    • ここで設定するのはポートのところ。
      • ポート設定
        • 1100行目付近変えたい場合のみ変更
          # Squid normally listens to port 3128
          http_port 3128
  • squid.conf に設定されているパス、ディレクトリのうちキャッシュディレクトリ以外は自分で作ります。キャッシュディレクトリはこの後コマンドで作ります。
  • 以下のコマンドでsquidをWindowsサービスに登録する。
    • squid -i [-f configfile] [-n servicename]
      configfileのデフォルト値は "c:/squid/etc/squid.conf",
      servicename のデフォルトは "Squid"
    • サービスからはずすときは、-rオプションではずす。
      squid -r  [-f configfile]
  • 以下のコマンドでsquidのキャッシュディレクトリを作成する
    • squid -z [-f configfile]


インストールは以上です。次にProxyサーバーのサービスを立ち上げます。


  • 以下のコマンドでproxyサーバーとして稼動が開始されます。
    • net start squid
  • 停止するときは以下のコマンド
    • net stop squid



これだけ。
試しに他のPCで、IE > ツール > オプション > 接続 > LANの設定で
このサーバーのホスト名と、ポートを指定してあげてください。

以上でござる。うまくいくとC:\squid\var\logs\access.logに、情報が溜まっていますのでちょっと見てみると楽しいかもしれません。

うまくつながらない場合は、ファイヤーウォールでポートが開いてるかとか、この辺の設定をいじってみましょう。


  • ネットワークとセキュリティの設定
    • 600行目付近
      このままだと、自分しか使えないので以下の設定を追加
      #Recommended minimum configuration:
      acl intranet src 192.168.1.0/255.255.255.0
      ※3桁目は適宜変える
    • 650行目付近
      # Only allow cachemgr access from localhosthttp_access allow intranet