ユーザ認証モジュール

ユーザ認証機能を提供します。 現在、モジュールは mod_auth_db.so と mod_auth_dbm.so の2種類存在します。 これらの違いは、パスワードデータの管理方法だけです。 mod_auth_db.so は Berkeley-DB を利用し、mod_auth_dbm.so は伝統的な Unix-NDBM を利用します。 パスワードデータはともに MD5 符号化した上で、 ハッシュデータベースで管理されます。

サーバホスト側のユーザ認証

サーバホスト側のユーザ認証は、 設定ファイル(wyvern.conf)中の ServerRoot で指定したディレクトリの下の etc ディレクトリに .waccess ファイルを作成することで可能です。 パスワードファイルは、 wpasswd コマンドを利用して作成します。

Example:
/usr/local/wyvern/etc/.waccess
/usr/local/wyvern/etc/.wpasswd.db

ユーザ側のユーザ認証

ユーザ側のユーザ認証は、 設定ファイル(wyvern.conf)中の UserDir で指定したディレクトリ直下に .waccess と パスワードファイルを置くことによってユーザ認証が可能となります。

Example:
/home/kouichi/public_html/.waccess
/home/kouichi/public_html/.wpasswd.db

ユーザ認証用ファイルの作成方法

.waccess ファイルの書式は次のとおりです。

AuthDirアクセス制御するディレクトリパス
AuthUserアクセス制御するユーザ名

Example:
# this is a comment
AuthDir /link
AuthUser kouichi
AuthUser guest

AuthDir /FreeBSD
AuthUser kouichi

上記の例では、/link 以下にアクセスできるのは kouichiguest/FreeBSD 以下に アクセスできるのは kouichi だけとなります。

また、現在のバージョンでは認証方式は Basic認証に限定しています。 AuthUser は次の AuthDir が出て来るまで、 現在の AuthDir を対象とします。

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

認証用パスワードファイルは、 wpasswd コマンドを用いて作成します。 標準的な導入で Wyvern をインストールした場合は、 /usr/local/wyvern/bin/wpasswd にインストールされます。

wpasswd コマンドの書式は次のとおりです。

wpasswd [-db|-dbm] passwordfile username

passwordfile は作成するパスワードファイル名を、 username はユーザ名を指定します。 また、認証モジュールとして mod_auth_db.so を利用する場合は -db オプションを、 mod_auth_dbm.so を利用する場合は -dbm オプションを指定します。

たとえば、mod_auth_db.so を利用して、 ユーザ「kouichi」をパスワードファイル「wpasswd.db」で管理する場合は、 次のように入力します。 コマンド入力後、パスワードと確認用のパスワードの入力があります。

Example:
% /usr/local/wyvern/bin/wpasswd -db wpasswd.db kouichi


ディレクトリレベルでのアクセス制御

アクセス制御モジュールは、 サーバ全体へのアクセス制御機能を提供しましたが、 認証モジュールでは付加機能として、 ディレクトリレベルでの IP アドレス/ドメイン名によるアクセス制御を提供します。 アクセス制御は、.waccessファイルに次のように記述します。

AuthDir /Linux
AuthAddr .MysticWALL.COM
AuthAddr 192.168.

上記の例では、/Linux ディレクトリ以下のアクセスは、 ドメイン名(MysticWALL.COM)あるいは IP アドレス(192.168.)からは許可し、 記述されていないホストからのアクセスはユーザ認証モードに移行します。

例えば、次のような記述で
AuthDir /Linux
AuthUser kouichi
AuthAddr .MysticWALL.COM
AuthAddr 192.168.

.yz.yamagata-u.ac.jp からのアクセスの場合は、 AuthAddr で拒否されるが、その後、ユーザ認証モードになります。 このとき、kouichi で認証を行うことにより /Linux 以下のディレクトリにアクセスできます。