http proxyにBASIC認証を付けろというので付けてみた

squidBASIC認証を追加してみる。


設定。

proxy:~# vi /etc/squid3/squid.conf 

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
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

再起動。

proxy:~# /etc/init.d/squid3 restart
Restarting Squid HTTP Proxy 3.0: squid3 Waiting.....................done.
FATAL: authparam basic program /usr/lib/squid/ncsa_auth: (2) No such file or directory
Squid Cache (Version 3.0.STABLE8): Terminated abnormally.
CPU Usage: 0.032 seconds = 0.016 user + 0.016 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
 failed!

あれれ... squid3か。直す。

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwd

proxy:~# /etc/init.d/squid3 restart
Restarting Squid HTTP Proxy 3.0: squid3.


passwdはパスワードファイル。中身はApache方式。
設定には、htpasswdコマンドが必要。

proxy:~# apt-get install apache2-utils

依存関係が多い。こんな小さな実行ファイルごときに、めんどくさいことだ。
mini-httpdあたりなら小さいのかな?
つか、yasusiiさめの作ったpythonのやつでもいいのかな。


パスワードファイルを作りユーザーを登録しておく。

proxy:~# htpasswd -c /etc/squid3/passwd guest
New password: 
Re-type new password: 
Adding password for user guest

proxy:~# cat /etc/squid3/passwd 
guest:r5aPdoLr3sZWo


ユーザー認証の確認。

proxy:~# /usr/lib/squid3/ncsa_auth /etc/squid3/passwd 
guest guest
OK
^C

実行すると何も表示されないので、そこで登録したIDとパスワードを入れ、リターンすると判定結果が返る。
OKが出ているので問題ない。Ctrl+Cで強制終了する。
失敗だとこんな風。

proxy:~# /usr/lib/squid3/ncsa_auth /etc/squid3/passwd 
guest test
ERR Wrong password


ブラウザからの接続テスト。
BASIC認証に失敗するとエラーになる。

ERROR
Cache Access Denied

BASIC認証に登録したユーザー名とパスワードを入れると成功した。
テストも問題なく完了。