プロキシサーバってどんなもんだろうと思って自分のVPSに建ててみた。認証つけて自分専用だけど。
インストール
VPS はさくらのVPSです。OSは ubuntu なので apt で。パッケージ一覧を見ると squid と squid3 の2つがあるがどっちもバージョン同じだった。
$ sudo apt-get install squid3
設定
いろいろ設定していく。
$ sudo vim /etc/squid3/squid.conf
# 全てのアクセスを許可する
# プロキシは VPS で稼働するが自分のIPアドレスは可変なのでこうしないとだるい
acl all src all
http_access allow all
# ポート番号。デフォルトは 3128 だが適当に変えておこう
http_port 8080
最低限これだけやっておけばプロキシとして動作する。
プロキシだというのを隠す
このままではプロキシだというのがすぐわかってしまうので隠す。
同じように squid.conf を編集する
# forwarded_for on
forwarded_for off # プロキシを利用してる端末のIPアドレスを隠す
# proxy だと悟られないようにする設定
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
これでプロキシの痕跡は消えるんだけど、診断くんにアクセスするとプロキシ判定されてしまう。一体何を基準に判定しているのだろう。
認証つける
このままでもプロキシとして使う事はできるが不特定多数に使われると困るので認証をつけよう。
Squid では Basic 認証を簡単につける事ができる。パスワードは平文で流れるので注意、あくまで簡易的なもの。
以下を squid.conf の適当な場所に追記
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd #使うプログラムとパスワードファイルパス
auth_param basic children 10 # 同時接続数
auth_param basic realm nullpo # 表示するメッセージ
auth_param basic credentialsttl 2 hours # 認証の有効時間
acl password proxy_auth REQUIRED # acl
http_access allow password # ルール適用
http_access allow all のルールを削除しておかないと認証せずにアクセスできてしまうので注意。
パスワード生成
$ sudo htpasswd -c /etc/squid3/passwd example
New password:
Re-type new password:
Adding password for user example
htpasswd コマンドが無ければ sudo apt-get install apache2-utils などとするとインストールできる。
これでプロキシサーバアクセス時にユーザ名とパスワードをきかれるようになる。