httpdの認証設定
認証方式
- BASIC認証
- HTTPプロトコルの基本認証とも言われる
- ほぼ全てのWebサーバ/クライアントが対応
- ユーザー名とパスワードがそのままネットワーク上を流れるので改ざん・盗聴される可能性あり
- ユーザー登録コマンド(htpasswd)は対話形式 or コマンド1発
- DIGEST認証
- BASIC認証から安全性を高めた認証方式
- ユーザー名とハッシュ(パスワードやランダム文字列から算出)を用いるため、第3者によるパスワードの推定が困難
- ユーザー登録コマンド(htdigest)は対話形式
BASIC認証の設定
http://HOSTNAME/aaa/bbb 対してBASIC認証を有効にする手順を説明する
以下操作はrootユーザーで実施する
httpdの設定ファイル編集
下記を記述した /etc/httpd/conf.d/auth_basic.conf を作成
<Location /aaa/bbb>
# 認証方式
AuthType Basic
# 認証時の表示メッセージ
AuthName "Auth Test1"
# 認証用パスワードファイル
AuthUserFile /var/www/.htpasswd
# 認証を許可するユーザー (valid-userなら登録された全ユーザー許可).
Require valid-user
</Location>
パスワードファイルの作成
下記コマンドで /var/www/.htpasswd (auth_basic.confで指定した場所) にパスワードファイルを作成
$> htpasswd -cb /var/www/.htpasswd <ユーザー名> <パスワード>
更にユーザーを追加する場合は下記コマンドを実施.
$> htpasswd -b /var/www/.htpasswd <ユーザー名> <パスワード>
※ パスワードファイルは サーバ外部からアクセスできない場所 に配置すること
設定反映
下記コマンドでhttpdに設定内容を反映
$> /etc/init.d/httpd reload
動作確認
http://HOSTNAME/aaa/bbbをブラウザで表示して認証ダイアログ出たら以下を確認.
- 登録済ユーザー名 & 正しいパスワード => 認証OK
- 登録済ユーザー名 & 間違いパスワード => 認証NG
- 未登録ユーザー名 & テキトーなパスワード => 認証NG
DIGEST認証
http://HOSTNAME/ccc/ddd に対してDIGEST認証を有効にする手順を説明する.
以下操作はrootユーザーで実施する.
httpdの設定ファイルの編集
下記内容を記述した /etc/httpd/conf.d/auth_digest.conf を作成.
<Location "/ccc/ddd">
# 認証方式
AuthType Digest
# 認証時の表示メッセージ
AuthName "Auth Test2"
# 認証用パスワードファイル
AuthUserFile /var/www/.htdigest
# 認証を許可するユーザー (valid-userなら登録された全ユーザー許可)
Require valid-user
</Location>
パスワードファイルの作成
下記コマンドで /var/www/.htdigest (auth_digest.confで指定した場所) にパスワードファイルを作成
$> htdigest -c /var/www/.htdigest "Auth Test2" <ユーザー名>
(*) "Auth Test2" の部分はauth_digest.confのAuthNameと同じ.
>> 以下対話形式でパスワードを入力
Adding user ユーザー名 in realm Authorization
New password: << パスワード入力
Re-type new password: << パスワード入力 (確認用)
更にユーザーを追加したい場合は以下コマンドで追加
$> htdigest /var/www/.htdigest "Auth Test2" <ユーザー名>
>> 以下対話形式でパスワード入力
※ BASIC認証同様、このパスワードファイルも 外部からアクセスできない場所 に配置すること.
設定反映
下記コマンドでhttpdに設定を反映.
$> /etc/init.d/httpd restart
動作確認
http://HOSTNAME/ccc/dddをブラウザで表示して認証ダイアログが出たら以下を確認.
- ダイアログの表示メッセージ = auth_digest.conf の AuthName
- 登録済ユーザー名 & 正しいパスワード => 認証OK
- 登録済ユーザー名 & 間違いパスワード => 認証NG
- 未登録ユーザー名 & テキトーなパスワード => 認証NG