環境とか
- Host: Ubutu 14.04
- Proxy(Squid3)にファイルによるdigest認証環境を設定する
設定
digest認証のライブラリどこにあるのかな…
結論、うちでは以下のパスにありました。
/usr/lib/squid3/digest_file_auth
どうやらPlainTextじゃないとダメっぽい記事を見かけたのでPlainTextで。
ということでhtpasswd
でファイルを作成することになりますね。
パスワードのファイルを作る
今回は /usr/local/etc
にフォルダ掘って作成します
どうやらUtunbu 14.04にはhtpasswd
が入ってないようです。
仕方ないのでapache2-utils
入れます
$ sudo apt-get install -y apache2-utils
$ cd /usr/local/etc
$ sudo mkdir squid3 && cd squid3
コマンドは htpasswd [-c]p PASSWORD-FILENAME USERNAME
のようです。
初回のみ -c
をつけます。
2回目以降(ユーザ追加とか)で-c
つけちゃうとファイルを新規で作成(上書き)しちゃうみたいです。
$ sudo htpasswd -cp /usr/local/etc/squid3/squid_passwd user-01
New password: (パスワード入力)
Re-type new password: (もう一度パスワード入力)
または、パスワードもコマンドにつけてやっちゃう場合はこちら
$ sudo htpasswd -cbp /usr/local/etc/squid3/squid_passwd user-01 password
いよいよsquid3の設定ファイルを変更
$ sudo vi /etc/squid3/squid.conf
490行目あたりに auth_param
の項目があるのでその辺りに以下を追記
# 最初に探したdigest認証のライブラリのPathと、作成したパスワードのPath
auth_param digest program /usr/lib/squid3/digest_file_auth /usr/local/etc/squid3/squid_passwd
auth_param digest children 20 startup=0 idle=1
auth_param digest realm Squid proxy-caching web server
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 50
さらに1050行目あたりに http_access
の項目があるのでそちらに以下を追記します。
これは、 http_access deny all
より上にあれば問題ないと思われます。
※ACLの名前を今回は私のルートドメインの一部にある、millyui
にしてます。
acl millyui proxy_auth REQUIRED
http_access allow millyui
サービス再起動
$ sudo service squid3 restart
確認
個人的にはブラウザ単体でProxy設定できるFirefoxでのみ利用しています。
Proxyの設定を行うと、すぐにBasic認証と同じ感じの認証が出ますので、設定したユーザ名とパスワードを設定してログインしましょう。