オープンソースのプロキシーサーバとしては
Squid が有名だろう。Ubuntu で動かすには、まずはパッケージ squid を入れた後、設定ファイル
/etc/squid/squid.conf
で設定する。システム管理→
サービスの管理で
プロキシ・キャッシュ・サービスにチェックが入っていても確かに動作はしているのだが、
Squid のデフォルトの設定ではどのマシンからのアクセスも受け付けないようになっているため、設定ファイルの編集は必須である。必要最低限の設定は以下の項目をコメント(# で始まる行)をはずしたりして追加・修正すればよいだろう。
http_port 8080
Proxy 用のポートして
8080を使う。
cache_dir /usr/local/squid/cache 100 16 255
squid のキャッシュエリアの場所とその最大サイズを定義。数字は、左からキャッシュで使用する容量(単位はMB; 上の例だと100 MB)、ディレクトリを分割するサブディレクトリ数(同 16)、サブディレクトリを分割する数(同 255)を指定。なお、このディレクトリのアクセス権は後述の
cache_effective_userで指定したユーザがアクセスできるようになっている必要がある。
acl localnet src 192.168.0.0/255.255.255.0
http_access allow localnet
または、
acl localnet src 192.168.0.0/24
http_access allow localnet
squid へのアクセスを許可するネットワーク用の ACL(Access Control List)を定義。この場合192.168.0.xからのアクセスのみを許可するように定義している(192.168.x.x からのアクセスの場合は 192.168.0.0/16 にする)。そして次の行の http_access allow localnet で、ACL として定義した localnet からのアクセスを許可する。
http_access allow localhost
の行の上くらいに記述するとよいと思う。
forwarded_for off
HTTP リクエストの際に、相手のサーバにクライアントのアドレスを知らせないようにする。
cache_effective_user proxy
squid をここで指定したユーザー権限(ubunbu の場合は proxy なのでこのままでよい)で動作させる。もしユーザー権限を proxy 以外にしたら、
cache_dir (/var/spool/squid) と
ログ関係のディレクトリ (/var/log/squid) がここで指定したユーザーで書き込めるようにしておく必要がある。
最後に、以下の行は設定しておいた方が、後々問題がなくてよいと思う。
visible_hostname proxy.yourdomain.com
トラックバック URL:
https://perltips.twinkle.cc/trackback/295