わけあってプロキシサーバを立ててみたくなったので、 Windows環境でプロキシサーバをたてる方法について調べてみた。

WindowsでSquidをつかう

フリーソフトのSquidを利用する。Squidはマルチプラットフォームなプロキシサーバソフト。

以下から、windows用のプログラムをダウンロードしてくる。

解凍したものを、C:に配置。

設定ファイルの設定(squid.conf)

etc配下にある以下をリネーム。

  • mime.conf.default -> mime.conf
  • squid.conf.default -> squid.conf

600行目あたりに、acl (任意の名前) src (IPアドレス)/(サブネットマスク)を追加。

入力するIPアドレスは コマンドプロンプトから ipconfigコマンドで調べることができる。

#Recommended minimum configuration:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 
# 以下を追加
acl net localsrc 192.168.1.0/255.255.255.0

650行目あたりで定義したネットワーク指定をアクセス許可。

ここではhttp_access に localnetを追加。

# Only allow cachemgr access from localhost
http_access allow manager localhost localnet
http_access deny manager

1100行目あたりでプロキシ用ボートを8080に設定。

# Squid normally listens to port 3128
# http_port 3128
http_port 8080

コマンドプロンプトでの操作。

まずは、管理者権限でコマンドプロンプトを起動する。

キャッシュエリア作成

C:で以下のコマンドを実行。

C:\squid\sbin>squid -z 
2014/04/04 21:39:46| Creating Swap Directories

squidサービスの起動

以下のコマンドで、Windowsの管理のサービスに追加して起動。

C:\squid\sbin>squid -i
C:\squid\sbin>net start squid

停止はnet stop squid。サービスから外すには以下。

C:\squid\sbin>squid -r

Internet Exploreの設定

IEにプロキシ経由でネットにアクセスするように設定。

[接続] > [LANの設定] > [プロキシサーバ]と移動して、入力欄に自分のIPアドレスとポート番号を入れる。

ここでは、192.168.100.101と8080.

BASIC認証をかける

squidのダウンロードページにおいてある、NCSAsupport.zipをおとして解凍する。

なかに、htpasswd.exe があるので、C:にコピー。以下を実行してpasswdファィルを作成。

C:\squid\etc>htpasswd.exe -c passwd tsu-nera
Adding password for tsu-nera.
New password:**************
Re-type new password:**************

passwd生成用のWebサービスもあるようだ。

C:.confの288行目あたりをコメントアウト。認証用プログラムとパスワードファイルを指定する。

auth_param basic program C:/squid/libexec/ncsa_auth.exe C:/squid/exc/passwd 
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

以下を追加。

acl password proxy_auth REQUIRED
http_access allow password

さきほど追加したnetはコメントアウトしておく。

# http_access allow net

再起動すれば設定完了。IEからネットにアクセスしてユーザ名とパスワードを効かれたらOK.

Special Thanks