VineLinux3.x/Apache2.0/Digest認証を使うための設定

Last-modified: 2008-11-08 (土) 11:29:59 (3301d)

概要

Basic認証ではパスワードが平文で流れるため、盗聴が容易でありセキュリティーに問題がある。そこで、Digest認証を使って暗号化パスワードで認証を行うようにする。

Digest認証を行うには、apache2のモジュールmod_auth_digestをインストールする。

設定手順

インストール

apache2のソースディレクトリに移動する

# cd httpd-2.0.54/modules/aaa/

コンパイル

# /usr/local/apache2/bin/apxs -c -D DEV_RANDOM mod_auth_digest.c

-c:コンパイル

-D DEV_RANDOM:乱数生成に/dev/randomを用いる

httpd-2.0.54/modules/aaa/.libs/mod_auth_digest.soが生成される。

インストール

# /usr/local/apache2/bin/apxs -i -a .libs/mod_auth_digest.so

-i:mod_auth_digest.soがapache2のmodulesディレクトリにコピーされる

-a:httpd.conf にLoadModuleディレクティブを追加

確認

modulesディレクトリに追加されているか?

# ls /usr/local/apache2/modules/
httpd.exp    mod_auth_digest.so*  mod_dav_fs.so*       mod_rewrite.so*

httpd.confに追加されているか?

# cat /usr/local/apache2/conf/httpd.conf |grep digest
LoadModule auth_digest_module modules/mod_auth_digest.so

パスワードファイルの作成

# /usr/local/apache2/bin/htdigest -c /usr/local/apache2/conf/.htdigest dav user-name
Adding password for waratte in realm dav.
New password:
Re-type new password:
  • -c:新しいファイルを作成する
  • 〜.htdigest:作成するパスワードファイル
  • dav:realm名。適当な名前をつける。
  • user-name:作成するユーザー名

httpd.confの編集

ここでは、〜/dav/authでdigest認証が行えるようにする

# vi /usr/local/apache2/conf/httpd.conf
<Location /dav/auth>
        DAV On
        Options Indexes
        AuthType Digest
        AuthName "dav"
        AuthDigestFile "/usr/local/apache2/conf/.htdigest"
        <LimitExcept OPTIONS>
                Require valid-user
        </LimitExcept>
</Location>
  • AuthType Digest:認証のタイプをDigestにする
  • AuthName "dav":上で指定したrealm名と同じにする
  • AuthDigestFile:上で作成したファイルを指定(AuthUserFileではないので注意)
  • Require valid-user:認証されたユーザは誰でもアクセス可能
  • OPTIONSメソッドだけ認証を回避(Webフォルダでアクセスするとエラーが記録されるため)

apache2の再起動

# /etc/rc.d/init.d/apache2 restart
httpdを停止中:                                             [  OK  ]
httpdを起動中:                                             [  OK  ]

クライアントよりアクセスする

digest.png

Basic認証とは違うダイアログが表示される。

コメント



添付ファイル: filedigest.png 156件 [詳細]