Squid3でdigest認証を設定
ubuntu squid3 digest-auth
Published: 2015-11-07

環境とか

  • 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認証と同じ感じの認証が出ますので、設定したユーザ名とパスワードを設定してログインしましょう。


参考にさせていただいたサイト: