ServersMan@VPS(Ubuntu14.04-64)でプロキシサーバ

通常用途でプロキシサーバを使うといえば、
イントラネットからインターネットへのアクセスや、匿名化が多いのでしょうか?
MVNO回線含めてラストワンマイル(今でも言うのか?)が高速になった今、
自分で圧縮プロキシを用意する必要性も薄くなりました。
しかしいろいろな事情で時々使いたくなることはあります。
例えばアクセス制限をしているような国からその国外にアクセスするとか。
というわけでServersMan@VPS(Ubuntu14.04-64)でsquidが使えるようにしておきます。

インターネット上に誰でも使えるプロキシサーバをポンと置いてしまうと、
誰かに好き勝手に利用される恐れがあるので、
使用できるのはvpsサーバ自身とvpnでつながっているマシン、
それにダイジェスト認証でログインできたユーザに限ります。
最初にsquidのインストールです。以下を実行します。

# apt-get install squid

次いでログインできるユーザを作っておきます。以下を実行します。

# cd /etc/squid3/
# htdigest -c passwd proxy <ユーザ名>

なお2ユーザ目以降を登録する場合は

# cd /etc/squid3/
# htdigest passwd proxy <ユーザ名>

となります。
それでは設定ファイル”/etc/squid3/squid.conf”を編集します。
既存のファイルを見ながら適切な場所に以下を設定します。

visible_hostname <サーバのFQDN>

auth_param digest program /usr/lib/squid3/digest_file_auth -c /etc/squid3/passwd
auth_param digest children 5
auth_param digest realm proxy
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 50

acl password proxy_auth REQUIRED

http_port 8080

pipeline_prefetch on

同様に

acl vpn src 10.8.0.0/24
http_access allow vpn
http_access allow password

も追加するのですが、これは

http_access deny all

より前(直前)に追加しなければなりません。
ここでvpnは”10.8.0.*”のサブネットを使用してると仮定しています。
最後に

# initctl restart squid3

を実行してsquidを再起動します。

# tail -f /var/log/access.log

を実行しながらプロキシサーバを使うとログが出るので、
それで動作確認しておくとよいでしょう。