【Squid】プロキシサーバ / Squid ~ Linux / Basic認証編 ~

【0】前提条件

* 以下の関連記事を参考に、Squid を設定しておくこと

https://dk521123.hatenablog.com/entry/2017/06/23/223438

【1】準備

* htpasswdコマンドを使うための設定を行う
* Basic認証の場合、パスワードファイルはハッシュ化する必要があるため

コマンド例

sudo yum -y install httpd-tools

http://tanihiro.hatenablog.com/entry/2014/02/05/172938

【2】構築手順

* Basic認証のための設定を行う

[1] 設定ファイル「squid.conf」を修正する

* 設定の説明は、以下のサイトを参照

http://www.satlab-gineiden.com/pc-soft/proxy_server.html/2
http://blog.jojo.jp/?eid=1296553

sudo vi /etc/squid/squid.conf

acl CONNECT method CONNECT

#-= Add From -=-=-=-=-=-=-=-=
# 認証モジュールのPATHとパスワードファイルのPATHを指定
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/.htpasswd

# 認証用のプロセス数を制限
auth_param basic children 5

# 「auth_param basic realm 【ダイアログ表示の文言】」
auth_param basic realm Plz input your id and password for Basic Authentication

# 有効保持時間
auth_param basic credentialsttl 5 hours

# パスワードの大文字小文字を区別する
auth_param basic casesensitive on

# パスワード認証を許可
# acl [ルールの定義名] proxy_auth REQUIRED (acl : ACCESS CONTROL LIST) =>  password という制限を登録
acl password proxy_auth REQUIRED
# http_access allow [ルールの定義名] => password 有効化
http_access allow password
#-= Add To -=-=-=-=-=-=-=-=

[2] Basic認証用のパスワードファイル「.htpasswd」を作成

sudo htpasswd -c /etc/squid/.htpasswd 【ユーザ名】

# 新規作成
sudo htpasswd -c /etc/squid/.htpasswd admin
New password: 【パスワードを入力(例:「password」)】
Re-type new password: 【パスワードを入力(例:「password」)】
Adding password for user admin

# ユーザー追加
sudo htpasswd -b /etc/squid/.htpasswd guest password

# ユーザー削除
sudo htpasswd -D /etc/squid/.htpasswd guest

# 所有権の設定
sudo chown squid:squid -R /etc/squid

[3] Squid を再起動する

# 再起動
sudo systemctl restart squid

# 「active (running) 」であることを確認
sudo systemctl status squid

# 使用しているポート番号一覧表示し、「3128」が表示されることを確認
ss -tln

[4] 動作確認

* プロキシを設定したFirefoxなどのブラウザで「yahoo.co.jp」をアクセスする

 => ダイアログ表示「・・・"Plz input your id and password for Basic Authentication"
  ・・・」が表示されるはず。
 => 以下を入力する
  + ユーザ名 :【[2] で設定したユーザ名を入力(例:「admin」)】
  + パスワード:【[2] で設定したパスワードを入力(例:「password」)】

【3】Squid / Basic認証あれこれ

1)大文字・小文字を区別するには

* 「auth_param basic casesensitive on」にする

casesensitive on について
http://www.squid-cache.org/Doc/config/auth_param/
http://squid.robata.org/Reference/squid3.4.0.3/auth_param.html

"casesensitive" on|off

 Specifies if usernames are case sensitive.
 # [意訳] ユーザ名が大文字小文字を区別する場合、指定する

参考文献

http://skkskynw.hateblo.jp/entry/2016/09/04/163713
https://www.server-world.info/query?os=CentOS_7&p=squid&f=3
http://kimagureneet.hatenablog.com/entry/2017/02/02/115212
のちに役立ちそうなサイト : squid で Digest 認証
https://futuremix.org/2011/05/squid-proxy-digest-auth

関連記事

【ネットワーク】プロキシ / Proxy
https://dk521123.hatenablog.com/entry/2017/08/08/224300
プロキシサーバ / SquidLinux / 初期設定編 ~
https://dk521123.hatenablog.com/entry/2017/06/23/223438