Apacheの導入

ベーシック認証機能でアクセス制限をかける

特定のユーザのみに限定してホームページを公開したいときは、ウェブサーバでベーシック認証を行う方法が一般的です。この設定をしておけば、設定したアドレスにアクセスしたユーザに対してアカウントとパスワードを入力するダイアログボックスが表示されるようになります。アカウントとパスワードが正しければ、アクセスが許可されてページが表示され、誤っていればエラーメッセージが表示されます。

ベーシック認証の設定

Apacheのベーシック認証は、httpd.confファイルに <Directory> タグを新しく用意し、ベーシック認証の設定をするだけで完了します。

ベーシック認証を設定する作業手順

ここでは /home/httpd/html/private をベーシック認証用のディレクトリに設定しました。

<Directory "/home/httpd/html/private">
    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Basic
    AuthName Intra
    AuthUserFile /usr/local/apache/conf/password
    Require valid-user
</Directory>

これだけで設定は終わりです。あとは、パスワードファイルを作成します。

AuthType
認証方法を指定します。ここではBasic認証を指定しています。
AuthName
認証領域の名前を設定します。この名前は、アカウントとパスワードを入力するダイアログボックスに表示されます。
AuthUserFile
認証用ディレクトリ用のパスワードファイルの保存場所を指定します。
Require
アクセスを許可するアカウントを指定します。

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

ベーシック認証を設定したら、次にパスワードファイルを作成しましょう。パスワードファイルを作る用に、htpasswdというユーティリティーがあるので、これを使います。まず、AuthUserFile で指定したディレクトリに移動し、 htpasswd ユーティリティーを使ってパスワードファイルを作成します。
htpasswd ユーティリティーは Apacheをインストールするときに自動的にインストールされています。このユーティリティーはシェルから実行し、次のように指定します。

htpasswd -c パスワードファイル名 ユーザ名

-c オプションで新しいパスワードファイルが作られます。ユーザを追加するだけであれば、-c オプションは不要です。コマンドを入力して Enter キーを押すと、パスワードを要求されるので、指定したユーザ用のパスワードを入力します。 詳しくは、シェル上でman htpasswd と入力してみてください。英語ですが、htpasswd ユーティリティーの詳しい説明が表示されます。

最後に、ファイルに読み取り権限を設定しましょう。groupとotherに読み取り権限を与えるには、下記のようchmodコマンドを発行します。

chmod og+r password

関連記事