ex1-lab

Linux, CentOS, Mac OS X, Windows, 仮想化, Apache等のLinux中心に気になることをメモがわりに・・・

Webページパスワード制限(Apache)

      2016/11/29 この記事は約6分で読むことができます。

BASIC認証 と Digest認証に対応したWEBサーバを構築する。

BASIC認証(概要説明)

概要(BASIC認証)

Basic認証では、ユーザ名とパスワードの組みをコロン ":" で繋ぎ、Base64でエンコードして送信する。
このため、盗聴や改竄が簡単であるという欠点を持つが、ほぼ全てのWebサーバおよびブラウザで対応しているため、広く使われている。

フリー百科事典『ウィキペディア(Wikipedia)』より

通信フロー(BASIC認証)

典型的なBasic認証におけるHTTPクライアントとHTTPサーバの間の通信を紹介します。

  1. クライアントは認証が必要なページをリクエストする。しかし、通常ここではユーザ名とパスワードを送っていない。なぜならばブラウザはそのページが認証を必要とするか否か知らないためである。
  2. サーバは401レスポンスコードを返し、認証領域 (authentication realm) や認証方式 (Basic認証) に関する情報をクライアントに知らせる。
  3. ここでクライアントは、認証領域(通常アクセスしているコンピュータやシステムの簡単な説明)をユーザに提示して、ユーザ名とパスワードの入力を求める。ユーザはここでキャンセルすることもできる。
  4. ユーザ名とパスワードが入れられると、クライアントは認証ヘッダを含めたリクエストを再送信する。
  5. サーバは認証に成功して認証の必要なページのリクエストを処理するが、ユーザ名が不正だったりパスワードが間違っていた時にはサーバが再び401レスポンスコードを返す。このときは、クライアントは再びユーザにユーザ名とパスワードの入力をもとめる。

フリー百科事典『ウィキペディア(Wikipedia)』より

Digest認証(概要説明)

概要(Digest認証)

Digest認証(ダイジェストにんしょう)とは、HTTPの認証方法の一つで、Basic認証での盗聴や改竄を防ぐために考案された、ユーザ名とパスワードをMD5でハッシュ化して送る認証方法。

フリー百科事典『ウィキペディア(Wikipedia)』より

通信フロー(Digest認証)

典型的なDigest認証におけるHTTPクライアントとHTTPサーバの間の通信を紹介します

  1. クライアントは認証が必要なページをリクエストする。しかし、通常ここではユーザ名とパスワードを送っていない。なぜならばブラウザはそのページが認証を必要とするか否か知らないためである。
  2. サーバは401レスポンスコードを返し、認証領域 (realm) や認証方式(Digest)に関する情報をクライアントに返す。このとき、ランダムな文字列(nonce)も返される。
  3. ここでクライアントは、認証領域(通常は、アクセスしているサーバやシステムなどの簡単な説明)をユーザに提示して、ユーザ名とパスワードの入力を求める。ユーザはここでキャンセルすることもできる。
  4. ユーザ名とパスワードが入れられると、クライアントはnonceとは別のランダムな文字列(cnonce)を生成する。これよりユーザ名とパスワードと2つのランダムな文字列などを使ってハッシュ文字列(response)を生成する。
  5. クライアントはサーバから送られた認証に関する情報とともに、ユーザ名とresponseをサーバに送信する。
  6. サーバ側では、クライアントから送られてきたランダムな文字列(nonce、cnonce)などとサーバに格納されているハッシュ化されたパスワードから、正解のハッシュを計算する。
  7. この値と、クライアントから送られたresponseが一致する場合認証成功として、コンテンツを返す。失敗時は401レスポンスコードを返す。

フリー百科事典『ウィキペディア(Wikipedia)』より

Webサーバー設定(BASIC認証)

htpasswdファイル作成(BASIC認証)
[前提条件]

  • htpasswdコマンドでsecretというユーザーを作成し、パスワードを設定する。
  • ファイルは、/etc/httpd/cond/.htpasswd に保存する
  • [httpd.conf]等に追記する方法と、[.htaccess]を利用する方法があるが、今回は、httpd.confに追記する

htpasswdファイル作成

ファイルが存在するか確認する

設定ファイル編集(BASIC認証)

httpd.conf のバックアップ(BASIC認証)

httpd.conf の編集(BASIC認証)

/var/www/vhost/www/html/wiki へのアクセスにBASIC認証を追加する

Webサーバー設定反映(BASIC認証)

構文チェック

Apache再起動

CentOS 6.x

CentOS 7.x

Webページパスワード制限の導入(Digest認証)

Webサーバー設定(Digest認証)
[前提条件]

htpasswdコマンドでsecretというユーザーを作成し、パスワードを設定する。
ファイルは、/etc/httpd/cond/.htdigest に保存する
[httpd.conf]等に追記する方法と、[.htaccess]を利用する方法があるが、今回は、httpd.confに追記する

mod_auth_digestが有効か確認(Digest認証)

コメントアウトされていなければOK

htdigestファイル作成(Digest認証)

ファイルが存在するか確認する

設定ファイル編集(Digest認証)

httpd.conf のバックアップ(Digest認証)

httpd.conf の編集(Digest認証)

/var/www/vhost/www/html/wiki へのアクセスにDigest認証を追加する

Webサーバー設定反映(Digest認証)

構文チェック

Apache再起動

CentOS 6.x

CentOS 7.x

 - Linux , , ,