next up previous index
Next: 18. 支援ツールについて Up: HTML文書作成マニュアル Ver 5.11 Previous: 16.6 サーバーサイドインクルード

17. アクセス制限

Webサーバーでは特定のディレクトリに対してアクセス制限をかけることができます。

アクセス制限の設定方法は、Webサーバーによって異なります。本ドキュメントではUNIX上で動作するWebサーバーApacheに基いて説明します。

Apacheでのアクセス制限は、.htaccessというファイルを制限したいディレクトリの中に作成して行います33

アクセスの「制限」は、次のように設定します。

  1. まず、次のように記述します。
    
    order deny,allow
    
    これは、今からdeny(拒否)とallow(許可)の設定をする、という意味です。
  2. 次にアクセス拒否のリストを記述します。

    deny from host [host[ ...]]

    deny行ではすべてのホストからのアクセスを拒否し、許可するホストだけallowに記述するのが一般的です。hostallを入れると、すべてのホストからのアクセスを拒否します。ホスト名やIPアドレスを指定すると、そのホストからのアクセスのみ拒否します。複数のホストを定義する場合にはスペース文字で区切ります。また、特定ドメインのホストすべてを拒否する場合には、foo.co.jpのようにドメイン名を指定します。これにより、host.foo.co.jphost.bar.foo.co.jpのようなホストからのアクセスはすべて拒否されます。IPアドレスでも同様に192.168.1.と指定すると192.168.1.*のIPアドレスすべてからのアクセスを拒否します34

  3. 同様のやり方でアクセスを許可するホストのリストを記述します。

    allow from host [host[ ...]]

ユーザー名とパスワードを入力するダイアログボックスを表示し、ユーザー認証に成功したときのみディレクトリ内のファイルを閲覧できるようにすることもできます。

  1. まずパスワードファイルを作るディレクトリを決めます。仮想パスに置いておく必要はまったくないので、ローカルパスに作るのがよいでしょう。
  2. パスワードファイルを作るディレクトリに移動します。
  3. まだパスワードファイルを作っていないのであれば、次のようにパスワードファイルを作成します。

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

    登録するパスワードを聞かれるので、入力します。パスワードファイルが盗まれたときに備え、Webサーバーへのログインやメール取得の際に使うパスワードとは別のものにしておいたほうがよいでしょう。パスワードは暗号化され、ファイルに登録されます。パスワードファイル名はなんでもかまいませんが、最低限のセキュリティとして、頭に.を付けて不可視ファイルにしておいたほうがよいでしょう。

  4. すでに存在するパスワードファイルに追加を行うときには、次のように入力します。

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

    同様にパスワードを入力します。

  5. htpasswdでは追加と変更以外の処理ができないので、削除したいときには、パスワードファイルを直接編集します。
  6. 作成されたパスワードを利用してみましょう。アクセス制限したいディレクトリに.htaccessファイルを作ります。
  7. ユーザー認証のための.htaccessファイルの書式は次のとおりです。

ユーザーをグループ化して、このグループでアクセス制御することも可能です。

  1. 適当なディレクトリにパスワードファイルと同様、適当な名前のグループファイルを作成します。この内容は、次のようになります。

    グループ名:ユーザー名[ユーザー名[ ...]]

    ユーザー名の間はスペース文字で区切ります。たとえばtestというグループにユーザーkmutokenshiを登録する場合、test:kmuto kenshiになります。

  2. ユーザー認証用の.htaccessを記述します。AuthUserFileAuthNameAuthTypeは同じです。次の設定を新たに記述します。



Kenshi Muto
平成11年9月19日