【CentOS】プロキシサーバーSquidのインストールして設定

海外に居ても日本のサイトから嫌われないように、日本のサーバーにプロキシサーバー(proxy server)を立てたときのメモ。

レンタルサーバーはServersMan@VPSが安くてオススメ。

以下CentOS5 x86_64 の環境に設定した手順。

インストールはyumで
# yum install squid

あとはこちらのサイトを参考に設定。
# vi /etc/squid/squid.conf

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
acl allow_hosts src xxx.xxx.xxx.xxx/32
http_access allow allow_hosts

#起動時のエラー回避
visible_hostname centossrv.com

#プロキシサーバーを使用している端末を隠蔽化
forwarded_for off

#プロキシサーバー経由でアクセスしていることを接続先に知られないようにする
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

#Memoryの調整
cache_mem 256 MB
cache_dir ufs /var/spool/squid 600 16 256

#GoogleのCache Page対応
reply_header_max_size 50 KB

#Log出力の日付を分かりやすく
logformat squid %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

これでsquidの起動
# /etc/rc.d/init.d/squid start

エラーになった場合は/var/log/squid/squid.outにログ出力される。

自分のIPを知るには診断くんにアクセスすれば分かる。実際にfirefoxでプロキシを設定してもう一度診断くんにアクセスすればプロキシ経由になっているか分かる。

Firefoxの設定例。squidのデフォルトポートは3128(squid.confのhttp_portで変更可能)

image

こんなことをするより格安な日本のProxyレンタルサーバーはないものか。需要はあると思うんだけど・・・。


<2011/03/27 Modified>
Squidのmemoryを増やしたら下記errorが出力された。

WARNING cache_mem is larger than total disk cache space!

cache_dir > cache_memになっていないとダメらしい

cache_mem 256 MB
cache_dir ufs /var/spool/squid 600 16 256

に設定した。


< 2011/04/17 Modified >
Googleのcache pageを開くと次のerror。

The request or reply is too large.

squid.confのreply_header_max_sizeを変更。

# reply_header_max_size 20 KB
reply_header_max_size 50 KB

ついでにlogの日付(時間)がわかり辛いので変更

#logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
logformat squid %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt


< 2011/12/17 Modified >
LinuxのUserで認証できるようにPAM認証を有効にした。

参考にしたSite。

私の環境では"digest"ではなく"basic"で成功した。あとPortも適当に変えておく。
# vi /etc/squid/squid.conf

auth_param basic program /usr/lib64/squid/pam_auth
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

http_access deny all

http_port 1234

Firewallの設定。SSHのPortを削除しないように気をつける。
# system-config-securitylevel-tui

Linux Userを追加
# adduser -s /sbin/nologin daiki
# passwd daiki

Squidを再起動
# /etc/rc.d/init.d/squid restart

ちなみにUserを削除するときのCommand(-rでhome directoryごと削除)
# userdel -r daiki